23. prosince 2014

ESP8266: WI-FI a internet do každého zařízení II.

V tomto článku popíšu jak do ESP8266, konkrétně modulu verze ESP-01 (do ostatních verzí to bude podobné) nahrát alternativní firmware. Já jsem začal používat firmware NodeMCU. Tento firmware je podle mě asi nejdál ze všech. Včera byly k tomuto firmware zveřejněny i zdrojové kódy což jeho vývoj asi ještě urychlí. Tento firmware v sobě obsahuje skriptovací jazyk LUA. V tomto jazyce pak můžeme psát svoje vlastní programy.

Pozor, celý modul je napájen z 3.3V a GPIO porty netolerují napětí 5V. Odběr při komunikaci přes WIFI může být až 250mA a napájení z interního stabilizátoru USB převodníku nemusí stačit pro správnou funkci a je třeba použít externí napájení.

Zapojení modulu pro flash firmware
Modul zapojíme podle schématu. Zatím nepřipojujeme GPIO0 na zem a vyzkoušíme nejdříve nějakým terminálovým programem (např. Coolterm) zda nám modul komunikuje i s originálním firmware. Rychlost by měla být 115200 bd (u některých hodně starých verzí 57600 bd). Na  AT+GMR by měl vrátit verzi fw.
Stáhneme aktuální firmware z:  
https://github.com/nodemcu/nodemcu-firmware/tree/master/pre_build/0.9.4/512k-flash

Nejčastěji se vyskytují moduly s 512k flash pamětí, ale jsou k dispozici i pro jiné velikosti.

Nyní budeme potřebovat nějaký nástroj pro nahraní nového firmware. 
Pro Linux např. https://github.com/themadinventor/esptool
Pro windows např. https://github.com/nodemcu/nodemcu-flasher


Modul připojíme podle schématu a GPIO0 připojíme na zem a a pak teprve připojíme napájení.

V linuxu použijeme příkaz:

./esptool.py -p /dev/<path-to-serial> write_flash 0x000000 nodemcu_512k.bin

Ve WIN nahrajeme aplikací.

Po odpojení GPIO0 a resetu napájení by měl modul začít komunikovat rychlostí 9600 bd.

Můžeme zkusit zadat příkazy pro připojení k WIFI a vypsání IP adresy.

Základní připojení k WIFI síti:
print(wifi.sta.getip())
--0.0.0.0
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
print(wifi.sta.getip())
--192.168.18.110

Modul by se měl připojit a získat IP adresu z DHCP serveru. Nyní můžeme začít vytvářet svoje vlastní programy.

V příštím díle si ukážeme jak s modulem efektivně komunikovat a jak vytvářet vlastní scripty.

7 komentářů:

Anonymní řekl(a)...

Z čeho je ten modul při flashování napájený? Z toho interního 10mA zdroje integrovaného do FTDI chipu?

Unknown řekl(a)...

Dobrý den, modul jsem zapojil, ale jediné co dělá je, že do terminálu neustále(!!!) posílá nesmysly. Při pokusu o flash se tváří, že funguje. Po odpojení pinu GPIO0 od GND a resetu je vše beze změny.

Anonymní řekl(a)...

terminálu neustále(!!!) posílá nesmysly - to je i můj případ :-(

Anonymní řekl(a)...

Zdravím,
link na aktuální firmware vrací chybu 404. Kde najdu opravdu aktuální firmware ?

Ivan

Anonymní řekl(a)...

Take mi neustale vracel nesmysli, tak jsem ho pripojil na externi napajeni 3.3V a uz to slo. Prevodniky USB->TTL asi nedokazi dodat dostatecny proud.

Anonymní řekl(a)...

Borci tak to je parada, velice dekuji, muzu rict ze to funguje napoprve, akorad je treba vicekrat restartovat, nez se modulek chytne a hlavne davat pozor na zadavani prikazu na UART

Ragnor řekl(a)...

Dobrý den, velice zajímavý článek. Jako začátečník mám hloupý dotaz, poradíte mi prosím jaký USB převodník použít (ideálně i s odkazem kde ho koupit)? Děkuji.