Taula de continguts:

Guia per a principiants d'ESP8266 i tuits amb ESP8266: 17 passos (amb imatges)
Guia per a principiants d'ESP8266 i tuits amb ESP8266: 17 passos (amb imatges)

Vídeo: Guia per a principiants d'ESP8266 i tuits amb ESP8266: 17 passos (amb imatges)

Vídeo: Guia per a principiants d'ESP8266 i tuits amb ESP8266: 17 passos (amb imatges)
Vídeo: Как настроить и запрограммировать NodeMCU ESP8266 – Полное руководство 2024, Juliol
Anonim
Guia per a principiants d’ESP8266 i tuits amb ESP8266
Guia per a principiants d’ESP8266 i tuits amb ESP8266

Vaig conèixer Arduino fa dos anys, així que vaig començar a jugar amb coses senzilles com LEDs, botons, motors, etc. Llavors vaig pensar que no seria genial connectar-me per fer coses com ara el temps del dia, els preus de les accions, els horaris dels trens una pantalla LCD. Vaig trobar que això es podia fer enviant i rebent dades a través d’Internet. Així doncs, la solució es connectava a intenet. Vaig començar la meva recerca sobre com connectar l’Arduino a Internet i enviar i rebre dades. Vaig conèixer els mòduls wifi a Internet i vaig trobar que eren molt costosos. Després vaig conèixer l’ESP8266.

Vaig llegir molt a Internet al mòdul ESP8266 fa aproximadament un any i en vaig comprar un però vaig començar a treballar amb ells el mes passat. En aquell moment no hi havia cap informació disponible. No obstant això, ara hi ha molta documentació, hi ha vídeos disponibles a Internet pel que fa al microprogramari, comandes AT, projectes, etc. Així que vaig decidir començar.

Vaig escriure aquesta instrucció com a guia per a principiants, ja que tenia molts problemes per connectar-me i començar a utilitzar l’ESP8266, de manera que vaig decidir escriure aquesta instrucció perquè altres persones que tinguessin problemes amb els seus mòduls poguessin resoldre’ls més ràpidament.

En aquest instructiu intentaré mostrar-lo

  • Com connectar un ESP8266 i comunicar-s’hi mitjançant Arduino Uno.
  • També intentaré mostrar com es pot enviar un tuit mitjançant Thingspeak.

Què pot fer l’ESP8266? És limitat per la vostra imaginació. He vist projectes i tutorials a Internet que mostren com obtenir la temperatura d’una ciutat, els preus de les accions, l’enviament i la recepció de correus electrònics, les trucades telefòniques i molt més. aquesta instrucció sobre com enviar un tweet.

Pas 1: coses que necessitareu

Coses que necessitareu
Coses que necessitareu

Aquí teniu les coses que necessitareu: la majoria es poden comprar a qualsevol botiga d’electricitat o en línia (he proporcionat els enllaços com a referència).

  • 1xESP8266 (ESP-01) -ebay
  • 1x adaptador de tauler de pa (apreneu a fer-ne un aquí o com utilitzar alguns cables de pont)
  • 1xLM2596 -ebay
  • 1xLogic convertidor de nivell -bay
  • 1xArduino Uno
  • Cable USB per a Arduino Uno
  • 1xBreadboard -ebay
  • Wires -bay
  • IDE Arduino
  • Un compte a Thingspeak

El cost total serà d’uns 600 rupies (aproximadament 9 dòlars). He exclòs el cost d’Arduino Uno, ja que depèn de si voleu un original o un clon. Els clons més econòmics estan disponibles al voltant de 500 rupies (uns 4 dòlars).

Pas 2: algunes dades sobre ESP8266

ESP8266 es va llançar el 2014 fa tot just un any, de manera que és bastant nou. Els xips són fabricats per Espressif.

Avantatge

L’avantatge més gran de l’ESP8266 és potser el seu cost, és bastant barat i es poden comprar un parell d’un sol cop. Abans de conèixer-lo, ni tan sols se m’acut pensar en comprar un mòdul wifi. Era massa costós.. Les noves versions de l’ESP8266 s’estrenen amb força freqüència i l’última és l’ESP 12. Tot i això, en aquest instructiu només em centraré en l’ESP 01, que és força popular. és bo començar tan bon punt en compreu un. A més, com veureu en aquest instructiu, és molt fàcil connectar-los.

