- Ce este ESP8266?
- Bazele teoriei WiFi:
- Tipuri de programare cu ESP8266:
- Hardware pentru programarea modulului ESP8266:
- Materiale necesare:
- Explicația circuitului:
- Consiliul de construcție pentru programul ESP8266:
Internetul obiectelor și automatizarea caselor a fost într-adevăr un subiect hyped în ultimele zile. Construind ceva pe cont propriu care să poată comunica pe World Wide Web și să poată fi accesat de oriunde din lume, sună foarte bine, nu-i așa?
Dar asteapta!!! De asemenea, sună complicat ???….
Așa a făcut-o și pentru mine, am crezut că va fi nevoie de timp și abilități imense pentru a construi lucruri care pot interacționa cu internetul. NU, m-am înșelat complet, datorită acestui modul fantastic numit ESP8266 de la Espressif Systems. Acum, vă puteți deschide ușor ușile pentru proiecte IoT cu ajutorul acestui modul. Acest modul de dimensiuni reduse și cu cost redus ar putea face minuni și este foarte simplu și ușor de utilizat, cu condiția să urmăm pașii corecți.
Acest tutorial își propune să vă prezinte acest modul ESP8266-01 și să vă ajute să începeți cu acesta. Poate că v-ați adus deja modulul și v-ați blocat în timp ce încercați să îl utilizați. Apoi, nu sunteți singuri, nu vă faceți griji, multor oameni le este foarte greu să înceapă cu modulul, deoarece nu există nicio îndrumare sau documentație adecvată pentru acest modul. Acesta este motivul pentru realizarea acestui tutorial. Urmați instrucțiunile de aici și ar trebui să puteți activa modulul dvs. ESP8266-01 în scurt timp, aici vom folosi modulul adaptor serial FTDI USB to TTL pentru a programa ESP8266. Verificați videoclipul detaliat la sfârșitul tutorialului.
Înainte de a intra în subiect, acoperiți câteva elemente de bază despre modulul ESP8266-01.
Ce este ESP8266?
Majoritatea oamenilor apelează ESP8266 ca modul WIFI, dar este de fapt un microcontroler. ESP8266 este numele microcontrolerului dezvoltat de Espressif Systems, care este o companie din Shanghai. Acest microcontroler are capacitatea de a efectua activități legate de WIFI, prin urmare este utilizat pe scară largă ca modul WIFI.
Există multe tipuri de module ESP8266 disponibile, de la ESP8266-01 la ESP8266-12. Cel pe care îl folosim în tutorial este ESP8266-01, deoarece este cel mai ieftin și ușor disponibil. Cu toate acestea, toate modulele ESP au un singur tip de procesor ESP, ceea ce diferă este doar tipul de bard de breakout utilizat. Placa ESP8266-01 va avea doar 2 pini GPIO, în timp ce în alte plăci va fi mai mare.
Specificația completă a modulului este dată în tabelul de mai jos
Voltaj |
3,3V |
Consum curent |
10uA-170mA |
Consumul maxim de curent în timpul intermitentului |
800mA |
Memorie flash |
16 MB (512K normal) |
Procesor |
Tensilica L106 pe 32 de biți |
Viteza procesorului |
80-160MHz |
Berbec |
32K + 80K |
GPIO |
17 (dar majoritatea sunt multiplexate) |
Convertor analogic digital |
1 (10 biți) |
Conexiuni TCP maxime |
5 |
Bine, câteva lucruri care v-ar fi putut surprinde în legătură cu specificațiile sunt că, DA, modulul ESP8266 vine cu un convertor ADC și consumă un curent foarte mare de 0,8A în timpul intermitentului dispozitivului.
Verificați și diversele noastre proiecte IoT interesante bazate pe ESP8266.
Bazele teoriei 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…..
Toți termenii de mai sus au sens pentru tine?
Daca da. Apoi, BINGO poți sări această parte și să treci la secțiunea următoare.
Daca nu. Atunci trebuie să fii unul dintre mulți studenți la electricitate care tocmai au clipit prin majoritatea acestor termeni la fel cum am făcut când am fost prezentat pentru prima dată la toate aceste lucruri. Deci, haideți să parcurgem rapid toți acești termeni, deoarece numai atunci ne-am putea face intrarea în lumea IOT.
Protocol de control al transferului (TCP):
Majoritatea dintre noi ar ști ce înseamnă asta. Da, acestea sunt setul de reguli pe baza cărora funcționează internetul. Deoarece ESP8266 are capacitatea de a configura conexiuni WIFI. La un nivel înalt, Wi-Fi este posibilitatea de a participa la conexiunile TCP / IP printr-o legătură wireless. Puteți face ca ESP-ul dvs. să funcționeze pe protocolul TCP / IP sau protocolul UDP.
User Datagram Protocol (UDP):
UDP este, de asemenea, un alt tip de protocol de internet. Acest tip de comunicare este mai rapid decât TCP, dar este mai puțin precisă. Motivul este că TCP folosește o confirmare în timpul comunicării sale, dar UDP nu. TCP este utilizat mai ales în rețelele în care există o cerință de fiabilitate ridicată. UDP este utilizat în locuri în care viteza are o prioritate ridicată decât fiabilitatea. De exemplu, UDP este utilizat în videoconferințe, deoarece acolo, chiar dacă nu se transmit câțiva pixeli, nu va afecta calitatea video atât de mult, dar viteza este foarte importantă.
Majoritatea proiectelor și codurilor ESP8266 funcționează în jurul TCP / IP, UDP va fi cel mai puțin deranjat.
Punct de acces (AP) și stație (STA):
Odată ce începeți să lucrați cu modulul ESP, veți întâlni frecvent acești doi termeni. Permiteți-ne să spunem că dvs. și prietenul dvs. ați dori să navigați pe internet pe telefoanele dvs. inteligente, dar din moment ce nu are o conexiune activă la internet, decideți să vă activați hotspot-ul și prietenul dvs. se conectează la acesta. Aici telefonul dvs. care furnizează conexiunea la internet este punctul de acces (AP), iar telefonul prietenului dvs. care utilizează internetul se numește stație (STA).
Modulul ESP8266 poate fi utilizat în trei moduri, modul AP, modul STA sau atât în modul STA, cât și în modul AP (combinat).
Identificator set de servicii (SSID):
Acesta este un termen destul de simplu. Aproape toți am folosit WIFI. Numele rețelei Wi-Fi se numește SSID. Când avem mai multe puncte de acces pentru care o stație să se conecteze, stația ar trebui să știe la ce punct de acces ar trebui să se conecteze, de aceea fiecare punct de acces (AP) primește o identitate numită SSID.
Interfața de programare a aplicațiilor (API):
Mai simplu, un API este un mesager care acceptă solicitările dvs., îl procesează și returnează sistemului rezultatul dorit. Majoritatea activităților pe care le desfășurăm pe internet utilizează API-uri, cum ar fi atunci când rezervați un zbor, efectuați o achiziție online etc. Fiecare site web vă conectează la un API în care se face o parte a activității, cum ar fi înscrierea, efectuarea plăților etc. Acolo.
ESP8266 folosește API pentru a vorbi cu lumea Internetului. De exemplu, dacă dorește să știe ora, clima sau orice altceva ar trebui să solicite sub formă de API către site-ul web corespunzător. Acest site web va primi solicitarea și va da rezultatul dorit înapoi la modulul nostru ESP.
Server Web:
Un server web este ceva responsabil pentru afișarea conținutului unui site web. Tot conținutul acelui site web particular va fi încărcat pe serverul său web. Există computere dedicate a căror sarcină este de a acționa doar ca un server web. De asemenea, putem programa ESP8266 pentru a funcționa ca un server web și pentru a ne conecta la acesta de oriunde din lume.
Bine, acest lucru este suficient pentru ca noi să începem. Acum, hai să punem mâna pe hardware.
Tipuri de programare cu ESP8266:
Există două moduri de a lucra cu modulul dvs. ESP8266. Acest tutorial vă va ajuta să începeți cu ambele. O modalitate este folosirea comenzilor AT. Cealaltă modalitate este prin utilizarea Arduino IDE. Să înțelegem ce înseamnă.
Toate modulele ESP8266 livrate din fabrică vor avea încărcat un firmware implicit (SDK + API). Acest firmware vă va ajuta să programați modulul ESP8266 prin comenzi AT.
Cealaltă modalitate este prin programarea directă a modulului ESP8266 folosind Arduino IDE (placa nu este necesară) și bibliotecile sale. Toate proiectele pot fi realizate în ambele metode. Dar, dacă începeți să utilizați Arduino IDE pentru programarea ESP8266, este posibil să nu puteți utiliza comenzile AT, deoarece SDK-ul implicit ar fi putut fi corupt. În acest caz, trebuie să vă blocați ESP-ul cu setările implicite. Vom acoperi acest lucru într-un alt tutorial.
Hardware pentru programarea modulului ESP8266:
ESP8266 este un modul cu 8 terminale. Știftul din acesta este prezentat mai jos.
Din păcate, acest modul nu este compatibil cu panourile și, prin urmare, nu îl putem monta direct pe panoul nostru. De asemenea, spre deosebire de Arduino, nu are un driver USB-Serial încorporat; prin urmare, trebuie să utilizăm „FTDI USB to TTL Serial Adapter Module” pentru a comunica cu acesta. Asigurați-vă că placa FTDI poate funcționa și pe 3.3V; cel pe care îl folosim în acest tutorial este prezentat mai jos.
Acum, după cum știm, ar trebui să pornim ESP8266 cu 3.3V. Dar consumul curent este de 0,8 A, deci s-ar putea să nu funcționeze așa cum era de așteptat dacă este alimentat de pe placa noastră de defecțiune FTDI. Prin urmare, trebuie să construim propriul nostru circuit de alimentare. Aici am folosit LM317 în scopul alimentării; detaliile pentru realizarea hardware-ului complet sunt date în secțiunile ulterioare.
Materiale necesare:
- Perf Board
- ESP8266-01
- FTDI Breakout Board
- LM317
- Condensator 0.1uf
- 10uf condensator
- Barrel Jack
- Bergstik masculin și feminin
- Apasa butonul
- Conectarea firelor
- Adaptor de 12V pentru alimentarea plăcii.
Explicația circuitului:
Schema tabloului este prezentată mai jos
Unii ar fi putut încerca să alimenteze ESP-ul dvs. direct din FTDI și să-l funcționeze, dar următoarele sunt motivele pentru a vă construi propria placă cu câteva componente suplimentare:
- Doar câteva plăci FTDI pot furniza suficient curent pentru modulul ESP. Puține module ESP ar putea consuma curent mare decât celălalt în timpul intermitentului. Prin urmare, este întotdeauna sigur să aveți propria sursă de alimentare și va fi mai ușor să integrați circuitul de alimentare pe Dot Board în loc de breadboard.
- Ar trebui să resetăm întotdeauna modulul ESP înainte de a încărca codul, construirea propriei noastre plăci ne va ajuta să resetăm modulul cu ușurință. Am folosit butonul Push pentru a reseta ESP8266.
- PIN-ul GPIO0 trebuie să fie legat la pământ atunci când se programează folosind Arduino și trebuie lăsat liber atunci când se utilizează comenzi AT, acest lucru poate fi ușor comutat dacă ne construim propria placă. Am folosit un Jumper pentru a comuta între modul de comandă AT și modul de programare Arduino IDE.
- Toată programarea se face folosind comunicarea Serial , dacă utilizați o placă de testare, unele terminale libere ar putea provoca o eroare la jumătatea drumului și ne vor obliga să intermitem modulul pentru a lucra din nou.
Acestea fiind spuse, puteți alege între utilizarea unei plăci de calcul și crearea propriei plăci pentru programarea modulului. Dacă totuși doriți să utilizați panoul de testare, același circuit prezentat mai sus poate fi construit folosind panoul de testare. Numai aspectul va fi diferit, toate celelalte instrucțiuni din acest tutorial se vor aplica la fel.
Consiliul de construcție pentru programul ESP8266:
Deci, aici construim placa pentru a programa modulul ESP8266 care are propriul său circuit de alimentare pentru a porni ESP8266.
După cum sa spus, modulul nostru va necesita aproximativ 800mA în timp ce îl programăm. Prin urmare, am construit propriul nostru modul de alimentare utilizând un regulator de tensiune variabilă LM317, deoarece curentul sursă al LM317 este de aproape 1,2A. Tensiunea de intrare a LM317 va fi de 12V, care va fi dată folosind un adaptor de montare pe perete de 12V 2A. Ieșirea LM317 va fi reglată constant la 3,3V folosind rezistențele de 220ohm și 360ohm. De asemenea, verificați circuitul încărcătorului nostru de baterii folosind LM317 pentru a afla mai multe despre LM317.
Formulele pentru calcularea tensiunii de ieșire ale LM317 sunt date mai jos:
Vout = 1,25 * (1+ (R2 / R1))
Unde, R1 este 220ohm și R2 este 360ohm.
Modulul ESP8266 este conectat conform pinilor arătați în tabelul de mai jos.
Pin nr. |
Nume PIN ESP |
Conectat la |
1 |
Sol |
Pământul modulului FTDI |
2 |
GPIO2 |
Lăsat liber sau conectat la berg stick pentru utilizare ulterioară |
3 |
GPIO0 |
Comutați la comutare între modurile de programare |
4 |
Rx |
Tx al modulului FTDI |
5 |
Tx |
Rx al modulului FTDI |
6 |
CH_PH |
3,3V de la LM317 |
7 |
Resetați |
Apăsați butonul pentru a reseta modulul |
8 |
Vcc |
3,3V de la LM317 |
Pentru a comuta cu ușurință între modul de comandă AT și modul de programare Arduino, am plasat un comutator (jumper) care va trage GPIO 0 la sol atunci când utilizați Arduino IDE și îl va lăsa plutitor atunci când utilizați comenzile AT.
Există un buton care atunci când este apăsat va reseta modulul ESP. Acest lucru se face prin simpla conectare a știftului RST al modulului ESP la șina de la sol prin intermediul butonului. De fiecare dată înainte de a programa modulul ESP, ar trebui să-l resetați.
Odată ce ați asamblat circuitul, ar trebui să arate cam așa mai jos.
Am folosit o placă Perf, dar puteți utiliza și o placă de măsurare dacă sunteți interesat (așa cum s-a discutat mai sus). Construirea completă și explicația sunt prezentate în videoclipul de mai jos.
Odată terminat cu conexiunile. Porniți placa fără plăcile ESP și FTDI și verificați dacă obținem 3.3V în mod corespunzător pe bornele Vcc și la sol din poziția modulelor ESP. Acum asigurați-vă că placa FTDI este în modul 3.3V și conectați modulele FTDI și ESP la placa dvs.
Porniți adaptorul și conectați-l la placa dvs., modulul ESP ar trebui să se aprindă cu o culoare roșie.
Apoi conectați placa FTDI la computer folosind un cablu mini-USB la USB și navigați la Device manager de pe computer și ar trebui să vă găsiți placa FTDI conectată la portul COM, așa cum se arată mai jos:
Acum este timpul să punem mâna pe programarea modulului nostru ESP8266. Puteți începe cu utilizarea comenzilor AT și apoi treceți la utilizarea Arduino IDE. Nu uitați să verificați celelalte proiecte bazate pe ESP8266.