Cuprins:

Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266: 17 pași (cu imagini)
Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266: 17 pași (cu imagini)

Video: Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266: 17 pași (cu imagini)

Video: Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266: 17 pași (cu imagini)
Video: CTS Ro Curs5 Intro Unit Testing si JUnit 2024, Noiembrie
Anonim
Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266
Ghid pentru începători la ESP8266 și Tweeting Utilizarea ESP8266

Am aflat despre Arduino acum 2 ani. Așa că am început să mă joc cu lucruri simple, cum ar fi LED-uri, butoane, motoare, etc. un ecran LCD. Am constatat că acest lucru se putea face prin trimiterea și primirea de date prin internet. Deci soluția se conecta la intenet. Acolo a început căutarea mea despre cum să conectez Arduino la internet și să trimit și să primesc date. Am aflat despre modulele wifi pe internet și mi s-au părut foarte costisitoare. Apoi am aflat de ESP8266.

Am citit multe pe internet pe modulul ESP8266 acum aproximativ un an și am cumpărat unul, dar am început să lucrez cu ei chiar luna trecută. În acel moment nu existau informații disponibile. Cu toate acestea, acum există o mulțime de documentație, sunt disponibile videoclipuri pe internet cu privire la firmware, comenzi AT, proiecte etc. Așa că am decis să încep.

Am scris acest instructable ca un ghid pentru începători, deoarece m-am confruntat cu o mulțime de probleme la conectare și la pornirea cu ESP8266. Așa că am decis să scriu acest instructable, astfel încât alte persoane care întâmpină probleme cu modulele lor să le rezolve mai repede

În acest Instructable voi încerca să arăt

  • Cum să conectați un ESP8266 și să comunicați cu acesta prin Arduino Uno.
  • De asemenea, voi încerca să arăt cum poate fi trimis un tweet prin intermediul acestuia folosind Thingspeak.

Ce poate face ESP8266? Este limitat de imaginația dvs. Am văzut proiecte și tutoriale pe internet care arată cum să aduc temperatura unui oraș, prețurile stocurilor, trimiterea și primirea de e-mailuri, efectuarea de apeluri telefonice și multe altele. acest Instructable cum să trimiteți un tweet.

Pasul 1: Lucruri de care vei avea nevoie

Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie

Iată lucrurile de care aveți nevoie. Cele mai multe dintre acestea pot fi cumpărate de la orice magazin electric sau online (am furnizat linkurile pentru referință).

  • 1xESP8266 (ESP-01) -bay
  • 1xAdaptor pentru pană de pană (aflați cum să faceți unul aici sau să folosiți niște fire jumper)
  • 1xLM2596 -bay
  • 1xLogic level converter -ebay
  • 1xArduino Uno
  • Cablu USB pentru Arduino Uno
  • 1xBreadboard -ebay
  • Firele -bay
  • IDE Arduino
  • Un cont la Thingspeak

Costul total va fi de aproximativ Rs 600 (aproximativ 9 USD). Am exclus costul Arduino Uno, deoarece depinde dacă doriți un original sau o clonă. Cele mai ieftine clone sunt disponibile la aproximativ Rs 500 (aproximativ 4 USD).

Pasul 2: câteva informații despre ESP8266

ESP8266 a fost lansat în 2014 cu doar un an în urmă, deci este destul de nou. Cipurile sunt fabricate de Espressif.

Avantaj

Cel mai mare avantaj al ESP8266 este probabil costul său. Este destul de ieftin și puteți cumpăra câteva dintre acestea dintr-o singură mișcare. Înainte să ajung să știu despre asta, nici măcar nu mă puteam gândi să cumpăr un modul wifi. Erau prea costisitoare. Noile versiuni ale ESP8266 sunt lansate destul de frecvent, iar cea mai recentă este ESP 12. Cu toate acestea, în acest instructabil mă voi concentra doar pe ESP 01, care este destul de popular. sunteți bine să începeți imediat ce cumpărați unul.. De asemenea, după cum veți vedea din acest instructable, este destul de ușor să le interfațați.

Dezavantaj