Desavantatge

Tots els dispositius tenen els seus propis avantatges i desavantatges i l’ESP no és diferent. De vegades, l’ESP pot resultar molt complicat i frustrant de treballar, ja que és bastant nou, us costarà obtenir informació al respecte. Afortunadament, una comunitat a esp8266.com existeix, cosa que és de gran ajuda. A més, de vegades també comença a fer coses inesperades com tirar una quantitat de deixalles a través de la connexió en sèrie, etc.

Tingueu en compte que hi ha molta documentació disponible a Internet i que una part d’ella és conflictiva. Aquest instructable no és diferent. Mentre jugava amb el meu ESP8266, vaig trobar que es desviava molt del que s’esmentava a Internet (el vostre pot també), però va funcionar bé.

Pas 3: fixació de l'ESP8266

Pinout de l'ESP8266
Pinout de l'ESP8266

L'ESP8266 té 8 pins com es mostra.

Gnd i Vcc s’han de connectar de forma habitual a terra i a l’alimentació respectivament. L’ESP8266 funciona a 3,3 V.

El pin RESET s’utilitza per restablir manualment l’ESP. Normalment s’hauria de connectar a 3,3 V. Si voleu restablir l’ESP, connecteu aquest pin a terra momentàniament i torneu a 3,3 V.

CH_PD és l’alimentació del xip que normalment s’hauria de connectar a 3,3V.

GPIO0 i GPIO2 són pins d'entrada d'ús general. Aquests haurien d'estar connectats normalment a 3,3 V. Tot i això, quan parpellegeu el microprogramari, connecteu GPIO0 a gnd.

Els pins Rx i Tx són els pins de transmissió i recepció de l’ESP8266. Funcionen amb lògica de 3,3 V, és a dir, 3,3 V és lògica ALTA per a l’ESP8266.

Les connexions detallades es proporcionen en passos posteriors.

Pas 4: què s'ha d'utilitzar per comunicar-se amb ESP8266?

Què s'ha d'utilitzar per comunicar-se amb ESP8266?
Què s'ha d'utilitzar per comunicar-se amb ESP8266?
Què s'ha d'utilitzar per comunicar-se amb ESP8266?
Què s'ha d'utilitzar per comunicar-se amb ESP8266?
Què s'ha d'utilitzar per comunicar-se amb ESP8266?
Què s'ha d'utilitzar per comunicar-se amb ESP8266?

Hi ha molts dispositius que es poden utilitzar per comunicar-se amb ESP8266, com ara programadors FTDI, convertidor sèrie USB a TTL, Arduino, etc. Però he utilitzat un Arduino Uno simplement perquè és el més fàcil i gairebé tothom el té. Si teniu un Arduino, també teniu l’Arduino IDE i el seu monitor sèrie es pot utilitzar per comunicar-vos amb l’ESP8266, de manera que no gasteu diners en programadors FTDI, etc.

Tanmateix, si voleu o si ja en teniu, podeu utilitzar un programador FTDI o un convertidor sèrie USB a TTL (més informació sobre com connectar-los més endavant). També hi ha molts programes com RealTerm o massilla. aquests de la mateixa manera que el monitor sèrie de l'IDE Arduino.

Pas 5: muntatge de l'ESP8266 a la taula de pa

Muntatge de l'ESP8266 a la taula de pa
Muntatge de l'ESP8266 a la taula de pa
Muntatge de l'ESP8266 a la taula de pa
Muntatge de l'ESP8266 a la taula de pa

Tingueu en compte que els passadors de l’ESP8266 no són compatibles amb les taules de tall. Això es pot superar de dues maneres.

Utilitzeu cables de pont femení a masculí que poden fer que les coses es desordenin o

Feu el que es mostra en aquest document instructiu o

Utilitzeu una placa adaptadora, creeu-la vosaltres mateixos (n’hi ha molts a Instructables), cosa que està molt bé.

Pas 6: font d'alimentació

Font d'alimentació
Font d'alimentació

L’ESP8266 funciona amb subministrament de 3,3 V. No el connecteu al pin de 5 V d’Arduino, probablement es cremarà.

