Wifi modul založený na čipe ESP8266. ESP8266 a Arduino, pripojenie, schéma zapojenia pinov Esp 01

  • 10.09.2021

Wi-Fi modul ESP-01 je najobľúbenejším modulom zo série ESP8266. Komunikácia s počítačom alebo mikrokontrolérom prebieha cez UART pomocou sady AT príkazov. Okrem toho môže byť modul použitý ako samostatné zariadenie, preto doň musíte nahrať firmvér. Firmvér môžete naprogramovať a stiahnuť prostredníctvom verzie Arduino IDE vyššej ako 1.6.5. Na flashovanie modulu budete potrebovať adaptér UART-USB. Modul ESP-01 môže byť široko používaný pre použitie v zariadeniach IoT (Internet of Things).

technické údajemodul

  • Wi-Fi 802.11 b/g/n
  • Režimy WiFi: klient, hotspot
  • Výstupný výkon - 19,5 dB
  • Napájacie napätie - 1,8-3,6 V
  • Spotrebný prúd - 220 mA
  • Porty GPIO: 4
  • Frekvencia procesora - 80 MHz
  • Veľkosť pamäte pre kód
  • RAM - 96 kB
  • Rozmery - 13x21mm

Pripojenie

Pozrime sa na príkazový režim AT. Za týmto účelom pripojte modul k počítaču pomocou adaptéra USB-UART. Priradenie pinov modulu (pozri obrázok 1):
  • VCC - +3,3 V
  • GND - zem
  • RX, TX - UART kolíky
  • Výstup CH_PD - Povolenie čipu
  • GPIO0, GPIO2 - digitálne piny
Modul vyžaduje externé napájanie 3,3V.

Obrázok 1. Priradenie pinov modulu ESP-01

Schéma zapojenia pre komunikáciu s modulom v režime príkazov AT (obrázok 2):

Obrázok 2. Schéma pripojenia modulu ESP-01 k počítaču cez sériový port

Obrázok 3. Schematické zostavenie

CoolTerm môžete použiť na odosielanie AT príkazov v Mac OS X a Termite vo Windows. Rýchlosť COM portu pre pripojenie k modulu zistíte len experimentálne, pre rôzny firmware môže byť iná. Pre môj modul sa rýchlosť ukázala ako 9600 baudov. Ústredňu bolo navyše možné zriadiť až po odpojení a opätovnom pripojení na napájanie výstupu CH_PD. Po pripojení napíšeme do terminálu AT a z modulu by mala dostať odpoveď OK. Príkaz AT + GMR udáva číslo verzie firmvéru modulu, príkaz AT + RST reštartuje modul (pozri obr. 4). Zoznam základných AT príkazov nájdete v tomto dokumente (ESP8266ATCommandsSet.pdf).

Obrázok 4. Odosielanie AT príkazov do modulu z programu Termite

Ak vám režim príkazov AT nevyhovuje, dosku je možné nakonfigurovať pomocou programu AppStack ESP8266 Config, ktorý si môžete stiahnuť z odkazu http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. Vzhľad programu je znázornený na obrázku 5. Modul sa konfiguruje pomocou grafického rozhrania, pričom vykonávanie príkazov je vidieť na monitore programu (pozri obrázok 6). V monitore môžete tiež odosielať AT príkazy z príkazového riadku.

Obrázok 5. AppStack ESP8266 Config Program

Obrázok 6. Sériový monitor AppStack ESP8266 Config

Existujú dve možnosti použitia tohto modulu:

  • v spojení s mikrokontrolérom (napríklad Arduino), ktorý bude modul ovládať cez UART;
  • napísanie vlastného firmvéru na používanie ESP8266 ako samostatného zariadenia.

Príklad použitia

