- Čo je ESP8266?
- Základy teórie WiFi:
- Typy programovania s ESP8266:
- Hardvér na programovanie modulu ESP8266:
- Potrebné materiály:
- Vysvetlenie obvodu:
- Stavebná rada pre program ESP8266:
Internet vecí a automatizácia domácnosti boli v posledných dňoch skutočne medializovanou témou. Budovanie niečoho vlastného, čo môže komunikovať s World Wide Web a je k nemu prístup z ktoréhokoľvek miesta na svete, to znie naozaj dobre, však?
Ale počkaj!!! Tiež to znie komplikovane ???….
Urobil som to pre mňa a myslel som si, že budovanie vecí, ktoré môžu interagovať s internetom, si bude vyžadovať nesmierny čas a zručnosti. NIE, úplne som sa mýlil, a to vďaka tomuto fantastickému modulu s názvom ESP8266 od Espressif Systems. Teraz môžete pomocou tohto modulu ľahko otvoriť dvere pre projekty IoT. Tento nízkonákladový modul malej veľkosti dokáže zázraky a je skutočne jednoduchý a ľahko použiteľný, ak dodržíme správne kroky.
Cieľom tohto výukového programu je predstaviť vám tento modul ESP8266-01 a pomôcť vám s ním začať. Možno ste už priniesli svoj modul a uviazli ste pri pokuse o jeho použitie. Potom nie ste sami, nebojte sa, mnoho ľudí považuje za veľmi ťažké začať s modulom, pretože pre tento modul neexistujú príslušné pokyny ani dokumentácia. To je dôvod pre vytvorenie tohto tutoriálu. Postupujte podľa pokynov tu a mali by ste byť schopní uviesť svoj modul ESP8266-01 do chodu v krátkom čase, tu na programovanie ESP8266 použijeme FTDI USB to TTL Serial Adapter Module. Skontrolujte podrobné video na konci výučby.
Predtým, ako sa dostaneme k tejto téme, povieme si základné informácie o module ESP8266-01.
Čo je ESP8266?
Väčšina ľudí nazýva ESP8266 ako modul WIFI, ale v skutočnosti ide o mikrokontrolér. ESP8266 je názov mikrokontroléra vyvinutého spoločnosťou Espressif Systems, ktorá je spoločnosťou založenou mimo Šanghaja. Tento mikrokontrolér má schopnosť vykonávať činnosti spojené s WIFI, a preto sa široko používa ako modul WIFI.
Existuje veľa typov modulov ESP8266 od ESP8266-01 do ESP8266-12. Ten, ktorý používame v tomto výučbe, je ESP8266-01, pretože je najlacnejší a ľahko dostupný. Všetky moduly ESP však majú iba jeden typ procesora ESP, ktorý sa líši iba použitým typom breakout bard. Breakoutová doska ESP8266-01 bude mať iba 2 GPIO piny, zatiaľ čo na iných doskách bude vyššia.
Kompletná špecifikácia modulu je uvedená v nasledujúcej tabuľke
Napätie |
3,3 V |
Terajšia konzumácia |
10uA-170mA |
Maximálna spotreba prúdu počas blikania |
800 mA |
Flash pamäť |
16 MB (512 kB normálne) |
procesor |
Tensilica L106 32 bitov |
Rýchlosť procesora |
80 - 160 MHz |
RAM |
32K + 80K |
GPIO |
17 (ale väčšina je multiplexovaná) |
Analógovo-digitálny prevodník |
1 (10-bit) |
Maximálne pripojenie TCP |
5 |
V poriadku, pár vecí, ktoré vás mohli prekvapiť pri špecifikácii, je, že modul ESP8266 ÁNO je dodávaný s prevodníkom ADC a počas blikania prístroja spotrebováva veľmi vysoký prúd 0,8 A.
Skontrolujte tiež naše rôzne zaujímavé IoT projekty založené na ESP8266.
Základy teórie WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Dávajú vám všetky uvedené výrazy zmysel?
Ak áno. Potom, BINGO, môžete preskočiť túto časť a presunúť sa do ďalšej časti.
Ak nie. Potom musíte byť jedným z mnohých študentov elektrotechniky, ktorí väčšinu týchto výrazov len mrkali rovnako ako ja, keď som bol oboznámený so všetkými týmito vecami. Poďme si teda rýchlo prečítať všetky tieto výrazy, pretože až potom sme mohli vstúpiť do sveta IOT.
Transfer Control Protocol (TCP):
Väčšina z nás by vedela, čo to znamená. Áno, toto je súbor pravidiel, na základe ktorých funguje internet. Pretože ESP8266 má schopnosť nastavovať WIFI pripojenie. Na vysokej úrovni Wi-Fi je schopnosť podieľať sa na pripojeniach TCP / IP cez bezdrôtové spojenie. Môžete nastaviť, aby váš ESP pracoval na protokole TCP / IP alebo UDP.
User Datagram Protocol (UDP):
UDP je tiež ďalším typom internetového protokolu. Tento typ komunikácie je rýchlejší ako TCP, ale je menej presný. Dôvod je ten, že TCP používa počas svojej komunikácie potvrdenie, ale UDP nie. TCP sa väčšinou používa v sieťach, kde sa vyžaduje vysoká spoľahlivosť. UDP sa používa v miestach, kde má rýchlosť vyššiu prioritu ako spoľahlivosť. Napríklad UDP sa používa pri videokonferenciách, pretože tam, aj keď sa neprenášajú niektoré pixely, to až tak neovplyvní kvalitu videa, ale rýchlosť je veľmi dôležitá.
Väčšina projektov a kódov ESP8266 funguje okolo protokolu TCP / IP, UDP to bude najmenej obťažovať.
Prístupový bod (AP) a stanica (STA):
Len čo začnete pracovať s modulom ESP, s týmito dvoma pojmami by ste sa často stretli. Povedzme, že vy a váš priateľ by ste chceli surfovať na internete na svojich inteligentných telefónoch, ale keďže nemá aktívne pripojenie na internet, rozhodli ste sa zapnúť váš hotspot a váš priateľ sa k nemu pripojí. Váš telefón, ktorý získava pripojenie na internet, je tu Access Point (AP) a telefón vášho priateľa, ktorý používa internet, sa nazýva Station (STA).
Modul ESP8266 je možné používať v troch režimoch, AP režime, STA režime alebo v STA aj AP režime (kombinovanom).
Identifikátor súpravy služieb (SSID):
Je to dosť jednoduchý výraz. Takmer každý z nás používal WIFI. Názov siete Wi-Fi sa nazýva SSID. Keď máme k stanici viac prístupových bodov, ku ktorým sa môžeme pripojiť, mala by stanica vedieť, ku ktorému prístupovému bodu by sa mala pripojiť, a preto má každý prístupový bod (AP) identitu, ktorá sa nazýva SSID.
Aplikačné programové rozhranie (API):
Zjednodušene povedané, API je messenger, ktorý prijíma vaše požiadavky, spracuje ich a vráti vášmu systému požadovaný výsledok. Väčšina aktivít, ktoré robíme na internete, využíva API, napríklad keď rezervujete let, nakupujete online atď. Všetky webové stránky vás odkazujú na API, kde sa za vás vykonáva určitá časť práce, ako je registrácia, platba atď. tam.
ESP8266 používa API na komunikáciu so svetom internetu. Napríklad ak chce poznať čas, podnebie alebo čokoľvek, čo by malo požadovať vo forme API na príslušnú webovú stránku. Táto webová stránka prijme žiadosť a vráti požadovaný výsledok späť nášmu modulu ESP.
Webový server:
Webový server je niečo, čo je zodpovedné za zobrazenie obsahu webovej stránky. Celý obsah konkrétnej webovej stránky sa načíta na jej webový server. Existujú vyhradené počítače, ktorých úlohou je fungovať iba ako webový server. Môžeme tiež naprogramovať náš ESP8266 tak, aby fungoval ako webový server a pripájal sa k nemu odkiaľkoľvek na svete.
Dobre, to je dosť na to, aby sme mohli začať. Teraz sa dostaneme do rúk hardvéru.
Typy programovania s ESP8266:
Existujú dva spôsoby práce s modulom ESP8266. Tento návod vám pomôže začať s oboma. Jedným zo spôsobov je použitie príkazov AT. Ďalším spôsobom je použitie IDE Arduino. Poďme pochopiť, čo to znamená.
Všetky moduly ESP8266 dodávané z výroby budú mať načítaný predvolený firmvér (SDK + API). Tento firmvér vám pomôže programovať modul ESP8266 pomocou príkazov AT.
Ďalším spôsobom je priame programovanie modulu ESP8266 pomocou Arduino IDE (doska nie je potrebná) a jeho knižníc. Všetky projekty je možné realizovať oboma spôsobmi. Ak však začnete programovanie Arduino IDE používať na programovanie vášho ESP8266, nebudete pravdepodobne môcť používať príkazy AT, pretože mohla byť poškodená predvolená sada SDK. V takom prípade musíte ESP vybaviť predvolenými nastaveniami. Tomu sa budeme venovať v ďalšom návode.
Hardvér na programovanie modulu ESP8266:
ESP8266 je 8 koncový modul. Čip z toho istého je uvedený nižšie.
Tento modul bohužiaľ nie je vhodný pre prkénko a preto ho nemôžeme namontovať priamo na našu dosku. Na rozdiel od Arduina nemá zabudovaný USB na sériový ovládač; preto musíme na komunikáciu používať modul „FTDI USB to TTL Serial Adapter Module“. Uistite sa, že doska FTDI môže pracovať aj na 3,3 V; ten, ktorý používame v tomto výučbe, je uvedený nižšie.
Teraz, ako vieme, by sme mali napájať ESP8266 s napätím 3,3 V. Ale súčasná spotreba je 0,8A, takže pri napájaní z našej FTDI breakout dosky nemusí fungovať podľa očakávania. Preto musíme vybudovať vlastný napájací obvod. Tu sme použili LM317 na napájanie; podrobnosti na výrobu celého hardvéru sú uvedené v ďalších častiach.
Potrebné materiály:
- Perf Board
- ESP8266-01
- Doska úniku FTDI
- LM317
- 0,1uf kondenzátor
- 10uf kondenzátor
- Barrel Jack
- Muž a žena Bergstik
- Tlačidlo
- Pripojovacie vodiče
- 12V adaptér na napájanie dosky.
Vysvetlenie obvodu:
Schémy dosky sú zobrazené nižšie
Niektorí sa možno pokúsili napájať váš ESP priamo z vášho FTDI a dostali ho do prevádzky, ale nasledujúce sú dôvody, prečo si vytvoriť vlastnú dosku s niekoľkými ďalšími komponentmi:
- Iba málo dosiek FTDI môže napájať dostatok prúdu pre modul ESP. Len málo modulov ESP môže počas blikania spotrebovať vysoký prúd ako ostatné. Preto je vždy bezpečné mať vlastný zdroj energie a bude jednoduchšie integrovať napájací obvod na dosku Dot Board namiesto doštičky.
- Pred nahraním kódu by sme mali vždy resetovať modul ESP. Budovanie vlastnej dosky nám pomôže modul ľahko resetovať. Použili sme tlačidlo na resetovanie ESP8266.
- Pin GPIO0 musí byť pri programovaní pomocou Arduina uzemnený a pri používaní AT príkazov musí zostať voľný, čo sa dá ľahko prepnúť, ak si zostavíme vlastnú dosku. Na prepínanie medzi režimom príkazových riadkov AT a režimom programovania IDE Arduino sme použili prepojku.
- Celé programovanie sa vykonáva pomocou sériovej komunikácie . Ak používate prepájaciu dosku, niektoré uvoľnené terminály by mohli spôsobiť chybu v polovici cesty a prinútiť nás, aby sme s modulom znovu pracovali.
To znamená, že si môžete vybrať, či použijete nepájivú dosku a či si vytvoríte vlastnú dosku na programovanie modulu. Ak chcete naďalej používať nepájivú dosku, môžete pomocou nej vytvoriť rovnaký obvod, ako je uvedené vyššie. Odlišný bude iba vzhľad, všetky ostatné pokyny v tomto výučbe budú platiť rovnako.
Stavebná rada pre program ESP8266:
Takže tu budujeme dosku na programovanie modulu ESP8266, ktorý má vlastný napájací obvod na napájanie ESP8266.
Ako už bolo povedané, náš modul bude pri programovaní vyžadovať okolo 800 mA. Preto sme skonštruovali náš vlastný výkonový modul pomocou variabilného regulátora napätia LM317, pretože zdrojový prúd LM317 je takmer 1,2A. Vstupné napätie LM317 bude 12V, ktoré bude dané pomocou adaptéra na stenu 12V 2A. Výstup LM317 bude neustále regulovaný na 3,3 V pomocou rezistorov 220ohm a 360ohm. Skontrolujte tiež náš obvod nabíjačky batérií pomocou LM317 a dozviete sa viac o LM317.
Vzorce na výpočet výstupného napätia LM317 sú uvedené nižšie:
Vout = 1,25 * (1+ (R2 / R1))
Kde, R1 je 220ohm a R2 je 360ohm.
Modul ESP8266 je pripojený podľa pinov uvedených v nasledujúcej tabuľke.
PIN č. |
Názov PIN ESP |
Pripojený k |
1 |
Uzemnenie |
Uzemnenie modulu FTDI |
2 |
GPIO2 |
Ponechané voľné alebo spojené s berg stickom pre budúce použitie |
3 |
GPIO0 |
Prepínaním prepínate medzi režimami programovania |
4 |
Rx |
Tx modulu FTDI |
5 |
Tx |
Rx modulu FTDI |
6 |
CH_PH |
3,3 V z LM317 |
7 |
Resetovať |
Tlačidlo na resetovanie modulu |
8 |
Vcc |
3,3 V z LM317 |
Pre ľahké prepínanie medzi príkazovým režimom AT a programovacím režimom Arduino som umiestnil prepínač (jumper), ktorý pri použití Arduino IDE stiahne GPIO 0 na zem a pri použití príkazov AT ho nechá plávať.
K dispozícii je tlačidlo, ktoré po stlačení resetuje modul ESP. To sa deje jednoduchým pripojením kolíka RST modulu ESP k uzemňovacej lište pomocou tlačidla. Vždy, keď naprogramujeme náš modul ESP, mali by sme ho resetovať.
Po zostavení obvodu by to malo vyzerať asi takto nižšie.
Použil som dosku Perf, ale ak máte záujem, môžete tiež použiť nepájivú dosku (ako je uvedené vyššie). Kompletné zostavenie a vysvetlenie je uvedené vo videu nižšie.
Po dokončení s pripojeniami. Zapnite dosku bez dosiek ESP a FTDI a skontrolujte, či máme správne 3,3 V na svorkách Vcc a Ground na pozíciách modulov ESP. Teraz sa uistite, že je vaša doska FTDI v režime 3,3 V a pripojte svoje moduly FTDI a ESP k svojej doske.
Zapnite adaptér a pripojte ho k doske. Modul ESP by sa mal rozsvietiť červenou farbou.
Potom pripojte dosku FTDI k počítaču pomocou kábla mini-USB na USB a prejdite do Správcu zariadení v počítači a mali by ste nájsť dosku FTDI pripojenú k portu COM, ako je uvedené nižšie:
Teraz je čas, aby sme sa dostali k programovaniu nášho modulu ESP8266. Môžete začať s použitím AT príkazov a potom prejsť na používanie Arduino IDE. Nezabudnite skontrolovať naše ďalšie Projekty založené na ESP8266.