Supla GUI Generic – zdalnie sterowane przekaźniki bez programowania

Jeżeli zawsze chciałeś samemu zaimplementować inteligentne sterowanie urządzeniami w swoim domu, ale nie największą przeszkodą było to, że nie umiesz programować to rozwiązanie jest idealne dla Ciebie. Mowa tu o Supli – polskim otwarto-źródłowym oprogramowaniem gotowym do użycia i modyfikacji przez każdego. Ponadto Supla posiada dużą społeczność, która nie tylko pomaga mniej zaawansowanym użytkownikom, ale także tworzy swoje własne modyfikacje i przydatne narzędzia. Jednym z takich narzędzi jest GUI Generic – pozwala ono w wygodny sposób wygenerować gotowe do użycia programy, które wystarczy tylko wgrać na płytkę wyposażoną np. w procesor ESP8266 i skonfigurować po swojemu wyklikując wszystko w interfejsie graficznym. Po odpowiednim skonfigurowaniu możemy używać takiego modułu np. w roli przełącznika światła, czujnika temperatury i wielu innych.

Co będzie Ci potrzebne?

Sugerowałbym użycie modułu NodeMCU v2. Został on wyposażony w programator, a także idealnie pasuje w standardową płytkę stykową co pozwala na łatwe prototypowanie urządzeń. Wszystko zależy od Twoich potrzeb. Jezeli Twoje finalne urządzenie ma być małe i nie wymaga wielu wejść/wyjść idealnie nada się ESP8266-01. Pamiętaj tylko, że w przypadku użycia tego modułu będziesz potrzebował osobno dokupić odpowiedni programator, aby móc wgrać oprogramowanie na swoje urzadzenie. Jezeli czujesz się nieco lepiej w elektronice możesz użyć gołego modułu ESP8266, ale pamiętaj o odpowiednim schemacie.

Zaczynajmy

Generowanie programu

Musimy wejśc na stronę https://gui-generic-builder.supla.io/ i wygenerować plik binarny zostawiając prawie wszystkie opcje tak jak są. Wystarczy włączyć opcję „Relays/Przekaźniki”.

Flash it

W kolejnym kroku nalezy podłączyć płytkę z kontrolerem ESP8266 do komputera i wgrać plik .bin, który właśnie wygenerowaliśmy. Można to zrobić na wiele sposobów, ale moim ulubionym jest ten wykorzystujący narzędzie esptool. Jest to prosty program konsolowy. Aby go zainstalować nalezy postąpić zgodnie z instrukcjami na ich GitHubie (w zależności od systemu operacyjnego).

Następnie musimy zlokalizować nasz plik binarny i otworzyć terminal w tym miejscu (lub przejść tam z wykorzystaniem komendy „cd”).

Następnie musimy usunąć aktualny ROM aby upewnić się, że wykonamy w pełni czystą instalację. Upewnijmy się także, że mamy dokładnie jedno podłączone ESP do komputera – nie musimy dzięki temu określać nazwy portu szeregowego (esptool sprawdzi każdy po kolei i wybierze ten na którym mikrokontroler odpowie). Wykonamy to za pomocą następującej komendy:

python3 -m esptool erase_flash

Powinniśmy otrzymać mniej więcej taki wynik:

esptool.py v3.1
Found 2 serial ports
Serial port /dev/cu.usbserial-0001
Connecting….
Detecting chip type… ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: **
Uploading stub…
Running stub…
Stub running…
Erasing flash (this may take a while)…
Chip erase completed successfully in 6.3s
Hard resetting via RTS pin…

Następnie wgrywamy nowy ROM:

python3 -m esptool write_flash 0x0 GUI-Generic.v4.2.3.m1M64.fCPU160.en.bin

0x0 jest adresem w pamięci mikrokontrolera, gdzie zostanie wgrany plik binarny. Ostatnim parametrem jest nazwa pliku .bin z naszym ROMem.

Wyjście:

esptool.py v3.1
Found 2 serial ports
Serial port /dev/cu.usbserial-0001
Connecting….
Detecting chip type… ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: **
Uploading stub…
Running stub…
Stub running…
Configuring flash size…
Flash will be erased from 0x00000000 to 0x00078fff…
Compressed 495456 bytes to 353391…
Wrote 495456 bytes (353391 compressed) at 0x00000000 in 31.3 seconds (effective 126.5 kbit/s)…
Hash of data verified.
Leaving…
Hard resetting via RTS pin…

Konfiguracja

Wygląda na to, że wszystko poszło ok. Po uruchomieniu mikrokontrolera powinniśmy zobaczyć nową sieć WiFi bez hasła z frazą SUPLA w nazwie.

Teraz musisz połączyć sie z tą siecią i przejść na adres http://192.168.4.1/ w swojej przeglądarce. Powinna załadować się strona konfiguracyjna GUI Generic.

Następnie musisz wpisać dane swojej sieci WiFi, a także adres serwera Supla i login (adres email). Adres serwera znajdziesz na głównej stronie dashboardu Supla Cloud.

Upewnij się, że rejestracja urządzeń jest aktywna zanim zarejestrujesz swoje urządzenie.

Jeżeli wszystko jest wpisane poprawnie mozesz zapisać ustawienia i uruchomić ponownie urządzenie. Po reboocie powinieneś zobaczyć nowe urządzenie w swoim panelu.

But why there are no devices? Well we have to configure them first.

Tylko czemu nie widać tu żadnych przełączników? Musimy je najpierw skonfigurować w panelu GUI Generic :)

Konfiguracja I/O

Musisz znać adres IP swojego ESP w sieci lokalnej. Aby go sprawdzić możesz użyć np. nmap’a lub poszukać w ustawieniach routera (dzierżawy DHCP).

Jeżeli masz już adres IP możesz wpisac go w przeglądarce, aby załadować stronę z konfiguracją.

Kliknij na „Ustawienia urządzenia” i wpisz liczbę przekaźników, którą chcesz kontrolować za pomocą Supli.

Następnie zobaczysz listę przekaźników.

Dla celów testowych zamiast przekaźników użyłem zwykłych LEDów. Jeden LED RGB podłączony kolejno do D0, D1 i D2, a także wbudowany LED w płytkę prototypową podłączony domyślnie do D4. Co ważne moje ledy RGB mają wspólną katodę, więc każdy z kolorów jest sterowany stanem wysokim, natomiast LED na płytce jest podłączony do D4 przez katodę, więc jest sterowany stanem niskim. Powinniśmy to uwzględnić w konfiguracji wyjść.

Po zapisaniu ustawień możemy uruchomić ponownie urządzenie i sprawdzić dashboard Supli. Teraz powinniśmy widzieć 4 przełączniki tak jak na obrazku poniżej:

Możemy przejść do ich konfiguracji klikając na nie.

Możemy ustawić ich nazwę a także zmienić pełnioną przez nie funkcje (np. można ich użyć do sterowania bramą).

Jeżeli zrobiiśmy wszystko poprawnie możemy sterować naszymi LEDami z poziomu aplikacji mobilnej Supla.