Zoberme si príklad pripojenia snímača vlhkosti a teploty DHT11 k modulu ESP-01 a odosielanie údajov do cloudovej služby ThingSpeak (https://thingspeak.com/). Potrebujeme nasledujúce podrobnosti:
  • Modul ESP-01
  • doska na chlieb
  • Senzor vlhkosti a teploty DHT11
  • odpor 10k ohm
  • spojovacie vodiče
  • napájací zdroj 3 - 3,6V
Najprv pripojíme snímač DS18B20 k modulu ESP-01. DS18B20 je digitálny teplotný snímač pracujúci cez 1-Wire jednovodičové rozhranie. Schéma pripojenia snímača DS18B20 k modulu je na obr. 7.

Obrázok 7. Schéma pripojenia snímača DHT11 k modulu ESP-01.

Potom si musíte vytvoriť profil v službe ThingSpeak. Služba má pokyny na odosielanie údajov do služby a prijímanie údajov zo služby.

Obrázok 8. Schéma montáže.

Program napíšeme v Arduino IDE pre ESP8266. Použijeme knižnice ESP8266WiFi.h (vstavané) a OneWire.h. Nahrajme náčrt z výpisu 1 na dosku Arduino – získame dáta z teplotného senzora a odošleme dáta do služby ThingSpeak. Musíte zadať svoje údaje pre WiFi prístupový bod pre modul ESP-01:

  • const char * ssid;
  • const char * heslo;
a tiež parameter privateKey pre vašu aplikáciu v službe ThingSpeak. Výpis 1 // stránky // Zahŕňame knižnicu pre prácu s esp8266 #include // Zahrňte knižnicu DHT na prácu s DHT11 #include // pin pre pripojenie DATA kontaktu #define DHTPIN 4 // DHT11 senzor #define DHTTYPE DHT11 // vytvorenie inštancie objektu DHT DHT dht (DHTPIN, DHTTYPE); // ssid siete WiFi pripojenia const char ssid = "********"; // Heslo WiFi siete pripojenia const char password = "******"; // ThingSpeak Server const char * host = "184.106.153.149"; // API KEY vašej aplikácie ThingSpeak const char * privateKey = "****************"; // premenné pre ukladanie teploty a vlhkosti float temp; plávajúca vlhkosť; // premenná pre interval merania unsigned long millis_int1 = 0; void setup () (// spustenie sériového portu Serial.begin (115200); oneskorenie (10); Serial.print ("Pripojenie k WiFi"); Serial.println (ssid); // Pripojenie cez WiFi WiFi.begin ( ssid , heslo); while (WiFi.status ()! = WL_CONNECTED) (oneskorenie (500);) Serial.println ("WiFi pripojené"); // spustenie dht dht.begin ();) void loop () (/ / počkajte 10 minút interval if (milis () - millis_int1> = 10 * 60000) (Serial.print ("pripojenie k ThingSpeak"); Serial.println (hostiteľ); // Použiť WiFi klienta WiFiClient klienta; if (! klient .connect (hostiteľ, 80)) (Serial.println ("pripojenie zlyhalo"); return;) // získanie údajov o teplote temp = get_data_temperature (); vlhkosť = get_data_humidity (); // Vytvorenie adresy URL s požiadavkou pre server String url = "/ update? key = "; url + = privateKey; url + =" & temp = "; url + = temp; url + =" & vlhkosť = "; url + = vlhkosť; // Odoslať požiadavku na server client.print (String (" GET ") + url +" HTTP / 1.1 \ r \ n "+" Hostiteľ: "+ hostiteľ +" \ r \ n "+" Pripojenie: zavrieť \ r \ n \ r \ n "); oneskorenie (10); // Odpoveď servera ThingSpeak kým (client.available ()) (String req = client.readStringUntil ("\ r"); Serial.print (req);))) Teraz v službe ThingSpeak môžeme sledovať graf nášho DHT11 snímač teploty (obrázok 9).

Obrázok 9. Schéma hodnôt snímača teploty DS18B20 v službe ThingSpeak.

Často kladené otázky FAQ

1. Modul nereaguje naAT príkazy
  • Skontrolujte, či je modul správne pripojený;
  • Skontrolujte správne pripojenie pinov Rx, Tx k adaptéru UART-USB;
  • Skontrolujte pripojenie pinu CH_PD k 3,3V;
  • Experimentálne vyberte prenosovú rýchlosť pre sériový port.
2. Modul ESP-01 neprijíma údaje o teplote zo snímačaDHT11
  • Skontrolujte správne pripojenie snímača DHT11 k modulu.
3. Údaje sa neprenášajú do služby ThingSpeak
  • Skontrolujte pripojenie modulu k prístupovému bodu WiFi;
  • Skontrolujte pripojenie prístupového bodu WiFi k internetu;
  • Overte, či je požiadavka na službu ThingSpeak správna.

Pre prácu s RemoteXY musí mať modul ESP8266 verziu firmvéru, ktorá podporuje AT príkazy aspoň v0.40. Ak chcete skontrolovať verziu modulu a v prípade potreby zmeniť firmvér, pripojte modul k počítaču cez sériový port. Modul je možné pripojiť cez Arduino dosku alebo cez USB-UART adaptér.

Arduino pripojenie

Pri použití Arduina sa hlavný čip ATmega uvedie do režimu reset, aktívny zostáva iba vstavaný prevodník USB-UART. Na tento účel je kolík RESET pripojený k zemi. Piny RX a TX sa pripájajú priamo k ESP8266 a nie krížovo, ako keby boli spojené pre prácu s ovládačom.

Pripojenie cez USB-UART adaptér

Prevodník musí mať výstup zdroja 3,3 V na napájanie ESP8266. Taktiež tento zdroj musí poskytovať požadovaný prúd minimálne 200mA.



Kontakt CPIO0 určuje prevádzkový režim modulu. Keď nie je kontakt pripojený, modul funguje normálne a vykonáva AT príkazy. Keď je kontakt zopnutý k zemi, modul sa prepne do režimu aktualizácie firmvéru. Prepnutie modulu do režimu firmvéru vyžaduje, aby bol kolík CPIO0 pripojený k zemi, keď je modul zapnutý. Ak je kontakt zatvorený počas chodu modulu, modul sa neprepne do režimu aktualizácie firmvéru.

Kontrola aktuálnej verzie

Na odosielanie príkazov AT a prezeranie odpovedí sa musí použiť akýkoľvek program monitorovania sériového portu. Terminálový program z Arduino IDE funguje veľmi dobre. Program musí nastaviť režim odosielania príkazov s posunom na konci riadka a návratom vozíka. Predvolená rýchlosť modulu je 115200 bps. Aby modul fungoval v normálnom režime, musí byť odpojený kontakt CPIO0.

Aktuálnu verziu firmvéru môžete skontrolovať vykonaním príkazu AT: AT + GMR. Príklad odpovede modulu:

Verzia AT: 0.40.0.0 (8. augusta 2015 14:45:58)
Verzia SDK: 1.3.0

Stav: 1.3.0.2 11. september 2015 11:48:04
OK

Oplatí sa zistiť aj veľkosť flash pamäte vášho modulu, od toho závisí nastavenie adries na načítanie dát pri aktualizácii firmvéru. Táto príručka popisuje firmvér modulu s veľkosťou pamäte flash 8Mbit (512KB + 512KB) alebo 16Mbit (1024KB + 1024KB), ako najbežnejší. Veľkosť flash pamäte je možné zistiť vykonaním príkazu AT na resetovanie modulu: AT + RST.

Ets Jan 8 2013, prvá príčina: 2, bootovací režim: (3,1)

Záťaž 0x40100000, len 1396, miestnosť 16
chvost 4
chksum 0x89
zaťaženie 0x3ffe8000, len 776, miestnosť 4
chvost 4
chksum 0xe8
zaťaženie 0x3ffe8308, len 540, miestnosť 4
chvost 8
chksum 0xc0
csum 0xc0

2. verzia zavádzania: 1.4 (b1)
Rýchlosť SPI: 40 MHz
Režim SPI: DIO
Veľkosť a mapa SPI Flash: 8 Mbit (512 KB + 512 KB)
skok na spustenie user1 @ 1000

# t # n "nepoužívať údaje rtc mem
slЏ‚rlMe
Ai-Thinker Technology Co., Ltd.

Program pre firmvér

Ak chcete aktualizovať firmvér, musíte si stiahnuť program firmvéru a samotný firmvér. Program pre firmvér ESP8266 bude použitý Flash Download Tools v2.4 z oficiálnej stránky Espressif Systems. Odkaz na stránku na stiahnutie na oficiálnej webovej stránke:. Musíte prejsť do sekcie "Nástroje".

Odkaz na program v našom úložisku súborov: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Firmvér

Firmvér je možné stiahnuť aj z oficiálnej webovej stránky. Odkaz na stránku na stiahnutie na oficiálnej webovej stránke:. Musíte prejsť do sekcie „SDKs & Demos“ a stiahnuť si firmvér ESP8266 NONOS SDK v1.3.0 alebo vyšší. Práve od tejto verzie firmvéru je implementovaná podpora pre AT príkazy v0.40 a ďalšie.

Odkaz na firmvér v našom úložisku súborov: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

Všetky stiahnuté súbory je potrebné rozbaliť a umiestniť do adresára, kde úplná cesta k súborom pozostáva iba zo znakov latinky, teda bez znakov jazykovej lokalizácie.

Prispôsobenie

Spustite program firmvéru Flash Download Tools v2.4 (súbor s rovnakým názvom). V okne, ktoré sa otvorí, musíte správne zadať stiahnuté súbory a nastavenia pripojenia.


Stiahnuté súbory sa nachádzajú v adresári bin archívu firmvéru. Pre každý súbor musíte zadať správnu adresu na stiahnutie. Na výber súborov a priradenie adries použite nasledujúcu tabuľku:

Nastavte nasledujúce nastavenia:

  • SPIAutoSet - nainštalovaný;
  • CrystalFreq - 26M;
  • VEĽKOSŤ FLASH - 8Mbit alebo 16Mbit v závislosti od veľkosti flash pamäte;
  • COM PORT - vyberte port, ku ktorému je pripojený ESP;
  • BAUDRATE - 115200

Ak chcete spustiť firmvér, musíte stlačiť tlačidlo "ŠTART".

Postupnosť krokov pre firmvér ESP8266

1. Pripojte modul k počítaču podľa schémy zapojenia v tomto článku.

2. Spustite monitor sériového portu. Vykonajte AT príkazy AT + RST a AT + GMR na určenie aktuálnej verzie firmvéru a veľkosti pamäte modulu. Tento krok vám tiež umožňuje skontrolovať, či je modul správne pripojený.

3. Spustite firmvér Flash Download Tools, správne nakonfigurujte stiahnuté súbory, nastavte nastavenia.

4. Vypnite modul ESP8266.

5. Pripojte kolík CPIO0 k zemi.

6. Zapnite modul ESP8266.

7. Stlačte tlačidlo ŠTART vo firmvéri

8. Počkajte na koniec firmvéru modulu. Na konci firmvéru sa nazeleno zobrazí FINISH.

9. Odpojte napájanie modulu ESP8266. Odpojte uzemnenie od CPIO0.

10. Zapnite modul, spustite monitor sériového portu. Skontrolujte, či modul funguje a či je spustená nová verzia firmvéru vykonaním AT príkazu AT + GMR.

... Vo všeobecnosti sa tento materiál neobmedzuje len na jednu tému Arduina.

Téma ESP8266 je dosť zložitá. Ak však pracujete s týmito modulmi Wi-Fi v Arduino IDE, vstupný prah klesne na prijateľnú úroveň pre bežného prehrávača arduino. A nielen hráč arduina, ale každý človek, ktorý má chuť niečo zbaliť na tému IoT (Internet of Things) a bez toho, aby trávil veľa času čítaním dokumentácie pre mikroobvod a štúdiom API pre tieto moduly.

Toto video úplne duplikuje materiál uvedený v článku nižšie.

No, už vieme, ako pripojiť ESP8266 a dať ho do programovacieho režimu, teraz prejdime k niečomu užitočnejšiemu.

Poviem hneď - keď modul naprogramujeme vo vývojovom prostredí arduino, zničíme natívny firmvér a s modulom už nebudeme môcť pracovať pomocou AT príkazov. Osobne to pre mňa nie je studené / horúce, ale ak to niekto potrebuje, na konci článku vám ukážem, ako naflashovať natívny firmvér späť do modulu, alebo nejaký loader ako NodeMcu.

Na začiatok si stiahnite najnovšiu verziu Arduino IDE na offsite, momentálne je to 1.6.7. Staršie verzie ako 1.0.5. nebude fungovať, pretože jednoducho nemajú potrebnú funkčnosť a tanec s tamburínou nás nezaujíma, však?

Spustíme vývojové prostredie a hneď prejdeme na Súbor / Nastavenia:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Potom prejdeme Nástroje / Rada: / Správca dosky ...:

Pred nami sa objaví okno správcu dosky, posuňte ho úplne dole a ak je všetko vykonané správne, uvidíme niečo také:

Klikneme kurzorom na nápis „ esp8266 podľa Komunita ESP8266"potom máme tlačidlo" Inštalovať ", vyberte požadovanú verziu, ja beriem poslednú, dnes je to 2.1.0. a nainštalujem ju. Vývojové prostredie si stiahne súbory, ktoré potrebuje (asi 150 MB) a naopak nápis" esp8266 podľa Komunita ESP8266 Zobrazí sa "" INSTALLED ", to znamená, že je nainštalovaný:

Prejdite nadol v zozname dosiek a uvidíte, že v zozname máme veľa rôznych ESP, vezmite si „generický modul ESP8266“:

Prejdite na „Nástroje“ a vyberte požadovaný COM port (mám ho COM32) Arduino alebo USB UART prevodník, potom nastavte rýchlosť nahrávania: „115200“:

Nastavíme rýchlosť na 74880 a "NL & CR" a znova vypneme a zapneme napájanie a odpovie s niektorými informáciami o ladení:

Všimnite si, že 74880 nie je hlavnou rýchlosťou ESP8266, iba na ňom odosiela informácie o ladení. Ak modul do konzoly nič neposiela, je možné, že niečo bolo nesprávne pripojené.

Štandardne by mala byť rýchlosť 115200, ale v niektorých prípadoch to môže byť 9600 a iné ... Skúste to teda zdvihnúť.

Po zvolení požadovanej rýchlosti pošleme modul „AT“ a ten by mal odpovedať, že je všetko „OK“. Príkaz AT + GMR zobrazí informácie o firmvéri.

Skôr ako začnete flashovať ESP8266 do Arduino IDE, odporúčam vám prečítať si článok až do konca.

Teraz skúsme flashovať ESP8266 cez Arduino IDE. Modul prevedieme do programovacieho režimu (ako na to som písal v predchádzajúcom článku).

Ušijeme blikač s bežnou LED:

// Od MrPodelkinC youtube.com/RazniePodelki // špeciálne pre geektimes.ru/post/271754/ #define TXD 1 // GPIO1 / TXD01 void setup () (pinMode (TXD, OUTPUT);) void loop () (digitalWrite ( TXD, HIGH); oneskorenie (1000); digitalWrite (TXD, LOW); oneskorenie (1000);)

Žmurkanie? Všetko sa teda robí správne. Kde som prišiel na to, že LED je pripojená na prvý pin? V predchádzajúcom článku je obrázok s rozmiestnením rôznych modulov a rozloženie portov pri použití zavádzača Arduino (piny sú označené ružovou farbou).

Blikanie LED je určite dobré, ale bolo by potrebné zavrieť nejaký ten web server alebo začať LED ovládať aspoň tlačidlami v prehliadači, nie? Ale o tom vám poviem inokedy.

A teraz ako obnoviť pôvodný firmvér a ako vo všeobecnosti flashovať modul s bootloadermi tretích strán. Pre ESP8266 existuje program ako NodeMCU Flasher, ktorý bol pôvodne navrhnutý na flashovanie bootloadera NodeMCU. Ale ako sa ukázalo, perfektne flashuje aj iný firmvér.

K článku pripojím archív s týmto programom a firmvérom pre pohodlie, ale vždy si môžete stiahnuť novú verziu NodeMCU Flasher.

V priečinku "nodemcu-flasher-master" sú 2 priečinky Win64 a Win32 a podľa toho, akú bitovú hĺbku má váš OS, vyberte požadovaný. Potom v priečinku Release spustite "ESP8266Flasher.exe" a pozrite si rozhranie programu:

Vyberte požadovaný port COM a prejdite na kartu „Konfigurácia“, odstráňte krížik vedľa položky „INTERNAL: // NODEMCU“ a vložte ho o jednu položku nižšie, ako na obrázku:

(Ak chcete flashovať bootloader NodeMCU, odstráňte krížik tam, kde nebol, a vložte ho tam, kde bol, teda blízko „INTERNAL: // NODEMCU“).

Potom klikneme na ozubené koliesko a vyberieme, kde sa nachádza náš firmvér, firmvér je zvyčajne vo formáte * .bin (v priloženom archíve je to „v0.9.5.2 AT Firmware.bin“, ktorý je v hlavnom priečinku) a tiež vyberte "0x00000" ako a vyššie.

Opäť sa vrátime na záložku „Prevádzka“, prepneme modul do programovacieho režimu a stlačíme „Flash“:

To je všetko, modul začal blikať, po zablikaní nezabudnite reštartovať modul a voila, bliká s firmvérom, ktorý potrebujeme.

Skontrolujeme pomocou AT príkazu "AT + GMR", či sme urobili všetko správne:

Ako vidíte, všetko bolo dobre ušité.

V procese štúdia a navrhovania čoraz zložitejších projektov prichádza čas, kedy je potreba a túžba naučiť sa pracovať s tak rozšíreným typom komunikácie, akým je WiFi. Keďže práve tento typ komunikácie vám umožní pohodlne vytvoriť jedinú sieť pre vaše zariadenia inteligentnej domácnosti a ovládať ich napríklad z mobilného telefónu, tabletu alebo počítača, teda inými slovami vytvoriť skutočnú inteligentnú domácnosť. to vás bude stáť desaťkrát lacnejšie ako kupovať hotové riešenia v obchode. Využitie WiFi sa samozrejme neobmedzuje len na toto a príkladov využitia tohto typu komunikácie je toľko, že nemá zmysel ich uvádzať a ak ste sa dostali na túto stránku, tak ste už WiFi potrebovali na nejaké dôvod, len musíte prísť na to, ako s tým správne pracovať ...

Vyriešime to podľa najlacnejšieho a najobľúbenejšieho WiFi modulu. ESP8266-01... WiFi modul ESP8266-01 si môžete zakúpiť na našej stránke.

Jednou z hlavných výhod takéhoto modulu je prítomnosť pamäte a vlastného mikrokontroléra na doske, čo mu umožňuje pracovať samostatne načítaním náčrtu priamo do samotného modulu.

V skutočnosti existuje veľa úprav modulu WiFi ESP8266 a nebudeme ich tu uvádzať, keď sa naučíte pracovať s jedným, môžete ľahko začať pracovať s ostatnými. Hneď by som rád poznamenal, že práca s WiFi sa môže zdať ako dosť náročná úloha, a ak máte v batožine málo dokončených projektov, je lepšie nateraz opustiť WiFi komunikáciu a použiť vo svojich projektoch rádiovú komunikáciu, s ktorou je oveľa jednoduchšie pochopiť. Na prácu s WiFi modulmi sú vytvorené celé komunity a tematické fóra, čo opäť dokazuje, aké ťažké je pre väčšinu ľudí okamžite pochopiť tento typ komunikácie a pri opätovnom prečítaní všetkých informácií väčšina ľudí jednoducho stratí odvahu. S najväčšou pravdepodobnosťou sa mi do tohto článku nepodarí zmestiť všetky dôležité informácie a nemá to zmysel, inak dôjde k ďalšiemu zmätku. Pokúsim sa ísť cestou striktného sledu najdôležitejších bodov, aby ste začali chápať princíp tohto typu komunikácie a potom už len svoje schopnosti v tomto smere rozvíjali sami.

A tak začnime a najprv rozoberme závery WiFi modulu ESP8266-01.

VCC- napájanie modulu od 3V do 3,6V

GND- Zem.

RST- Resetovací kolík je zodpovedný za reštart modulu.

CH_PD- "vypnutie čipu", keď je naň privedené napájanie, je aktivovaná prevádzka modulu.

TX- prenos dát (rozhranie UART)

RX- príjem dát (rozhranie UART)

GPIO0

GPIO2- všeobecný I/O port

Piny GPIO0 a GPIO2 sú presne tie isté digitálne piny, s ktorými pracujeme na doskách Arduino pre prepojenie s rôznymi senzormi a používajú sa v prípade samostatnej práce na internom WiFi mikrokontroléri modulu ESP8266-01.

Pre spoľahlivé napájanie modulu ESP8266-01 použite externý stabilizovaný 3,3V napájací zdroj a radšej sa nepokúšajte čerpať energiu z vašej dosky Arduino, pretože modul odoberá prúd až 215 mA a to môže skončiť zle pre vašu ladiacu dosku. Kde zohnať stabilizovaný 3,3V zdroj, dúfam, že to pre vás nie je problém, inak je zjavne príliš skoro na to, aby ste sa týmto modulom zaoberali. Napríklad rád používam tento 3,3 V a 5,0 V napájací modul YWRobot na rýchle zhromažďovanie obvodov na doštičkách, čo vám umožňuje rýchlo získať stabilizované napätie 3,3 V alebo 5 V na zodpovedajúcich napájacích koľajniciach.

Pripojíme plus (+) z nášho 3,3V napájacieho zdroja na pin VCC Modul ESP8266-01 a mínus (-) na výstup je pripojený napájací zdroj GND... V tomto stave sa na module rozsvieti červená LED dióda, ktorá nám signalizuje, že napájanie je správne pripojené. Aby sa modul aktivoval, je potrebné pripojiť aj plus (+) napájací zdroj s výstupom CH_PD Modul ESP8266-01 a je vhodné to urobiť okamžite cez 10kOhm odpor. Teraz, keď zapneme napájanie, červená LED na module by sa mala rozsvietiť a modrá LED by mala niekoľkokrát rýchlo zablikať. Ak je to aj váš prípad, potom je všetko v poriadku, všetko ste pripojili správne a váš modul funguje. V opačnom prípade znova skontrolujte pripojenie alebo vymeňte modul, pretože s najväčšou pravdepodobnosťou nefunguje.

Pohni sa. Na prácu s WiFi modulom ESP8266 potrebujeme USB-UART adaptér. Existujú rôzne adaptéry, napríklad: FT232RL, CP2102, PL2303. Budeme však predpokladať, že takéto adaptéry nemáte a dosku Arduino použijeme ako adaptér USB-UART. Ja na to použijem dosku Arduino NANO a vy môžete použiť akúkoľvek inú dosku, ktorú máte k dispozícii. Jednotné pripojenie na akejkoľvek doske je rovnaké. Zapojenie robíme podľa nasledujúcej schémy.

Poďme sa pozrieť na to, čo sme tu urobili. Okamžite venujte pozornosť tomu, že sme skratovali kolíky na doske Arduino. RST a GND... Takáto manipulácia vypne mikrokontrolér a umožní nám vyrobiť skutočný adaptér USB-UART z našej dosky Arduino.

Keďže WiFi modul ESP8266-01 napájame zo samostatného externého zdroja, je nezabudnuteľné, že pri našich projektoch musíme vždy navzájom prepojiť uzemnenie všetkých napájacích zdrojov. Preto pripájame výstup GND Arduino dosky so zemou (-) náš externý 3,3V napájací zdroj určený na napájanie modulu ESP8266-01.

Výkon TX pripojte dosku Arduino ku kolíku TX Modul ESP8266-01. Táto linka bude prenášať dáta z WiFi modulu na Arduino dosku. Každý, kto pozná rozhranie UART, si môže myslieť: "Ale ako je to možné? Všade sa učí, že TX by sa malo spájať s RX. TX vysiela informácie a RX prijíma." A budete mať pravdu. Všetko je správne, TX sa vždy pripája k RX, ale práve v prípade, keď vyrábame UART adaptér z Arduina, potrebujeme zariadenia pripojiť priamo. Považujte to za výnimku z pravidla.

Linka RX vaša doska Arduino je tiež pripojená priamo k linke RX Modul ESP8266-01. Táto linka bude prenášať informácie z dosky Arduino na dosku modulu WiFi. Toto spojenie však robíme cez takzvaný delič napätia, ktorý pozostáva z dvoch rezistorov s menovitou hodnotou 1 kOhm a 2 kOhm. Napätie na tejto linke musíme znížiť pomocou dvoch rezistorov (delič napätia), keďže doska Arduino prenáša logický signál s napätím 5V a WiFi modul pracuje s napätím 3,3V. Na prevod logického signálu by sme mohli použiť špeciálnu dosku prevodníka logickej úrovne, čo by bolo samozrejme správne, ale opäť predpokladajme, že ho nemáte a museli sme ísť jednoduchším spôsobom a urobiť to pomocou deliča napätia. .

Zatiaľ sme pripojili všetko potrebné pre ďalšiu prácu, no stále máme ešte 3 nevyužité výstupy ( GPIO0, GPIO2 a RST) zapnuté WiFi modul ESP8266-01... Pre stabilnú prevádzku WiFi modulu musíme tieto zostávajúce nevyužité kolíky vytiahnuť do kladného pólu (+) napájacie vedenia modulu cez 10kOhm odpory.

To nás ušetrí od rôznych interferencií (snímačov) a modul bude fungovať stabilne. Je lepšie to urobiť hneď. V opačnom prípade sa nečudujte, že váš modul je neustále preťažený, vydáva nezrozumiteľné informácie alebo nechce vôbec fungovať. Ak chcete stabilnú prevádzku vo svojich projektoch, spravidla by sa mali použiť pull-up odpory na nepoužitých kolíkoch mikrokontroléra.

A opäť skontrolujeme účinnosť modulu WiFi ESP8266-01. Zapneme napájanie a vidíme, že červená LED sa rozsvieti a modrá niekoľkokrát zabliká. Ak sa všetko stane takto, tak super, ideme ďalej. V opačnom prípade skontrolujeme správnosť spojení, ako aj kvalitu všetkých kontaktov. Môže to byť len triviálna situácia, keď všetko desaťkrát skontrolovali a ubezpečili sa, že je všetko správne pripojené, ale vrátane modulu vidíte, že modrá LED sa nespráva adekvátne, neustále svieti, neustále bliká alebo nesvieti vôbec reagovať. Môže to byť spôsobené slabým kontaktom na niektorej linke. Napríklad pri zostavovaní obvodu na doštičku sú niektoré rezistory uvoľnené na mieste, čo spôsobuje rušenie. Skontrolujte kvalitu pripojení. Modul je veľmi citlivý. Nezanedbávajte to. Toto je bežný dôvod nestabilného výkonu.

Vo všeobecnosti sme s pripojením skončili. Teraz musíme pripraviť program Arduino IDE na prácu s modulom WiFi ESP8266-01. K tomu si musíme stiahnuť a nainštalovať do Arduino IDE potrebný archív s knižnicami, príkladmi a ESP doskami, ktoré nám následne umožnia nahrať skice priamo do mikrokontroléra modulu ESP8266-01, zmeniť firmvér atď. V rámci tohto článku tieto nastavenia s najväčšou pravdepodobnosťou nebudeme potrebovať, no zdá sa mi, že po tom, ako sme prišli na to, ako modul pripojiť, bude postup správny, ak si ihneď stiahneme všetko, čo potrebujeme na prácu s Arduino IDE. Všetko je v princípe jednoduché.

Spustenie programu Arduino IDE a prejdite do menu "Súbor" - "Nastavenia"

V zobrazenom okne napíšte do horného poľa „esp8266“. V dôsledku toho budeme mať v okne iba požadovaný firmvér. Po kliknutí na firmvér sa zobrazí tlačidlo "inštalácia"... Kliknite na tlačidlo "inštalácia" a počkajte, kým sa všetko ustáli. Archív je dostatočne veľký, okolo 150 megabajtov, takže si musíte počkať.

Po dokončení inštalácie. Reštartujte Arduino IDE a pozrite sa, ako sa nové dosky ESP objavili v ponuke „Nástroje“ – „Dosky“. To je všetko. Dokončili sme nastavenie Arduino IDE. Zatiaľ tieto nastavenia nepotrebujeme, no v ďalšej práci sa bez nich nezaobídeme.

Všetko sme prepojili a pripravili, teraz môžeme začať riešiť ovládanie. V skutočnosti teraz bude pokračovať kontrola a konfigurácia modulu pomocou AT príkazov a bez toho sa nezaobídete. WiFi moduly sú implementované tak, že všetka komunikácia s nimi prebieha pomocou takzvaných AT príkazov, ktoré sú napevno zapojené do firmvéru modulu. Nebudeme tu vypisovať všetky AT príkazy, je ich pomerne dosť a ak si chcete všetko poriadne naštudovať, ľahko si ich nájdete na internete. A teraz použijeme len to najnutnejšie, aby sme mohli začať.

A tak pripojíme našu dosku Arduino cez USB kábel k počítaču. Externý napájací zdroj, ktorý napája WiFi modul ESP8266-01 ešte nie je potrebné zapínať. Spustíme program Arduino IDE, z ponuky „Nástroje“ vyberieme našu dosku Arduino, v mojom prípade je to Arduino NANO a vy si vyberiete tú svoju. Taktiež si nezabudnite vybrať port, ku ktorému je naša Arduinka pripojená. Dúfam, že tomu všetkému rozumiete a viete, ako na to.

Monitorovanie otvoreného portu "Nástroje" - "Monitor portov"... Výber rýchlosti portu 74880 (pri tejto rýchlosti sa modul spustí) a vľavo v zozname vyberte "NL & CR"

Teraz pripojíme externý zdroj energie, ktorý napája náš WiFi modul. Potom by ste v monitore portov mali vidieť nasledujúce informácie.

Tu vidíme niektoré informácie o našom WiFi module (rýchlosť, množstvo pamäte na palube atď.). Prijaté informácie sa môžu líšiť v závislosti od verzie firmvéru modulu WiFi. Na toto sa nesústreďme. Dôležitá je iná vec. Nižšie vidíme množinu nezmyselných symbolov, čo znamená, že rýchlosť portu (74880 baudov), ktorú sme nastavili, je vhodná len pre počiatočné načítanie modulu, aby sa tieto informácie zobrazovali normálne, ale táto rýchlosť nie je vhodná pre normálne komunikácia s WiFi modulom.

Aby sme našli správnu rýchlosť portu, jednoducho zmeníme rýchlosť portu a odošleme znaky do portu (pole vyššie a tlačidlo odoslať) AT kým nedostaneme odpoveď OK... Ak sa pokúsite odoslať symboly práve teraz AT do portu rýchlosťou 74880, dostanete ako odpoveď ďalší jeden alebo dva nezmyselné znaky.

Skúste ihneď nastaviť prenosovú rýchlosť na 115200 a odošlite príkaz AT. Najčastejšie sú moduly flashované touto rýchlosťou.

Toto je obrázok, ktorý by ste mali vidieť na monitore vášho portu. Ak v odpovedi stále dostávate nezrozumiteľnú sadu znakov, spomaľte a zopakujte odosielanie AT príkazy, kým sa nevráti ako odpoveď OK... Ak ste vyskúšali všetky rýchlosti a nedostali ste správnu odpoveď, tak máte smolu a modul je flashovaný firmvérom neštandardnou rýchlosťou. Potom zostáva len preflashovať modul normálnym firmvérom, ale toto je téma na samostatný článok.

Dúfam, že je všetko v poriadku a rýchlosť je správna. Mimochodom, ak sa pokúsite vypnúť a zapnúť WiFi modul po tom, čo ste zvolili správnu rýchlosť, potom namiesto rovnakých počiatočných informácií, ktoré sa správne zobrazovali pri rýchlosti 74 880 baudov, naopak, uvidíte náhodnú sadu znaky, ale na konci uvidíte slovo "pripravený". Máme však možnosť zobraziť tieto počiatočné informácie v ich normálnej forme správnou rýchlosťou, preto je potrebné programovo reštartovať modul pomocou príkazu AT AT + RST.

Ak chcete zistiť verziu firmvéru vášho WiFi modulu ESP8266-01, musíte odoslať príkaz do monitora portov AT + GMR a ako odpoveď dostanete približne nasledujúce informácie:

WiFi modul ESP8266-01 môže pracovať v režime prístupového bodu aj v režime klienta. Ak chcete, aby modul fungoval vo všetkých režimoch naraz, odošlite príkaz na monitor portu AT + CWMODE = 3 a na oplátku by ste mali dostať OK.

Príkaz AT + CWLAP vám umožní vidieť všetky prístupové body WiFi, ktoré váš modul momentálne vidí. Môj modul napríklad v súčasnosti vidí v oblasti pokrytia iba tri prístupové body WiFi. Odpoveď by mala byť asi takáto:

Napríklad poznáme heslo pre tretí prístupový bod a na pripojenie k nemu vykonáme príkaz AT + CWJAP = "meno", "heslo", v mojom prípade tento príkaz vyzerá takto AT + CWJAP = "dsl_unlim_512_home", "11111111", na ktorý dostaneme úspešnú odpoveď:

Parametre príkazov sa zapisujú do WiFi flash pamäte modulu ESP8266-01 a ak modul vypneme a znova zapneme, automaticky sa pripojí k tomuto prístupovému bodu. Náhodne sa pozrite do príkazu, nedovoľte medzeru, inak dostanete odpoveď CHYBA... Treba poznamenať, že v najnovších verziách firmvéru sa odporúča použiť príkaz AT + CWJAP_CUR, to znamená, že príkaz bude vyzerať takto AT + CWJAP_CUR = "meno", "heslo". Ak sme zrazu zabudli, ku ktorému prístupovému bodu je pripojený náš modul, musíme odoslať príkaz AT + CWJAP? alebo AT + CWJAP_CUR? a ako odpoveď dostaneme prístupový bod, ku ktorému je WiFi modul momentálne pripojený.

S pripojením a úvodným nastavením WiFi modul ESP8266-01 prišli sme na to. Modul je funkčný a pripravený na realizáciu vašich ďalších projektov. Rozoberať všetky možné príklady práce s týmto modulom v rámci jedného článku jednoducho nie je možné a budeme sa tomu venovať v nasledujúcich článkoch. A pre tých, ktorí sa s programovaním príliš nekamarátia, no chcú naozaj rýchlo začať spravovať svoje projekty pomocou WiFi, odporúčam predstaviť projektanta projektu RemoteXY WiFi. Táto stránka vám pomôže jednoducho vytvoriť ovládacie rozhranie pre váš mobilný telefón alebo tablet a pomocou neho ovládať vaše zariadenie, ku ktorému pripojíte WiFi modul.

Ako využiť modul ESP-01 na ovládanie LED cez internet, modul, ktorý umožňuje ovládať akékoľvek elektrické zariadenie.

V tomto návode ESP8266 používame modul ESP-01 na ovládanie LED cez internet. ESP8266 je lacná, ale efektívna platforma na komunikáciu cez internet.

Je tiež jednoduché používať s Arduino. Po absolvovaní tejto lekcie získate základné vedomosti o tom, ako ovládať akékoľvek elektrické zariadenie cez internet odkiaľkoľvek na svete!

Tu použijeme prevodník USB-to-TTL na programovanie ESP8266 ESP-01. A použijeme na vývoj webového servera na diaľkové ovládanie LED.

Ako to funguje

ESP8266 je možné ovládať z lokálnej wifi siete alebo z internetu (po presmerovaní portov). Modul ESP-01 má GPIO piny, ktoré je možné naprogramovať na zapnutie alebo vypnutie LED alebo relé cez internet. Modul je možné naprogramovať pomocou Arduino USB-to-TTL prevodníka cez sériové piny (RX, TX).

Pripojenie hardvéru k vášmu ESP8266

Na programovanie ESP8266 môžeme použiť prevodník USB-to-TTL alebo použiť Arduino. Tu sú tri spôsoby, ako môžete nahrať kód do ESP8266 – vyberte si ten, ktorý vám najlepšie vyhovuje. Pozrite si diagramy pre každú možnosť a podľa toho upravte svoj hardvér.

1. Prevodník USB-to-TTL pomocou DTR konektora

Ak používate prevodník USB-to-TTL s výstupom DTR, sťahovanie prebehne hladko. Upozorňujeme, že sériový monitor s tým nebude fungovať.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. USB na TTL prevodník bez DTR výstupu

Pre pripojenie USB to TTL prevodníka bez DTR pinu musíme použiť manuálny prenos. Na to používame dve tlačidlá - pozri nasledujúci diagram:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Tlačidlo Reset → RST
Tlačidlo blesku → GPIO0

Pri sťahovaní kódu kliknite na tlačidlo Stiahnuť (Flash). Držte tlačidlo stlačené, kým raz stlačíte tlačidlo "Reset / Reset". Teraz môžete uvoľniť tlačidlo Flash. ESP8266 je teraz v režime, v ktorom môžete nahrať skicu.

3. Pomocou Arduino Uno nahrajte kód do ESP8266

Na spustenie kódu môžete použiť ESP8266 ESP-01. Pri sťahovaní kódu postupujte rovnako ako v druhom odseku – pri jednom stlačení tlačidla reset držte stlačené tlačidlo „Stiahnuť“ a potom tlačidlo Flash uvoľnite.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Tlačidlo Reset → RST
Flash → Tlačidlo GPIO0

Stiahnite si kód ESP8266

Použite ktorúkoľvek z vyššie uvedených metód a otvorte a potom vyberte dosku ESP8266 z ponuky:

Nástroje → Doska → Všeobecný modul ESP8266
(Nástroje -> Doska -> Modul ESP8266)

Poznámka. Ak ste nenainštalovali a nenakonfigurovali dosku ESP8266 pre Arduino, urobte tak podľa krokov uvedených vyššie v tomto návode. Potom môžete ísť ďalej.

Teraz skopírujte nižšie uvedený kód do Arduino IDE a stlačte tlačidlo sťahovania. Zmeňte SSID na wifi hotspot a zmeňte heslo na svoje heslo wifi a skompilujte.

#include const char * ssid = "VAŠE_SSID"; // zadajte svoje ssid const char * heslo = "VAŠE_HESLO"; // zadajte svoje heslo int ledPin = 2; // GPIO2 servera WiFiServer ESP8266 (80); // nastavenie neplatnosti servisného portu () (Serial.begin (115200); oneskorenie (10); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, LOW); // Pripojiť k WiFi sieť Serial.println (); Serial.println (); Serial.print ("Pripája sa k"); Serial.println (ssid); WiFi.begin (ssid, heslo); zatiaľ čo (WiFi.status ()! = WL_CONNECTED ) (oneskorenie (500); Serial.print (".");) Serial.println (""); Serial.println ("WiFi pripojené"); // Spustenie servera server.begin (); Serial.println ( "Server spustený"); // Vytlačte IP adresu Serial.print ("Na pripojenie použite túto adresu URL:"); Serial.print ("http: //"); Serial.print (WiFi.localIP ()); Serial .println ("/");) void loop () (// Skontrolujte, či sa klient pripojil WiFiClient client = server.available (); if (! client) (return;) // Počkajte, kým klient nepošle nejaké dáta Serial .println ("nový klient"); while (! client.available ()) (oneskorenie (1);) // Prečítajte si prvý riadok požiadavky String request = client.readStringUntil ("\ r"); Serial.println (žiadosť); client.flush (); // Ma tch int hodnota požiadavky = NÍZKA; if (request.indexOf ("/ LED = ON")! = -1) (digitalWrite (ledPin, HIGH); hodnota = HIGH;) if (request.indexOf ("/ LED = OFF")! = -1) ( digitalWrite (ledPin, LOW); value = LOW;) // Nastavte ledPin podľa požiadavky // digitalWrite (ledPin, hodnota); // Vráti odpoveď client.println ("HTTP / 1.1 200 OK"); client.println ("Typ obsahu: text / html"); client.println (""); // nezabudnite na tento jeden client.println (""); client.println (" "); client.print (" Pin LED je teraz: "); if (hodnota == VYSOKÁ) (client.print (" Zapnuté ");) else (client.print (" Vypnuté ");) client.println ( "

"); client.println (" Kliknite tu zapnite LED na kolíku 2
"); client.println (" Kliknite tu vypnite LED na kolíku 2
"); client.println (""); oneskorenie (1); Serial.println (" Klient odpojený "); Serial.println (" ");)

Otvorte sériový monitor a cez webový prehliadač otvorte URL zobrazenú na vašom sériovom monitore. Pripojte GPIO 2 z ESP8266 k dlhšiemu kolíku LED. Teraz môžete svoju LED ovládať na diaľku cez internet!

Odstráňte všetky káble, ktoré boli potrebné na stiahnutie kódu. Modul LM1117 sa používa na zabezpečenie regulovaného výstupu 3,3 V. To vám umožní postaviť ESP8266 alebo ESP-01 samostatne.

Internetové pripojenie ESP8266

Momentálne je modul ESP8266 dostupný len cez lokálnu wifi sieť. Ak chcete ovládať zariadenia z internetu, musíte na smerovači vykonať presmerovanie portov.

Ak to chcete urobiť, nájdite IP adresu svojho systému buď pomocou príkazu „ifconfig“ vo vašom termináli, alebo prejdite na stránku whatsmyip.org. Skopírujte svoju IP adresu. Teraz otvorte nastavenia smerovača a prejdite na nastavenia „Posielanie ďalej“. Zadajte podrobnosti pre "Service Port" a "IP Address". Servisný port je číslo portu z vášho Arduino kódu (servisný port: 80):

Server WiFiServer (80); // Port služby

IP adresa je tá, ktorú ste zadali skôr. Ostatné nastavenia ponechajte ako predvolené. Teraz prejdite do prehliadača a zadajte adresu: xxx.xxx.xx.xx: 80. Mala by sa otvoriť stránka na ovládanie LED.