Skip to content
jaceksawinskitm1 edited this page Mar 11, 2026 · 3 revisions

Dokumentacja projektu SmartHome

Ogólny opis systemu:

Aplikacja jest zbudowana na zasadzie interfejsu graficznego, na którym Użytkownik może dowolnie rozmieścić Urządzenia, w celu intuicyjnego zarządzania.
Użytkownik jest w stanie uzyskać informacje na temat Urządzeń bezpośrednio z Aplikacji, np. odczytać temperaturę z termometru. Ponad to Użytkownik może zarządzać każdym Urządzeniem z osobna – np. włączyć/wyłączyć żarówkę, zmienić temperaturę ogrzewania, za pomocą Aplikacji. Dodatkowo możliwe jest też połączenie konkretnych Urządzeń, za pomocą prostych logicznych warunków – np. kamera wykrywająca ruch, która włącza żarówkę w pokoju lub ogrzewanie włączające się jeżeli temperatura spadnie poniżej 20°C.

Najważniejsze zadania:

  1. Intuicyjne zarządzanie Urządzeniami
  2. Łatwy odczyt informacji z Urządzeń
  3. Zarządzanie każdym Urządzeniem z osobna
  4. Łączenie Urządzeń za pomocą warunków logicznych

Opis techniczny

SmartHome jest prototypem systemu zarządzania urządzeniami smart, łączący warstwę frontendową, w postaci interfejsu użytkownika, z backendem, który symuluje rzeczywiste środowisko. System został zaprojektowany w sposób mający umożliwić jak najprostszą migracje na prawdziwe urządzenia, poprzez m.in. symulowanie sieci LAN po której urządzenia się komunikują, co umożliwia wykorzystanie różnych języków programowania przy tworzeniu nowego backendu lub frontendu.

Instalacja / uruchamianie

Aplikacja wymaga zainstalowanej Javy (testowana wersja 23)

Po pobraniu kodu źródłowego należy skompilować i uruchomić klasę główną (src/SmartHomeLauncher.java), albo za pomocą programu GNU Make (make), ręcznie za pomocą javac i java lub za pomocą innego środowiska np. IntelliJ.

GNU Make

Będąc w folderze głównym projektu (gdzie znajduje się plik Makefile) należy wykonać poniższe komendy:

make

Ręcznie

Będąc w folderze src/ (gdzie znajduje się plik SmartHomeLauncher.java) należy wykonać poniższe komendy:

javac --enable-preview --source 23 -d ../out/ SmartHomeLauncher.java
cd ../out
java --enable-preview SmartHomeLauncher
cd ../src

IntelliJ

Po otwarciu projektu w IDE, należy wybrać plik src/SmartHomeLauncher.java i uruchomić go.

Instrukcja użytkowania

Po uruchomieniu, pokażą się dwa okna: Symulacja (Admin Environment) i Smart Home App

Symulacja (Admin Environment)

UI symulacji, służy do tworzenia, modyfikowania i usuwania wirtualnych urządzeń.

Elementy interfejsu

1. Lista urządzeń (domyślnie pusta). Po dodaniu urządzeń, można tutaj wybrać i modyfikować / konfigurować każde z nich.
2. Panel konfiguracji. Tutaj pokażą się opcje konfiguracji po dodaniu urządzenia.
3. Panel dodawania urządzeń. Tutaj można zdefiniować i stworzyć nowe urządzenia.

Kiedy przełącznik Łączenie automatyczne jest włączony, urządzenie będzie samodzielnie próbowało się połączyć z systemem

4. Przełącznik dostępu do sieci. Wyłączając dostęp do sieci można zasymulować brak połączenia, np. kiedy użytkownik jest poza domem.

Symulacja

Smart Home App

Docelowy UI użytkownika, może być wykorzystany w prawdziwym środowisku.

Elementy interfejsu

1. Panel urządzeń. Urządzenia dostępne w systemie będą się tutaj wyświetlać jako bloki, które można przeciągać i układać w dowolny sposób.

Po podwójnym kliknięciu pojawi się okno konfiguracji.
Po przytrzymaniu klawisza Shift i przeciągnięciu od jednego urządzenia do drugiego, pokaże się panel tworzenia logiki (połączenia).

**2. Przycisk

Clone this wiki locally