- Componenti richiesti:
- Collegamenti del circuito:
- Spiegazione di lavoro:
- Passaggi per la programmazione:
La comunicazione wireless tra dispositivi e moduli elettronici è molto importante, per renderli "adatti" al mondo dell'Internet delle cose. Il protocollo HTTP e il linguaggio HTML hanno reso possibile il trasferimento dei dati ovunque nel mondo, tramite il web. Abbiamo già coperto alcuni progetti che utilizzano il Wi-Fi con Arduino, dai un'occhiata a Come iniziare:
- Invio di e-mail utilizzando Arduino e il modulo WiFi ESP8266
- Robot controllato tramite WiFi che utilizza Arduino
- Controllo del LED RGB tramite Arduino e Wi-Fi
In questo tutorial, stiamo costruendo un programma per inviare dati al Web utilizzando Arduino e il modulo Wi-Fi. Per questo abbiamo prima bisogno di un indirizzo IP del server globale o locale, qui per semplicità e scopo dimostrativo, stiamo usando il server locale.
Componenti richiesti:
- Arduino UNO
- Modulo Wi-Fi ESP8266
- Cavo USB
- Cavi di collegamento
- Il computer portatile
- Alimentazione elettrica
Modulo Wi-Fi ESP8266:
Collegamenti del circuito:
Di seguito è riportato lo schema del circuito per "Invia dati da Arduino a Web". Abbiamo principalmente bisogno di un modulo Wi-Fi Arduino e ESP8266. I pin Vcc e GND di ESP8266 sono collegati direttamente a 3.3V e GND di Arduino e CH_PD è anche collegato a 3.3V. I pin Tx e Rx di ESP8266 sono collegati direttamente ai pin 2 e 3 di Arduino. La libreria seriale software viene utilizzata per consentire la comunicazione seriale sui pin 2 e 3 di Arduino. Abbiamo già trattato in dettaglio l'interfacciamento del modulo Wi-Fi ESP8266 con Arduino.
Usando la Software Serial Library qui, abbiamo consentito la comunicazione seriale sui pin 2 e 3 e li abbiamo resi rispettivamente Rx e Tx. Per impostazione predefinita, i Pin 0 e 1 di Arduino vengono utilizzati per la comunicazione seriale ma utilizzando la libreria SoftwareSerial, possiamo consentire la comunicazione seriale su altri pin digitali di Arduino.
Nota: per guardare la risposta di ESP8266 sul monitor seriale, aprire Serial Monitor di Arduino IDE.
Spiegazione di lavoro:
Prima di tutto dobbiamo collegare il nostro modulo Wi-Fi al router Wi-Fi per la connettività di rete. Quindi configureremo il server locale, invieremo i dati al Web e infine chiuderemo la connessione. Questo processo e i comandi sono stati spiegati nei passaggi seguenti:
1. Per prima cosa dobbiamo testare il modulo Wi-Fi inviando il comando AT , verrà ripristinata una risposta contenente OK .
2. Dopodiché, dobbiamo selezionare la modalità usando il comando AT + CWMODE = mode_id , abbiamo usato Mode id = 3. ID modalità:
1 = modalità stazione (client)
2 = modalità AP (host)
3 = modalità AP + stazione (Sì, ESP8266 ha una modalità doppia!)
3. Ora dobbiamo disconnettere il nostro modulo Wi-Fi dalla rete Wi-Fi precedentemente connessa, utilizzando il comando AT + CWQAP, poiché ESP8266 è connesso automaticamente a qualsiasi rete Wi-Fi precedentemente disponibile
4. Successivamente, l'utente può ripristinare il modulo con il comando AT + RST . Questo passaggio è facoltativo.
5. Ora dobbiamo connettere ESP8266 al router Wi-Fi usando il comando dato
6. Ora ottieni l'indirizzo IP usando il comando dato:
Restituirà un indirizzo IP.
7. Abilitare ora la modalità multiplex utilizzando AT + CIPMUX = 1 (1 per connessione multipla e 0 per connessione singola)
8. Configurare ora ESP8266 come server utilizzando AT + CIPSERVER = 1, port_no (la porta può essere 80). Ora il tuo Wi-Fi è pronto. Qui "1" viene utilizzato per creare il server e "0" per eliminare il server.
9. Ora, utilizzando il comando fornito, l'utente può inviare i dati al server creato in locale:
Id = ID no. della connessione di trasmissione
Lunghezza = La lunghezza massima dei dati è 2 kb
10. Dopo aver inviato ID e Lunghezza al server, dobbiamo inviare dati come: Serial.println ("[email protected]");
11. Dopo aver inviato i dati dobbiamo chiudere la connessione con il comando dato:
Ora i dati sono stati trasmessi al server locale.
12. Ora digita l'indirizzo IP nella barra degli indirizzi nel browser web e premi invio. Ora l'utente può vedere i dati trasmessi sulla pagina web.
Controlla il video qui sotto per il processo completo.
Passaggi per la programmazione:
1. Includere la libreria SoftwareSerial per consentire la comunicazione seriale sui PIN 2 e 3 e dichiarare alcune variabili e stringhe.
#includere
2. Successivamente, dobbiamo definire alcune funzioni per eseguire i nostri compiti desiderati.
Nella funzione Setup () , inizializziamo la comunicazione seriale UART integrata per ESP8266 come client.begin (9600); alla velocità di trasmissione di 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("System Ready.."); }
3. Nella funzione wifi_init () , inizializziamo il modulo wifi inviando alcuni comandi come reset, set mode, connessione al router, configurazione della connessione ecc. Questi comandi sono stati spiegati anche sopra nella parte descrittiva.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Nella funzione connect_wifi () , inviamo i dati dei comandi a ESP8266 e quindi leggiamo la risposta dal modulo Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. La funzione sendwebdata () viene utilizzata per inviare dati al server locale o alla pagina 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 funzione void send () viene utilizzata per inviare stringhe di dati alla funzione sendwebdata () . Questo verrà ulteriormente inviato alla pagina web.
void Send () {webpage = "
Benvenuto in Circuit Digest
"; sendwebdata (webpage); webpage = name; webpage + = dat;…………………7. La funzione get_ip () viene utilizzata per ottenere l'indirizzo IP del server locale creato.
8. Nella funzione void loop () , inviamo istruzioni all'utente per aggiornare la pagina e controllare se il server è connesso o no. Quando l'utente aggiorna o richiede la pagina web, i dati vengono trasmessi automaticamente allo stesso indirizzo IP.
void loop () {k = 0; Serial.println ("Aggiorna la tua pagina"); mentre (k <1000)………………
Possiamo visualizzare qualsiasi dato da Arduino alla pagina Web utilizzando questo processo, come temperatura e umidità della stanza, ora dell'orologio, coordinate GPS, frequenza del battito cardiaco ecc.