Wgrywanie firmware do ESP8266 przez Arduino
Instrukcja wgrywania firmware do modułu WiFi ESP8266 poprzez Arduino Uno. Co będzie potrzebne do „nafleszowania” układu ESP8266:
Arduino Uno bez układu Atmel. Arduino posłuży tutaj jako interfejs USB-UART, dlatego wyciągamy układ scalony. Mój FT232RL nie działał jak należy, a Arduino sprawdza się w zupełności.
Moduł Wi-Fi ESP8266 w wersji ESP-01 z 1024KB pamięci.
Firmware ze strony nodemcu-build.com. Najprostszym sposobem na pobranie firmware jest zbudowanie go na tej stronie.
Oprogramowanie do wgrywania firmware esptool ze strony github.com/espressif/esptool.
To co nas czeka to przygotowanie środowiska do pracy. Najpierw instalujemy niezbędne oprogramowanie. Pierwszym narzędziem, które będzie potrzebne do pracy to esptool. Jest to program, który posłuży do wgrywania softwu do naszego modułu Wi-Fi. Mając zainstalowany Python, wpisujemy w terminalu: pip install esptool Następnie podpinamy nasz układ ESP8266 do Arduino wg poniższego schematu:
Arduino
ESP-01
GND
GND, GPIO0
TXD
TX
RXD
RXD
3V3
VCC, CH_PD
Pomiędzy GND a GPIO0 w ESP-01 wpinamy włącznik. Posłuży on do przełączania się między trybami „pracy” a „fleszowania” naszego modułu. Schemat pinów dla ESP-01 można znaleźć pod tym adresem.
Mając już przygotowane w ten sposób środowisko pracy można pobrać firmware do modułu ESP8266. Na stronie nodemcu-build.com można zbudować właściwe oprogramowanie. Do naszych potrzeb wystarczą domyślnie wybrane moduły, więc nie trzeba nic zmieniać. Podajemy adres email na który mają przyjść powiadomienia oraz linki do zbudowanego firmware.
Podpinamy Arduino z ESP do komputera poprzez kabel USB. Należy pamiętać aby wyjąć układ Atmel z Arduino. Trzeba również pamiętać, aby piny GND i GPIO0 były zwarte podczas wpinania układu do komputera. Do tego można użyć przełącznika, albo po prostu zewrzeć je przewodem. W ten sposób uruchamiamy moduł w trybie wgrywania firmware. Sprawdzamy, czy sprzęt jest widoczny:
ls /dev/ttyACM0 W moim przypadku jest wykryty jako ttyACM0. Jeśli wszystko gra to wgrywamy pobrany przed chwilą firmware:
esptool.py --port /dev/ttyACM0 --baud 115200 write_flash 0x00000 ./nodemcu-master-7-modules-2017-01-23-21-15-49-integer.bin
Możliwe problemy jakie mogą tutaj wystąpić to źle dobrana szybkość transmisji –baud 115200 (spróbuj 9600), inny adres urządzenia ttyACM0, albo brak zwartego GPIO0 do masy. Do czyszczenia pamięci służy polecenie
esptool.py --port /dev/ttyACM0 --baud 115200 erase_flash
A pomoc można uzyskać poprzez:
esptool.py --help
Linki:
http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-01 informacje o wersji ESP-01 modułu ESP8266
Last updated