Jedním z fenoménů poslední doby je „The Internet of Things“, nejčastěji do češtiny překládaný jako Internet věcí. V podstatě jde o to, že díky rozvoji moderních technologií bude možné každou věc připojit přímo do Internetu. Před deseti lety rozhodně nebylo běžné aby například televize byla vybavena WiFi připojením. Dnes je to prakticky standard, pronikající do stále nižších modelových řad jednotlivých výrobců. Tím by to ale zdaleka nemělo skončit.
Představte si domácnost plnou „věcí“ připojených k Internetu. Různá čidla jako teploměry, vlhkoměry, spínače topení, osvětlení a cokoliv co Vás napadne. Všechny tyto věci budou s Vámi a klidně i spolu navzájem komunikovat. Jednou z cest jak toho docílit je vybavit je WiFi modulem. Jistě si řeknete, že to není nic až tak nového a budete mít pravdu – není. Co je ale nové je cena. Před pár měsící se na trh dostal modul postavený okolo čipu ESP8266. Běžná cena například na eBay je 5$ za kus včetně dopravného. Dodání obvykle trvá cca měsíc, někdy i déle.
Tak úvod máme za sebou a pojďme se v rychlosti podívat o co jde. Následující text vychází z mých dnes čerstvě získaných zkušeností. Rozhodně nejde o kompletní návod pro začátečníky 🙂
Modulů postavených na ESP8266 existuje více druhů. Já mám moduly označované jako ESP-01. Srovnání jednotlivých variant je například zde. Modul pracuje v tzv. 3V3 logických úrovních. S tím je potřeba počítat. K běžnému Arduino ho jen tak nepřipojíte. Pro první experimenty jsem použil obvod MAX3232, který konvertuje klasickou RS-232 na 3V3. Popis jednotlivých pinů modulu je například tady. Pokud jde o napájecí zdroj tak počítejte s tím, že modul může krátkodobě odebírat proud až 300 mA. Já to podcenil a vše zpočátku fungovalo normálně. Jakmile jsem ale začal opravdu používat WiFi, začalo to záhadně padat.
Modul se kompletně ovládá „AT příkazy“ – pamatujete na modemy?! :-). Jejich asi nejlepší popis jsem našel tady. Pro rychlý test spojení použijte třeba AT+GMR, který vrátí verzi firmware. Doporučuji aktualizovat na V0.922, který včetně nástroje pro aktualizaci stáhnete zde. Před vlastní aktualizací je potřeba uzemnit pin GPIO 0 a restartovat modul (prostě mu vypnout a zapnout napájení). Jakmile se firmware nahraje, napíše program chybu při „opouštění aktualizačního režimu“. Nic se neděje. Odpojte modul o napájení, zrušte uzemnění GPIO 0 a zase ho zapněte. Dejte si pozor na komunikační rychlost. Předchozí firmware je natvrdo nastaven na 115200 bps a nejde to změnit. Ten co jste nahráli má ale výchozí rychlost 9600 bps a zároveň jde rychlost změnit. Opět pomocí AT+GMR můžete zkontrolovat jestli komunikace funguje a jestli máte vyšší verzi firmware.
Ještě popíšu pár věcí, které jsem v dokumentaci (zatím?) nenašel. Pokud pomocí příkazu AT+CWMODE=3 nastavíte WiFi do režimu Sta+AP, tak si modul jako AP nastaví IP adresu 192.168.4.1. Nepřišel jsem na to jak to změnit. V principu to ničemu nevadí pokud Vaše síť nepoužívá stejný rozsah. To pak asi bude problém. Máte-li na domácí WiFi zapnuté šifrování (kdo ne?!) tak se jen pomocí příkazu AT+CWJAP nepřipojíte. Budete muset nejdříve pomocí jiného příkazu nastavit podrobnější parametry pro Vaši síť. Bude to tedy vypadat například takto AT+CWSAP=“mojewifi“,“mojeheslo“,11,wap2 kde 11 je kanál a wap2 verze šifrování. Pak už stačí jen AT+CWJAP=“mojewifi“,“mojeheslo“ a modul je připojen. Snadno si to ověříte příkazem AT+CIFSR, který vrátí IP adresu modulu, na kterou můžete zkusit ping z počítače. Zatím se domnívám, že parametry zadané příkazem AT+CWSAP si modul pamatuje i po vypnutí a smažou se teprve přehráním firmware. Pokud máte doma lepší WiFi Access Point, určitě se podívejte i do něj. Já třeba v mém MikroTiku po aktualizaci firmware modulu zjistil, že je signál silnější a spojení běží rychleji.
Myslím, že jako první seznámení to stačí. Modul toho umí mnohem více a je vidět jakým bouřlivým vývojem software okolo něj prochází. Už je dokonce možné programovat i přímo ESP8266 pomocí SDK. Budu rád, když se s výsledky svých pokusů podělíte buď hned v diskuzi pod článkem nebo na našem fóru 😉
Komerční poznámka: Modul lze zakoupit ve SnailShopu, s použitím kupónu DoupeFG8P získá prvních deset zákazníků slevu 20% (J. Hanzal).