W tym artykule pokaże jak wgrać soft SUPLA do modułu Shelly 1 za pomocą Raspberry Pi.
Użyje do tego softu SUPLA multiboard napisanego przez espablo - nadaje się on nie tylko do Shelly ale również do modułów SONOFF i innych. Więcej informacji i samo oprogramowanie znajdziecie na githubie espablo pod tym LINKIEM.
Do zaprogramowania modułu będziemy potrzebowali:
- Raspberry Pi - ja użyłem w wersji 3B+
- Moduł Shelly 1 - mój jest w wersji V3
- 5 przewodów połączeniowych męsko żeńskich
- Listwa żeńska goldpin 1x40 raster 2,54mm - odcięty odcinek 5 pinów - nie jest konieczna ale BARDZO ułatwia podpięcie do Shelly 1.
- Ja użyłem dodatkowo Adafruit Pi T-Cobbler Plus ale również nie jest to konieczne.
Na początku musimy odpowiednio ustawić nasze Raspberry Pi tak aby była możliwa komunikacja szeregowa z chipem ESP8266, który znajduje się w naszym Shelly 1. W tym celu wchodzimy do MENU -> Preferences -> Raspberry Pi Configuration. W otwartym oknie przechodzimy do zakładki Interfaces i wybieramy opcje:
- Serial Port: Enable
- Serial Console: Disable
Konfigurację możemy uruchomić również z terminala wpisując w lini poleceń raspi-config. Ale wersja graficzna jest praktyczniejsza :)
Aby zmiany przyniosły efekt restartujemy naszą malinkę.
Port szeregowy powinien być dostępny w /dev/ttyS0
Kolejny krok to połączenie naszego Raspberry Pi z Shelly 1. Dla bezpieczeństwa należy to wykonać po odłączeniu Raspberry od zasilania. Poniżej przedstawiam schemat połączenia.
Shelly 1 Raspberry Pi
GND GND
GPIO0 GND
3.3V 3.3V
RXD TXD
TXD RXD
Następny etap to zainstalowanie esptools, którego będziemy używali do wgrania softu do Shelly 1. Otwieramy konsole i w linii poleceń wpisujemy:
sudo apt-get update
sudo apt-get install python
sudo apt-get install python-pip
sudo pip install esptool
Następnie pobieramy oprogramowanie. W linii poleceń wpisujemy:
wget https://github.com/Espablo/SUPLA_Firmware/blob/master/multiboard/multiboard_1024_dout_eagle.flash.bin
oraz
wget https://github.com/Espablo/SUPLA_Firmware/blob/master/multiboard/multiboard_1024_dout_eagle.irom0text.bin
Teraz podpinamy Shelly 1 do Raspberry Pi zgodnie z wyżej podanym schematem.
W linii poleceń wpisujemy:
sudo python /usr/local/bin/esptool.py --port /dev/ttyS0 write_flash 0x00000 /tu_ścieżka_do_katalogu_z_pobranym_softem/multiboard_1024_dout_eagle.flash.bin
Jeżeli procedura zatrzymuje się na Connecting to albo albo jest problem z połączeniem albo urządzenie nie weszło w tryb programowania. Ja w tym momencie odpinam od Raspberry Pi na 2-3 sekundy przewód zasilania 3.3V i podpinam ponownie.
Jeżeli wszystko przebiegło poprawnie - tak jak na wyżej załączonym screenie - musimy wgrać drugą część oprogramowania. Wgrywamy ją pod adres 0x40000.
W linii poleceń wpisujemy:
sudo python /usr/local/bin/esptool.py --port /dev/ttyS0 write_flash 0x40000 /tu_ścieżka_do_katalogu_z_pobranym_softem/multiboard_1024_dout_eagle.irom0text.bin
Podobnie jak w poprzednio jeżeli wgrywanie zatrzyma się na Connecting... odpinamy przewód 3.3V na 2-3 sekundy i podłączamy ponownie.
Jeżeli wszystko przebiegło poprawnie mamy poprawnie wgraną SUPLE do Shelly 1! Teraz możemy podłączyć moduł do zasilania - utworzy on sieć wifi, do której łączymy się za pomocą telefonu lub komputera. W przeglądarce wchodzimy na stronę http://192.168.4.1 - otworzy się strona konfiguracyjna oprogramowania. Wybieramy typ płytki Shelly 1 i konfigurujemy pozostałe parametry.