Alguns tutorials van suggerir fer un circuit divisor de voltatge amb resistències 1k, 2k amb 5V com a entrada i obtenir 3,3V a través de la resistència 2k i subministrar-lo a l'Arduino.

Vaig poder alimentar-lo fent servir el 3.3V d'Arduino, però vaig trobar que l'ESP es va escalfar després d'un temps.

Podeu utilitzar un regulador de voltatge de 3,3V.

O bé podeu utilitzar el convertidor de baixada LM2596 dc-dc. Aquests són bastant econòmics. I els he utilitzat. Doneu 5V des d’Arduino a l’entrada. Ajusteu el potenciòmetre del mòdul fins que la sortida es converteixi en 3.3VI i trobeu que l’ESP es pot alimentar. d'un d'aquests durant hores. Feu les connexions tal com es mostra a la figura.

Pas 7: conversió de nivell lògic

Conversió de nivell lògic
Conversió de nivell lògic

S'esmenta que l'ESP té una lògica de 3,3 V mentre que l'Arduino té una lògica de 5 V.

Això vol dir que a l’ESP 3.3V és lògica ALTA mentre que a l’Arduino 5V és lògica ALTA. Això pot causar alguns problemes en connectar-los.

Vaig trobar a Internet que s’havia d’aplicar la conversió de nivell lògic mentre connectava ESP Rx i Tx amb Arduino.

Alguns tutorials van esmentar que es necessita una conversió de nivell lògic durant la interfície del pin ESP Rx.

Tanmateix, vaig trobar que només connectar normalment els pins ESP Rx i Tx a l'Arduino no causava cap problema

Vaig connectar Rx i Tx mitjançant un convertidor de nivell lògic, així com Rx sol, però no vaig obtenir cap resposta.

No obstant això, vaig trobar que connectar el pin ESP Tx mitjançant el convertidor de nivell lògic mentre connectava el Tx directament tampoc no causava problemes

Per tant, es pot utilitzar o no el convertidor de nivell lògic.

Utilitzeu qualsevol mètode que us funcioni mitjançant proves i errors.

Pas 8: connexions

Connexions
Connexions

Les connexions de l'ESP8266 són:

ESP8266

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

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

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

Rx -------------------- Rx d'Arduino

Tx --------------------- Tx d'Arduino (directe o mitjançant convertidor de nivell lògic)

CH_PD -------------- 3,3V

RESET -------------- 3,3V

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

(Tingueu en compte que en algunes versions ESP Rx s'hauria de connectar a Arduino Tx i ESP Tx hauria d'estar connectat a Arduino Rx).

Si utilitzeu un programador FTDI o un convertidor sèrie USB a TTL, connecteu els seus Tx i Rx a Rx i Tx de l’ESP8266 respectivament.

Pas 9: Introducció

Després de fer les connexions, pengeu

configuració nul·la ()

{}

bucle buit ()

{}

és a dir, un esbós en blanc a l'Arduino..

Obriu el monitor sèrie i configureu-lo a "Tant NL com CR".

Experimenteu amb la velocitat en bauds. Normalment hauria de ser 9600, tot i que de vegades pot ser 115200.

Pas 10: comandes AT

Comandaments AT
Comandaments AT

Simplement dir que les ordres AT són ordres que es poden enviar a l’ESP8266 per permetre-li realitzar algunes funcions com reiniciar-se, connectar-se a wifi, etc. L’ESP en resposta enviarà alguna confirmació en forma de text. Comandes AT i com els respon l’ESP. Tingueu en compte que per enviar vull dir escriure l’ordre i prémer enter (retorn).

Envieu AT a través del monitor sèrie

Aquesta ordre s'utilitza com a ordre de prova.

Com respon l'ESP: s'ha de retornar OK.

Envieu AT + RST a través del monitor sèrie

Aquesta ordre s'utilitza per reiniciar el mòdul.

Com respon l’ESP: l’ESP retorna una quantitat d’escombraries, però busqueu Llest o llest.

Envieu AT + GMR a través del monitor sèrie

Aquesta ordre s'utilitza per determinar la versió de firmware del mòdul.

Com respon l'ESP: s'hauria de retornar la versió del firmware.