Fiecare dispozitiv are propriile sale avantaje și dezavantaje, iar ESP nu diferă. ESP se poate dovedi uneori foarte dificil și frustrant de lucrat. Deoarece este destul de nou, veți fi dificil să obțineți informații despre acesta. Din fericire, o comunitate la esp8266.com există, care este de mare ajutor. Mai mult decât atât, uneori începe, de asemenea, să facă lucruri neașteptate, cum ar fi aruncarea unei încărcături de gunoi prin conexiunea serială etc.

Rețineți că există o mulțime de documentație disponibilă pe internet și o parte din aceasta este conflictuală. Acest instructabil nu diferă. În timp ce mă jucam cu ESP8266, am constatat că s-a deviat mult de la ceea ce a fost menționat pe internet (al tău poate de asemenea) dar a funcționat bine.

Pasul 3: Pinout ESP8266

Pinout ESP8266
Pinout ESP8266

ESP8266 are 8 pini așa cum se arată.

Gnd și Vcc ar trebui conectate ca de obicei la masă și respectiv la sursă. ESP8266 funcționează pe 3,3V.

Pinul RESET este utilizat pentru resetarea manuală a ESP-ului. În mod normal, ar trebui să fie conectat 3.3V. Dacă doriți să resetați ESP, conectați acest pin la masă momentan și apoi înapoi la 3.3V.

CH_PD este oprirea cipului care ar trebui conectată în mod normal la 3,3V.

GPIO0 și GPIO2 sunt pini de ieșire de intrare de uz general. Acestea ar trebui conectate în mod normal la 3.3V.

Pinii Rx și Tx sunt pinii de transmisie și de recepție ai ESP8266. Aceștia funcționează pe o logică de 3,3V, adică 3,3V este logic HIGH pentru ESP8266.

Conexiunile detaliate sunt furnizate în etape ulterioare.

Pasul 4: Ce ar trebui utilizat pentru comunicarea cu ESP8266?

Ce trebuie utilizat pentru comunicarea cu ESP8266?
Ce trebuie utilizat pentru comunicarea cu ESP8266?
Ce trebuie utilizat pentru comunicarea cu ESP8266?
Ce trebuie utilizat pentru comunicarea cu ESP8266?
Ce trebuie utilizat pentru comunicarea cu ESP8266?
Ce trebuie utilizat pentru comunicarea cu ESP8266?

Există o mulțime de dispozitive care pot fi utilizate pentru a comunica cu ESP8266, cum ar fi programatorii FTDI, convertorul serial USB la TTL, Arduino etc. Cu toate acestea, am folosit un Arduino Uno pur și simplu pentru că este cel mai ușor și aproape îl are toată lumea. aveți un Arduino aveți, de asemenea, Arduino IDE și monitorul său serial poate fi utilizat pentru comunicarea cu ESP8266. Deci, nu cheltuiți bani pe programatori FTDI etc.

Cu toate acestea, dacă doriți sau dacă aveți deja unul, puteți utiliza un programator FTDI sau un convertor serial USB la TTL (mai multe despre cum să le conectați mai târziu). De asemenea, există o mulțime de software, cum ar fi RealTerm sau chit. acestea la fel ca monitorul serial al Arduino IDE.

Pasul 5: Montarea ESP8266 pe Breadboard

Montarea ESP8266 pe Breadboard
Montarea ESP8266 pe Breadboard
Montarea ESP8266 pe Breadboard
Montarea ESP8266 pe Breadboard

Observați că pinii ESP8266 nu sunt compatibili cu panourile de lucru. Acest lucru poate fi depășit prin 2 moduri.

Utilizați fire jumper de la femeie la mascul, care pot face lucrurile dezordonate sau

Faceți așa cum se arată în acest manual sau

Utilizați o placă de adaptor, creați una singură (există multe pe Instructables), care este îngrijită.

Pasul 6: Alimentare

Alimentare electrică
Alimentare electrică

ESP8266 funcționează pe o sursă de 3,3 V. Nu îl conectați la pinul de 5 V de pe Arduino, probabil că va arde.

Unele tutoriale au sugerat crearea unui circuit divizor de tensiune folosind rezistențe 1k, 2k cu 5V ca intrare și obținerea a 3,3V pe rezistorul de 2k și furnizarea acestuia către Arduino.

Am reușit să-l alimentez folosind 3.3V pe Arduino, dar am constatat că ESP s-a încălzit după ceva timp.

