La comunicació sense fils entre els dispositius electrònics i els mòduls és molt important per fer-los "aptes" al món de la Internet de les coses. El protocol HTTP i el llenguatge HTML han permès transferir les dades a qualsevol lloc del món a través de la web. Ja hem tractat alguns projectes que fan servir Wi-Fi amb Arduino; consulteu-los a Introducció:
- Enviament de correu electrònic mitjançant el mòdul WiFi Arduino i ESP8266
- Robot controlat per WiFi mitjançant Arduino
- Control de LED RGB mitjançant Arduino i Wi-Fi
Ara en aquest tutorial, estem construint un programa per enviar dades al web mitjançant el mòdul Arduino i Wi-Fi. Per a això, primer necessitem una adreça IP del servidor global o local, aquí, per facilitar-ne la demostració, estem utilitzant el servidor local.
Components necessaris:
- Arduino UNO
- Mòdul Wi-Fi ESP8266
- Cable USB
- Connexió de cables
- Portàtil
- Font d'alimentació
Mòdul Wi-Fi ESP8266:

Connexions de circuits:
A continuació es mostra el diagrama de circuits per a "Publicar dades d'Arduino al web". Necessitem principalment un mòdul Wi-Fi Arduino i ESP8266. Els pins Vcc i GND de l'ESP8266 estan connectats directament a 3,3 V i GND d'Arduino i CH_PD també està connectat a 3,3 V. Els pins Tx i Rx de l’ESP8266 estan connectats directament als pins 2 i 3 d’Arduino. El programari Serial Library s’utilitza per permetre la comunicació en sèrie als pins 2 i 3 d’Arduino. Ja hem tractat detalladament la interfície del mòdul Wi-Fi ESP8266 a Arduino.

Mitjançant l’ús de Software Serial Library aquí, hem permès la comunicació en sèrie als pins 2 i 3, i els hem convertit en Rx i Tx respectivament. Per defecte, els pins 0 i 1 d’Arduino s’utilitzen per a la comunicació serial, però mitjançant la biblioteca SoftwareSerial podem permetre la comunicació en sèrie en altres pins digitals de l’Arduino.
Nota: per veure la resposta de l’ESP8266 al monitor sèrie, obriu el monitor sèrie d’Arduino IDE.
Explicació de treball:
Primer de tot, hem de connectar el nostre mòdul Wi-Fi al router Wi-Fi per a la connectivitat de xarxa. A continuació, configurarem el servidor local, enviarem les dades al web i finalment tancarem la connexió. Aquest procés i les ordres s’han explicat a continuació:
1. Primerament, hem de provar el mòdul Wi-Fi enviant l' ordre AT , que tornarà a respondre una resposta que contingui OK .
2. Després d'això, hem de seleccionar el mode mitjançant l'ordre AT + CWMODE = mode_id , hem utilitzat Mode id = 3. Identificadors de mode:
1 = Mode estació (client)
2 = Mode AP (amfitrió)
3 = AP + mode estació (Sí, ESP8266 té un mode dual!)
3. Ara hem de desconnectar el mòdul Wi-Fi de la xarxa Wi-Fi prèviament connectada mitjançant l'ordre AT + CWQAP, ja que ESP8266 és la connexió automàtica per defecte amb qualsevol xarxa Wi-Fi disponible anteriorment.
4. Després d'això, l'usuari pot restablir el mòdul amb l' ordre AT + RST . Aquest pas és opcional.
5. Ara hem de connectar ESP8266 al router Wi-Fi mitjançant l'ordre donada
6. Ara obteniu l'adreça IP mitjançant l'ordre donada:
Tornarà una adreça IP.
7. Ara activeu el mode múltiplex mitjançant AT + CIPMUX = 1 (1 per a connexió múltiple i 0 per a connexió única)
8. Ara configureu ESP8266 com a servidor mitjançant AT + CIPSERVER = 1, port_no (el port pot ser 80). Ara la vostra connexió Wi-Fi està a punt. Aquí s'utilitza '1' per crear el servidor i '0' per suprimir-lo.
9. Ara, mitjançant l'ordre donada, l'usuari pot enviar dades al servidor local creat:
Identificador = núm. D'identificació de connexió de transmissió
Longitud = La longitud màxima de les dades és de 2 kb
10. Després d’enviar l’identificador i la longitud al servidor, hem d’enviar dades com: Serial.println (“[email protected]”);
11. Després d’enviar dades, hem de tancar la connexió mitjançant l’ordre donada:
Ara les dades s’han transmès al servidor local.
12. Ara escriviu l'adreça IP a la barra d'adreces del navegador web i premeu Retorn. Ara l'usuari pot veure les dades transmeses a la pàgina web.
Consulteu el vídeo següent per veure el procés complet.
Passos per a la programació:
1. Incloeu SoftwareSerial Library per permetre la comunicació en sèrie al PIN 2 i 3 i declarar algunes variables i cadenes.
#incloure
2. Després d'això, hem de definir algunes funcions per realitzar les nostres tasques desitjades.
A la funció Setup () , inicialitzem la comunicació UART sèrie incorporada per a ESP8266 com a client.begin (9600); a la velocitat en bauds de 9600.
configuració nul·la () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Preparat per al sistema.."); }
3. A la funció wifi_init () , inicialitzem el mòdul wifi enviant algunes ordres com restablir, configurar el mode, connectar-se al router, configurar la connexió, etc. Aquestes ordres també s’han explicat anteriorment a la part de descripció.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. A la funció connect_wifi () , enviem dades d’ordres a ESP8266 i després llegim la resposta des del mòdul Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. La funció sendwebdata () s’utilitza per enviar dades al servidor local o a la pàgina web.
void sendwebdata (String webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0"); client.print ("AT + CIPSEND = 0");…………………
6. La funció void send () s'utilitza per enviar cadenes de dades a la funció sendwebdata () . Això s'enviarà a la pàgina web.
void Enviar () {pàgina web = "
Benvingut a Circuit Digest
"; sendwebdata (pàgina web); pàgina web = nom; pàgina web + = dat;…………………7. La funció get_ip () s'utilitza per obtenir l'adreça IP del servidor local creat.
8. En funció de bucle buit () , enviem instruccions a l'usuari per actualitzar la pàgina i comprovem si el servidor està connectat o no. Quan l’usuari actualitza o sol·licita la pàgina web, les dades es transmeten automàticament a la mateixa adreça IP.
bucle buit () {k = 0; Serial.println ("Actualitzeu la vostra pàgina"); mentre (k <1000)………………
Podem mostrar qualsevol informació des d’Arduino a la pàgina web mitjançant aquest procés, com ara temperatura i humitat de l’habitació, temps de rellotge, coordenades GPS, freqüència de batec cardíac, etc.