El microprogramari és un programari que s’instal·la en un dispositiu generalment a la seva ROM (només lectura), és a dir, no es vol canviar amb freqüència o no. Ofereix el control i la manipulació de dades del dispositiu. ESP8266 té un número de diferents firmwares, tots fàcils de fer flash (instal·lar).

Pas 11: Sintaxi general dels comandaments AT

Es dóna la sintaxi general de les ordres AT per realitzar diferents funcions:

Paràmetre AT + =?

Quan s'envia una ordre d'aquest tipus a través del monitor sèrie, l'ESP retorna tots els valors que pot prendre el paràmetre.

Paràmetre AT + = val

Quan s'envia una ordre d'aquest tipus a través del monitor sèrie, l'ESP estableix el valor del paràmetre a val.

Paràmetre AT +?

Quan s'envia una ordre d'aquest tipus a través del monitor sèrie, l'ESP retorna el valor actual del paràmetre.

Algunes ordres AT poden tenir només un dels tipus anteriors, mentre que algunes poden prendre totes les 3.

Un exemple d’ordre que és possible en tots els 3 tipus anteriors és CWMODE, que s’utilitza per configurar el mode wifi.

Enviar AT + CWMODE =? a través del monitor sèrie

Com respon l’ESP: tots els valors que pot prendre l’ESP CWMODE (1-3) es retornen específicament + CWMODE (1-3).

1 = estàtic

2 = AP

3 = Tant estàtic com AP

Envieu AT + CWMODE = 1 a través del monitor sèrie

Com respon l'ESP: s'ha de retornar OK si hi ha un canvi en el CWMODE respecte del seu valor anterior i s'estableix a estàtic, en cas contrari no s'hauria de retornar cap canvi si no hi ha cap canvi en el valor CWMODE.

IMPORTANT: tret que CWMODE estigui establert en 1, les ordres dels passos posteriors no funcionaran.

Vols enviar AT + CWMODE? a través del monitor sèrie

Com respon l'ESP: s'hauria de retornar el valor actual de CWMODE, concretament si heu seguit el pas anterior + CWMODE: 1.

Pas 12: Connexió a Wifi

Envieu AT + CWLAP a través del monitor sèrie

Aquesta ordre s’utilitza per llistar totes les xarxes de la zona.

Com respon l'ESP: s'hauria de retornar una llista de tots els punts d'accés o xarxes wifi disponibles.

Envia AT + CWJAP = "SSID", "contrasenya"

(incloses les cometes dobles).

Aquesta ordre s'utilitza per unir-se a una xarxa wifi.

Com respon l'ESP: s'ha de retornar OK si el mòdul ha estat connectat a la xarxa.

Vols enviar AT + CWJAP? a través del monitor sèrie

Aquesta ordre s’utilitza per determinar la xarxa a la qual està connectat actualment l’ESP.

Com respon l'ESP: es retornarà la xarxa a la qual està connectat l'ESP. Concretament + CWJAP: "SSID"

Envieu AT + CWQAP a través del monitor sèrie

Aquesta ordre s’utilitza per desconnectar de la xarxa a la qual està connectat actualment l’ESP.

Com respon l'ESP: l'ESP surt de la xarxa a la qual està connectat i es torna OK.

Envieu AT + CIFSR a través del monitor sèrie

Aquesta ordre s'utilitza per determinar l'adreça IP de l'ESP.

Com respon l'ESP: es retorna l'adreça IP de l'ESP.

Pas 13: Thingspeak

Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak
Thingspeak

Si no heu creat cap compte a Thingspeak, feu-ne un ara.

Després de crear un compte a Thingspeak, aneu a Aplicacions> ThingTweet.

Enllaça el teu compte de twitter amb ell.

Tingueu en compte la clau API que es genera.

Aquí, després que s’hagi utilitzat l’aplicació ThingTweet per enllaçar un compte de Twitter al vostre compte de ThingSpeak, podeu enviar un tuit mitjançant l’API TweetContol.

Una API (interfície de programa d’aplicació) és un codi que permet que dos programes es comuniquin entre ells.

Algunes altres API disponibles per als desenvolupadors són l'API de Google Maps, l'API Open weather, etc.

Només després d'haver configurat, comprovat i connectat l'ESP a wifi (bàsicament tots els passos donats en els 2 passos anteriors), seguiu els passos que s'indiquen a continuació.

Pas 14: alguns comandaments AT més