Puteți utiliza un regulator de tensiune de 3,3V.

Sau puteți utiliza convertorul LM2596 dc-dc step down. Acestea sunt destul de ieftine. Și le-am folosit. Dă 5V de la Arduino la intrare. Reglați potențiometrul de pe modul, până când ieșirea devine 3.3VI, a constatat că ESP poate fi alimentat din una dintre acestea timp de ore. Faceți conexiunile așa cum se arată în figură.

Pasul 7: Conversie nivel logică

Conversie nivel logică
Conversie nivel logică

Se menționează că ESP are logică de 3,3V, în timp ce Arduino are logică de 5V.

Acest lucru înseamnă că în ESP 3.3V este logic HIGH, în timp ce în Arduino 5V este logic HIGH. Acest lucru poate cauza unele probleme în timp ce le conectați.

Am descoperit pe internet că conversia la nivel logic trebuie aplicată în timp ce interfațați ESP Rx și Tx cu Arduino.

Unele tutoriale au menționat că este necesară conversia nivelului logic în timp ce interfațați pinul ESP Rx.

Cu toate acestea, am constatat că doar conectarea în mod normal a pinilor ESP Rx și Tx la Arduino nu a cauzat probleme

Am conectat Rx și Tx prin convertor de nivel logic, precum și Rx singur, dar nu am obținut niciun răspuns.

Totuși, am constatat că conectarea pinului ESP Tx prin convertorul de nivel logic în timp ce conectarea directă a Tx nu a cauzat nici o problemă

Deci, convertorul de nivel logic poate fi sau nu utilizat.

Folosiți oricare dintre metodele care funcționează pentru dvs. prin încercări și erori.

Pasul 8: Conexiuni

Conexiuni
Conexiuni

Conexiunile ESP8266 sunt:

ESP8266

Gnd ------------------- Gnd

GPIO2 --------------- 3.3V

GPIO0 --------------- 3.3V

Rx -------------------- Rx din Arduino

Tx --------------------- Tx of Arduino (direct sau prin convertor de nivel logic)

CH_PD -------------- 3.3V

RESET -------------- 3.3V

Vcc -------------------- 3.3V

(Rețineți că în unele versiuni ESP Rx ar trebui să fie conectat la Arduino Tx și ESP Tx ar trebui să fie conectat Arduino Rx).

Dacă utilizați programator FTDI sau convertor serial USB la TTL, conectați-le Tx și Rx la Rx și respectiv la ESP8266.

Pasul 9: Introducere

După efectuarea conexiunilor, încărcați

configurare nulă ()

{}

bucla nulă ()

{}

adică o schiță goală către Arduino..

Deschideți monitorul serial și setați-l la „Atât NL, cât și CR”.

Experimentați cu rata Baud. De obicei ar trebui să fie 9600, deși uneori poate fi 115200.

Pasul 10: Comenzi AT

Comenzi AT
Comenzi AT

Spunând pur și simplu comenzile AT sunt comenzi care pot fi trimise către ESP8266, astfel încât să îi permită să îndeplinească anumite funcții, cum ar fi repornirea, conectarea la wifi etc. Comenzile AT și modul în care ESP răspunde la ele. Rețineți că prin trimitere mă refer la tastarea comenzii și apăsarea enter (return).

Trimiteți AT prin monitorul serial

Această comandă este utilizată ca comandă de testare.

Cum răspunde ESP: OK trebuie returnat.

Trimiteți AT + RST prin monitorul serial

Această comandă este utilizată pentru a reporni modulul.

Cum reacționează ESP: ESP returnează o încărcătură de gunoi. Totuși, căutați Ready sau ready.

Trimiteți AT + GMR prin monitorul serial

Această comandă este utilizată pentru a determina versiunea de firmware a modulului.

Cum răspunde ESP: Versiunea firmware trebuie returnată.

Firmware-ul este un software instalat pe un dispozitiv de obicei pe ROM-ul său (numai citire memorie), adică nu este destinat să fie schimbat frecvent sau deloc. Oferă controlul și manipularea datelor dispozitivului. ESP8266 are un număr a diferitelor programe, toate fiind destul de ușor de blițat (instalat).

Pasul 11: Sintaxa generală a comenzilor AT

