Dostali sa mi do ruk z vypredaja moduly ESP8266 – 12E. Zo zaciatku som o nom vedel len to, ze je vhodny na IOT – internet of things. IOT ide v postate o to, ze na internet dokazete pripojit akekolvek zariadenie. Preco? Nuz aby ste mohli ziskavat informacie napr. o teplote, vlhkosti vzduchu, ci je posta v schranke, ci je chladnicka otvorena a ako casto, ako dlho, ovladat ustredne kurenie, a mnoho ineho.. Modul je maly, aby sa dal pouzit naozaj v akomkolvek existujucom zariadeni.
Ide o modul, ktory ma v sebe Wifi modul s mikroprocesorom a jednoduchu pamet. Pripaja sa cez seriove rozhranie. Podla tohto opisu to dost pripomina uz inu znamu dosku na stavbu prototypov – arduino. A nie nahodou. Programovacie prostredie Arduino IDE bolo upravene tak aby sa dali programy nahrat do modulov ESP. Samotny modul ESP sa lisi od arduina nielen tym ze nema USB port, len seriovu linku, ale aj sposobom nahravania programu. ESP modul ma standardny rezim, do ktoreho nabootuje po pripojeni napajania a programovaci rezim, do ktoreho nabootuje po pripojeni napajania. Napajacie napetie pre ESP je 3.3V! Rovnako aj signaly na IO pinoch pouzivaju logicku hodnotu 0-3.3V. Privedenie 5V ci uz na napajanie alebo na niektory vstupov poskodi samotny ESP modul. Pre tieto moduly je specificky odber, ktory bezne mavaju a mozu dosahovat az hodnoty 800mA. Preto je pri programovani aj nasadeni do prevadzky zabezpecit dostatocne dimenzovany zdroj. Casto krat bezny USB port z PC/Notebooku na prevadzku alebo programovanie nepostacuje. Tieto USB porty su totiz schopne dodat max 500mA (a to si este nieco vezme prevodnik/arduino).
Na obrazku vyssie je zapojenie ESP12E, podla ktoreho po pripojeni napajania nabehne do standardneho rezimu. Ak pripojime napajanie pri stlacenom tlacidle S1 tak ESP nabootuje do programovacieho rezimu a my mozme cez pripojene piny TXD a RXD nahrat program cez arduino IDE.
Na internete je mnoho navodov ako nahrat program do ESP pomocou USB-TTL prevodnikov. Tiez je mozne nahravat program pomocou arduino dosky. Je jedno pre ktoru sa rozhodnete, ci arduino uno, nano, alebo mega.
Staci prepojit RXD na ESP s RXD na arduino doske a rovnako TXD piny. POZOR! nie naopak. Prepojenie RX na TX a TX na RX nie je spravne a nahravanie pri takomto zapojeni sa nepodari. Potom uz len staci mat nainstalovnu dosku cez manazer dosiek v arduino IDE a program sa nahrava rovnakym sposobom ako do arduino dosky. Treba dat vsak pozor na spravny vyber dosky a doplnujucich parametrov modulu. Pre moje moduly ESP12 som pouzil parametre na obrazku a mozu sluzit pre pociatocne nastavenie.
Pridam jeden moj poznatok z prace s tymito modulmi. V pripade, ze pouzivate prerusenia (externe alebo interne), funkcie pre obsluhu tychto preruseni musia byt definovane “void ICACHE_RAM_ATTR funkcia();”. Je to vlastne na to, aby obsluzne funkcie boli v casti ICACHE RAM a nie v casti Flash. Bez tejto definicie bude prerusenie sposobovat neustaly reset a modul ani nenabootuje a nespusti nahrany program.
Ja som testoval arduino na prototypovej doske spolu s DHT22 snimacom, ktory meria vlhkost a teplotu vzduchu. Spolu s kniznicou thingspeak sa tieto data pravidelne nahravali na vzdialeny server thingspeak, kde ich mozem pozriet alebo ich dalej spracovat webovou strankou alebo aplikaciou do mobilu. Na google play najdeme dost aplikacii, ktore podporuju thingspeak server. Thingspeak server je urceny prave na tieto IOT aplikacie. Samozrejme su aj ine podobne servery, vyber je len na vas..