Envieu AT + CIPMODE = 0 a través del monitor sèrie

Com respon l'ESP: es torna OK.

L'ordre CIPMODE s'utilitza per configurar el mode de transferència.

0 = mode normal

1 = Mode passthrough UART-WiFi

Envieu AT + CIPMUX = 1 a través del monitor sèrie

Com respon l'ESP: es torna OK.

L'ordre CIPMUX s'utilitza per establir connexions simples o múltiples.

0 = connexió única

1 = connexió múltiple

Pas 15: Configuració de la connexió TCP

Configuració de la connexió TCP
Configuració de la connexió TCP
Configuració de la connexió TCP
Configuració de la connexió TCP

Tingueu en compte que, a partir de la primera ordre, tan bon punt envieu la primera, la connexió s’establirà només per un temps limitat. Per tant, envieu les ordres el més ràpidament possible.

Envieu AT + CIPSTART = 0, "TCP", "api.thingspeak.com", 80 a través del monitor sèrie

Com respon l'ESP: es retorna enllaçat si s'ha establert la connexió.

Aquesta ordre s’utilitza per establir una connexió TCP.

La sintaxi és AT + CIPSTART = identificador d’enllaç, tipus, IP remota, port remot

on

enllaç ID = identificador de connexió de xarxa (0 ~ 4), utilitzat per a múltiples connexions.

type = string, "TCP" o "UDP".

IP remota = cadena, adreça IP remota (adreça del lloc web).

port remot = cadena, número de port remot (normalment seleccionat com a 80).

Envieu AT + CIPSEND = 0, 110 a través del monitor sèrie

Com respon l'ESP:> (superior a) es torna si l'ordre és correcta.

Aquesta ordre s’utilitza per enviar dades.

La sintaxi és AT + CIPSEND = identificador d'enllaç, longitud

on

link ID = ID de la connexió (0 ~ 4), per a múltiples connexions. Com que CIPMUX s'ha definit a 1, és 1.

length = longitud de les dades, MAX 2048 bytes. Generalment, trieu un gran nombre per a la longitud.

Pas 16: enviant el tuit

S'està enviant el tuit
S'està enviant el tuit

Ara per enviar el tuit

Envieu GET / apps / thingtweet / 1 / statuses / update? Api_key = yourAPI & status = yourtweet a través del monitor sèrie.

Substituïu el vostre API per la clau API i el vostre tuit per qualsevol tuit que desitgeu.

Tan bon punt hàgiu enviat l'ordre anterior, comenceu a prémer la tecla enter (retorn) a intervals aproximats d'1 segon. Després d'un temps, es tornarà SEND OK, + IPD, 0, 1: 1 i OK, cosa que significa que s'ha publicat el tweet.

Obriu el vostre twitter i comproveu si el tuit s'ha publicat o no.

Tingueu en compte també que el mateix tuit no es pot enviar repetidament.

La cadena anterior que s'ha enviat (GET ….) és una sol·licitud HTTP GET.

La sol·licitud GET s’utilitza per recuperar dades del servidor donat (api.thingspeak.com).

Pas 17: què cal fer després d'això

(Mireu el vídeo en 360p com a mínim)

Aneu a aquest dipòsit per descarregar el codi i els esquemes. Feu clic al botó "Clona o descarrega" (de color verd a la part dreta) i seleccioneu "Descarregar ZIP" per descarregar el fitxer zip. Ara extreu el contingut a l'ordinador per obtenir el codi i els esquemes (a la carpeta d’esquemes). També he penjat un full de trucs, que resumeix totes les ordres AT, a aquest dipòsit.

Hi ha molts recursos disponibles a Internet relacionats amb ESP8266. N’he esmentat alguns aquí:

  • Vídeos de Kevin Darrah.
  • Tots els vídeos sobre EE.
  • esp8266.com

També podeu experimentar més amb les ordres AT. Hi ha moltes API disponibles a Internet que poden fer tot tipus de coses, com ara el temps, els preus de les accions, etc.

Documentació completa de l'ordre AT

Actualment, també estic treballant en un programa que tweetitza automàticament els valors analògics d’un sensor i el publicaré un cop funcioni correctament.

Si t’ha agradat el meu instructiu vot al concurs Arduino all the things.

Recomanat: