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łączenie ESP8266 do flashowania

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:

sudo python esptool.py -p /dev/ttyUSB0 write_flash 0x00 firmware-combined.bin

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:

sudo screen /dev/ttyUSB0 115200

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.

RkBlog

Elektronika i Python, 18 July 2015

Comment article
Comment article RkBlog main page Search RSS Contact