Jak flashować oprogramowanie sprzętowe MicroPython na inteligentnym przełączniku Sonoff opartym na ESP8266: 3 kroki (ze zdjęciami)
Jak flashować oprogramowanie sprzętowe MicroPython na inteligentnym przełączniku Sonoff opartym na ESP8266: 3 kroki (ze zdjęciami)
Anonim
Jak flashować oprogramowanie sprzętowe MicroPython na inteligentnym przełączniku Sonoff opartym na ESP8266?
Jak flashować oprogramowanie sprzętowe MicroPython na inteligentnym przełączniku Sonoff opartym na ESP8266?

Co to jest Sonoff?

Sonoff to linia urządzeń dla inteligentnego domu opracowana przez ITEAD. Jednymi z najbardziej elastycznych i niedrogich urządzeń z tej linii są Sonoff Basic i Sonoff Dual. Są to przełączniki z obsługą Wi-Fi oparte na świetnym układzie ESP8266. Podczas gdy infrastruktura Sonoff może działać całkiem dobrze dla podstawowych użytkowników, inni mogą chcieć włamać się do tego sprzętu i uruchomić na nim własny kod. Sprzęt inteligentnych przełączników Sonoff jest niesamowity, biorąc pod uwagę jego niską cenę:

  • ESP8266 z 1 MB pamięci flash
  • Zintegrowany zasilacz 220 V AC
  • Przekaźnik 10A (lub dwa w Sonoff Dual)
  • Wbudowana dioda LED (lub dwie w Sonoff Dual)
  • Przycisk na pokładzie

Jeśli chcesz przejąć pełną kontrolę nad tym sprzętem za pomocą swojego ulubionego języka programowania, ten samouczek jest dla Ciebie.

Krok 1: Hakowanie sprzętu

Hakowanie sprzętu
Hakowanie sprzętu
Hakowanie sprzętu
Hakowanie sprzętu
Hakowanie sprzętu
Hakowanie sprzętu

ESP8266 jest programowany przez port szeregowy. Zarówno Sonoff Basic, jak i Sonoff Dual mają to na PCD.

Może być konieczne przylutowanie listwy pinowej na płytce drukowanej, aby łatwo podłączyć adapter USB-UART.

Krok 2: Przygotowanie do zhakowania oprogramowania

Przygotowanie do zhakowania oprogramowania
Przygotowanie do zhakowania oprogramowania

Kocham Pythona, więc zamierzam użyć firmware MicroPython. Możesz także użyć dowolnego obsługiwanego pakietu SDK. Przejdźmy do flashowania MicroPythona zamiast zastrzeżonego oprogramowania Sonoff:

Zainstaluj pakiet esptool Python, który ułatwia flashowanie ESP8266:

pip zainstalować esptool

Pobierz najnowsze stabilne oprogramowanie sprzętowe MicroPython ze strony pobierania MicroPython. Podłącz adapter USB-UART do płytki. Ze względów bezpieczeństwa zaleca się zasilanie płytki z zasilacza zamiast z gniazda 220V AC. Pamiętaj, że możesz używać tylko 3,3 V, jeśli podłączysz układ ESP8266 do źródła zasilania 5 V, umrze.

Uruchom ESP8266 w trybie Flash. Możesz to zrobić, pociągając pin GPIO0 podczas włączania urządzenia:

  • W Sonoff Basic GPIO0 to po prostu przycisk. Podłącz adapter USB-UART do komputera, przytrzymując przycisk i jesteś w trybie Flash.
  • W Sonoff Dual sprawy są nieco trudniejsze. Podczas zasilania płytki należy zewrzeć dwa pady na płytce drukowanej. Wymagane klocki pokazano na powyższym obrazku. Użyj pęsety lub przylutuj między nimi mały drut.

Gdy ESP8266 jest w trybie Flash, dioda LED płyty nie powinna migać.

Upewnij się, że masz dostęp do portu szeregowego otwartego przez adapter USB-UART. W Linuksie jest to prawdopodobnie \dev\ttyUSB0, na Macu powinieneś poszukać czegoś takiego jak „usbserial” lub „usbmodem” w wyniku polecenia ls \dev\cu.* lub ls \dev\tty.*, w Windows powinien to być COM3 lub wyżej. W razie potrzeby zainstaluj sterowniki adaptera USB-UART.

Wymaż lampę błyskową za pomocą esptool. W razie potrzeby zamień /dev/ttyUSB0 dla swojego portu:

esptool.py --port /dev/ttyUSB0 erase_flash

Aby uzyskać dostęp do portu szeregowego, konieczne może być uruchomienie esptool.py jako superużytkownik.

Krok 3: miganie

Błyskowy
Błyskowy

Jeśli skasowanie powiodło się, odetnij zasilanie płyty, uruchom ponownie ESP8266 w trybie Flash i sflashuj oprogramowanie układowe:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=wykryj 0 esp8266-20170823-v1.9.2.bin

Jeśli flashowanie się powiodło, odłącz zasilanie płyty, podłącz ją ponownie bez naciskania przycisku i otwórz port szeregowy w terminalu. W systemach Linux i Mac możesz użyć ekranu /dev/ttyUSB0 115200 (w razie potrzeby zastąp /dev/ttyUSB0 dla swojego portu), w systemie Windows możesz użyć PuTTY (domyślna szybkość transmisji to 115200). Po połączeniu naciśnij Enter, a jeśli zobaczysz trzy nawiasy kątowe powłoki Pythona, wszystko działa!

>> >>> help() Witamy w MicroPythonie! Dokumenty online można znaleźć pod adresem https://docs.micropython.org/en/latest/esp8266/. Aby informacje diagnostyczne zostały uwzględnione w raportach o błędach, wykonaj polecenie „import port_diag”. Podstawowa konfiguracja WiFi: importuj sieć sta_if = network. WLAN(network. STA_IF); sta_if.active(True) sta_if.scan() # Skanuj w poszukiwaniu dostępnych punktów dostępowych sta_if.connect("", "") # Połącz z AP sta_if.isconnected() # Sprawdź, czy połączenie się powiodło # Zmień nazwę/hasło AP ESP8266: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") Polecenia sterujące: CTRL-A -- w pustym wierszu wprowadź surowy tryb REPL CTRL- B -- w pustej linii wejdź w normalny tryb REPL CTRL-C -- przerwij działający program CTRL-D -- w pustej linii wykonaj miękki reset płyty CTRL-E -- w pustej linii wpisz wklej tryb Aby uzyskać dalszą pomoc dotyczącą konkretnego obiektu, wpisz help(obj) >>>

W następnej instrukcji opiszemy, jak współdziałać z platformą Cloud4RPi za pośrednictwem protokołu MQTT.

Zalecana: