MicroPython na module WiFi ESP8266
Moduł WiFi ESP8266 przebojem wszedł do świata internetu rzeczy dzięki niskiej cenie i oferowanym możliwościom. Dość szybko powstał port MicroPythona działający na tym mikrokontrolerze. Obecnie dostępna jest już niskopoziomowa obsługa radia WiFi jak i dostęp do GPIO.
Flashowanie firmware na ESP8266
Adafruit udostępniło kompletny poradnik, jak i narzędzie potrzebne do wgrania micropythona na płytkę z ESP8266. Możemy pobrać gotowy obraz i go wgrać, lub jeżeli pojawiły się jakieś nowe zmiany - skompilować źródła, zbudować obraz i wgrać go na mikrokontroler.
Ja użyłem gotowego obrazu. Żeby wgrać obraz pod Linuksem potrzebować będziemy esptool. Pod Windowsem dostępna jest aplikacja z GUI.
Żeby wgrać firmware na płytkę ESP8266 musimy podłączyć ją do komputera poprzez adapter USB-UART oraz przestawić go w tryb flashowania. Sposób podłączenia całości zaprezentowano na blogu xess.com. Mi udało się to załatwić nieco łatwiej - bez oporników (ale zależeń to może od użytego adaptera USB-UART), z modułem UART posiadającym wyjście 3,3V. Całość pokazuje ten schemat:

Podłączamy RX i TX z adapterem UART, natomiast VCC i GND najlepiej podłączyć przez płytkę stykową. Do VCC podłączamy także pin CH_PD. Do GND będziemy też podłączać dwa piny - RST i GPIO 0 (ale to za chwilę). Podłączamy ESP8266 poprzez USB-UART do komputera. Następnie do GND podłączamy pin GPIO 0 (prog
), a następnie podłączamy i odłączamy pin RST (reset
). Gdy to wykonamy możemy flashować mikrokontroler.
Pod Linuksem po podłączeniu adaptera USB-UART w dmesg
możemy sprawdzić pod jakim numerem będzie on dostępny. Zapewne będzie to /dev/ttyUSB0
, więc wgranie firmware będzie wyglądać tak:
Jeżeli wszystko jest podłączone poprawnie to powinniśmy zobaczyć jak firmware jest wgrywane:
Connecting...
Erasing flash...
Writing at 0x0004d800... (100 %)
Leaving...
Gdy to mamy za sobą możemy zacząć używać MicroPythona na ESP8266.
MicroPython na ESP8266
Łączymy ESP8266 z komputerem za pomocą adaptera USB-UART i w konsoli wykonujemy polecenie:
To powinno dać nam terminal REPL i możliwość testowania MicroPythona na ESP8266. W moim przypadku dawało wiszące połączenie, na którym nic nie dało się zrobić. Nie wiem czy to wina konkretnej sztuki modułu ESP8266, czy jakiś problem z UARTem. Niestety nie mam po ręką drugiego modułu by sprawdzić łączność poprzez UART na oryginalnym firmware. Polecenie jakie można wydać modułowi ESP8266 poprzez UART znajdziecie w quick start guide.
Comment article