Sintaxa generală a comenzilor AT pentru îndeplinirea diferitelor funcții este dată:

Parametru AT + =?

Când o comandă de acest tip este trimisă prin monitorul serial, ESP returnează toate valorile pe care parametrul le poate lua.

Parametru AT + = val

Când o comandă de acest tip este trimisă prin monitorul serial, ESP setează valoarea parametrului la val.

Parametru AT +?

Când o comandă de acest tip este trimisă prin monitorul serial, ESP returnează valoarea curentă a parametrului.

Unele comenzi AT pot lua doar unul dintre tipurile de mai sus, în timp ce altele pot lua toate cele 3.

Un exemplu de comandă care este posibil în toate cele 3 tipuri de mai sus este CWMODE, care este utilizat pentru a seta modul wifi.

Trimite AT + CWMODE =? prin monitorul serial

Cum răspunde ESP: Toate valorile pe care ESP CWMODE le poate lua (1-3) sunt returnate în mod specific + CWMODE (1-3).

1 = static

2 = AP

3 = Atât static, cât și AP

Trimiteți AT + CWMODE = 1 prin monitorul serial

Cum răspunde ESP: OK ar trebui să fie returnat dacă există o modificare în CWMODE față de valoarea sa anterioară și este setată la statică, altfel nu ar trebui returnată nicio modificare dacă nu există nicio modificare în valoarea CWMODE.

IMPORTANT: Cu excepția cazului în care CWMODE este setat la 1, comenzile din pașii ulteriori nu vor funcționa.

Trimiteți AT + CWMODE? prin monitorul serial

Cum răspunde ESP: Valoarea actuală a CWMODE ar trebui returnată, mai ales dacă ați urmat pasul de mai sus + CWMODE: 1 ar trebui returnată.

Pasul 12: Conectarea la Wifi

Trimiteți AT + CWLAP prin monitorul serial

Această comandă este utilizată pentru a lista toate rețelele din zonă.

Cum răspunde ESP: ar trebui returnată o listă cu toate punctele de acces disponibile sau rețelele wifi.

Trimite AT + CWJAP = "SSID", "parolă"

(inclusiv ghilimele duble).

Această comandă este utilizată pentru a vă alătura unei rețele wifi.

Cum răspunde ESP: OK ar trebui returnat dacă modulul a fost conectat la rețea.

Trimiteți AT + CWJAP? prin monitorul serial

Această comandă este utilizată pentru a determina rețeaua la care ESP este conectat în prezent.

Cum răspunde ESP: Rețeaua la care este conectat ESP va fi returnată. Mai exact + CWJAP: „SSID”

Trimiteți AT + CWQAP prin monitorul serial

Această comandă este utilizată pentru a vă deconecta de la rețeaua la care ESP este conectat în prezent.

Cum răspunde ESP: ESP părăsește rețeaua la care este conectat și OK este returnat.

Trimiteți AT + CIFSR prin monitorul serial

Această comandă este utilizată pentru a determina adresa IP a ESP.

Cum răspunde ESP: Adresa IP a ESP este returnată.

Pasul 13: Thingspeak

Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak

Dacă nu v-ați creat un cont pe Thingspeak creați unul acum.

După ce vă faceți un cont pe Thingspeak, accesați Aplicații> ThingTweet.

Conectați contul dvs. twitter cu acesta.

Rețineți cheia API generată.

Aici, după ce aplicația ThingTweet a fost utilizată pentru a conecta un cont Twitter la contul dvs. ThingSpeak, puteți trimite un tweet utilizând API-ul TweetContol.

Un API (interfața programului de aplicație) este un cod care permite ca două programe software să comunice între ele.

Unele alte API-uri disponibile pentru dezvoltatori sunt Google Maps API, Open Weather API etc.

Doar după ce ESP a fost configurat, verificat și conectat la wifi (practic toți pașii dați în 2 pași anteriori), parcurgeți pașii de mai jos

Pasul 14: Mai multe comenzi AT

Trimiteți AT + CIPMODE = 0, prin monitorul serial

Cum răspunde ESP: OK este returnat.

Comanda CIPMODE este utilizată pentru a seta modul de transfer.

0 = modul normal

1 = modul passthrough UART-WiFi

Trimiteți AT + CIPMUX = 1 prin monitorul serial

Cum răspunde ESP: OK este returnat.

Comanda CIPMUX este utilizată pentru a seta conexiuni simple sau multiple.

0 = conexiune simplă

1 = conexiune multiplă

Pasul 15: Configurarea conexiunii TCP

Configurarea conexiunii TCP
Configurarea conexiunii TCP
Configurarea conexiunii TCP
Configurarea conexiunii TCP

Rețineți că, începând de la prima comandă, de îndată ce o trimiteți pe prima, conexiunea va fi stabilită doar pentru o perioadă limitată, deci trimiteți comenzile cât mai repede posibil.

Trimiteți AT + CIPSTART = 0, „TCP”, „api.thingspeak.com”, 80 prin intermediul monitorului serial

Cum răspunde ESP: Legătura este returnată dacă conexiunea a fost stabilită.

Această comandă este utilizată pentru a stabili o conexiune TCP.

Sintaxa este AT + CIPSTART = ID link, tip, IP la distanță, port la distanță

Unde

link ID = ID conexiune la rețea (0 ~ 4), utilizat pentru conectare multiplă.

tip = șir, „TCP” sau „UDP”.

IP la distanță = șir, adresa IP la distanță (adresa site-ului web).

port la distanță = șir, numărul portului la distanță (de obicei selectat ca 80).

Trimiteți AT + CIPSEND = 0, 110 prin monitorul serial

Cum răspunde ESP:> (mai mare decât) este returnat dacă comanda are succes.

Această comandă este utilizată pentru a trimite date.

Sintaxa este AT + CIPSEND = ID-ul legăturii, lungimea

Unde

link ID = ID-ul conexiunii (0 ~ 4), pentru conectare multiplă. Deoarece CIPMUX a fost setat la 1, este 1.

lungime = lungimea datelor, MAX 2048 octeți. Alegeți în general un număr mare pentru lungime.

Pasul 16: Trimiterea Tweetului

Trimiterea Tweetului
Trimiterea Tweetului

Acum pentru trimiterea tweet-ului

Trimiteți GET / apps / thingtweet / 1 / statuses / update? Api_key = yourAPI & status = yourtweet prin monitorul serial.

Înlocuiți-vă API-ul cu cheia API și tweet-ul dvs. cu orice tweet pe care îl doriți.

De îndată ce trimiteți comanda de mai sus, începeți să apăsați Enter (return) la intervale de aproximativ 1 secundă. După un timp, SEND OK, + IPD, 0, 1: 1 și OK vor fi returnate, ceea ce înseamnă că tweet-ul a fost postat.

Deschideți-vă twitter-ul și verificați dacă tweet-ul a fost postat sau nu.

Rețineți, de asemenea, că același tweet nu poate fi trimis în mod repetat.

Șirul de mai sus care a fost trimis (GET ….), este o cerere HTTP GET.

Solicitarea GET este utilizată pentru a prelua date de pe serverul dat (api.thingspeak.com).

Pasul 17: Ce trebuie să faceți după aceasta

(Urmăriți videoclipul în cel puțin 360p)

Accesați acest depozit pentru a descărca codul și schemele. Faceți clic pe butonul „Clonați sau descărcați” (culoare verde în partea dreaptă) și selectați „Descărcați ZIP” pentru a descărca fișierul zip. Acum extrageți conținutul de pe computer pentru a obține codul și schemele (în dosarul schemelor). Am încărcat, de asemenea, o foaie de cheats, care rezumă toate comenzile AT, în acest depozit.

Există o mulțime de resurse excelente disponibile pe internet care se ocupă de ESP8266. Am menționat unele dintre ele aici:

  • Videoclipuri cu Kevin Darrah.
  • ALLaboutEE videoclipuri.
  • esp8266.com

De asemenea, puteți experimenta mai mult cu comenzile AT. Există o mulțime de API-uri disponibile pe internet care pot face tot felul de lucruri, cum ar fi obținerea vremii, prețurile acțiunilor etc.

Documentație completă de comandă AT

De asemenea, lucrez în prezent la un program care tweetează automat valorile analogice ale unui senzor și îl voi posta odată ce funcționează corect.

Dacă ți-a plăcut votul meu instructiv pentru el în concursul Arduino all the things.

Recomandat: