Aggiungi WiFi ad Arduino UNO

Collega il tuo mincrocontroller a Internet aggiungendo il modulo WiFi ESP8266!

Il modulo WiFi ESP8266 è una rete WiFi completa in cui è possibile connettersi facilmente come adattatore Wi-Fi che serve, interfaccia di accesso a Internet wireless a qualsiasi progetto basato su microcontrollore grazie alla sua semplice connettività tramite interfaccia seriale o UART.

L'aggiunta di questo modulo al tuo Arduino UNO ti aprirà a progetti più entusiasmanti

Passaggio 1: costruire il circuito

Collegare i pin più descritti nella tabella dei pin allegata

Segui questi passi.

  • collegare il filo rosso a VIN (3.3V) all'alimentazione + 3.3V del microcontrollore.
  • collegare il filo nero a terra.
  • collegare il filo verde al TX del modulo Wifi e del microcontrollore
  • collega il wite giallo all'RX del modulo wifi e del microcontrollore

A proposito del circuito

ESP8266 è alimentato rigorosamente solo a 3, 3 V. Più di questo distruggerà il modulo.

IMPORTANTE non utilizzare tensioni superiori a 3, 3 V!

Collegare il VIN a 3.3 v per accendere e anche il pin ENABLE per abilitare il modulo.

TX è collegato a RX, il che significa che tutto ciò che vogliamo trasmettere in ESP8266 riceverà da Arduino UNO. E viceversa per RX a TX. Al momento della costruzione di questo circuito, ora siamo pronti per avviare WIFI con Arduino UNO.

Passaggio 2: parlare con il modulo

La comunicazione con ESP8266 avviene tramite il comando di attenzione o i comandi AT.

Controllare la tabella dei comandi AT allegata per rivedere i codici.

Prepara la tua tavola

1. Carica l'esempio di schizzo allegato qui sul tuo Arduino UNO.

2. Scarica Telnet Client per Android

3. Connettiti al tuo ESP8266 Wifi

4. Una volta connesso, ottieni l'indirizzo IP

5. Aprire Telnet Client sul telefono Android.

6. creare una connessione facendo clic su Connetti, Aggiungi IP e porta 80.

Una volta connesso invia la richiesta digitando:

 esp8266: 

Oppure accendi il LED integrato usando il comando

 LEDON 

Oppure disattiva il LED integrato usando il comando

 LEDOFF 

O semplicemente dire

 CIAO 

allegati

  • esp8266Sample.ino Scarica

Passaggio 3: Informazioni sul codice

Tutta la nostra richiesta verrà letta e analizzata sulla funzione loop ()

if (wifiSerial.available ()> 0) {

String message = readWifiSerialMessage (); if (find (message, "esp8266:")) {Risultato stringa = sendToWifi (message.substring (8, message.length ()), responseTime, DEBUG); if (trova (risultato, "OK")) sendData ("\ n" + risultato); else sendData ("\ nErrRead"); // Al comando CODICE DI ERRORE per istruzione di esecuzione non riuscita} else if (find (message, "HELLO")) {// riceve CIAO da wifi sendData ("\\ nHI!"); // arduino dice HI} else if (find (message, "LEDON")) {digitalWrite (13, HIGH); } else if (find (message, "LEDOFF")) {digitalWrite (13, LOW); } else {sendData ("\ nErrRead"); // Comando CODICE ERRORE per IMPOSSIBILE LEGGERE}}

Se vuoi comunicare con Arduino UNO o chiedere di fare qualcosa, aggiungi la tua condizione

if (trovare (il messaggio, "")) {
// qualcosa fa qui

}

Ho aggiunto alcune funzioni per comunicare con ESP8266.

/ *
* Nome: sendData
* Descrizione: Funzione utilizzata per inviare una stringa al client tcp usando cipsend * Params: * Restituisce: void * / void sendData (String str) {String len = ""; len + = str.length (); sendToWifi ( "AT + CIPSEND = 0, " + len, ResponseTime, DEBUG); ritardo (100); sendToWifi (str, ResponseTime, DEBUG); ritardo (100); sendToWifi ( "AT + CIPCLOSE = 5", ResponseTime, DEBUG); }

/ * * Nome: find * Descrizione: Funzione utilizzata per abbinare due stringhe * Params: * Restituisce: true if match else false * / boolean find (String string, String value) {if (string.indexOf (value)> = 0) ritorno vero; restituire false; }

/ * * Nome: readSerialMessage * Descrizione: funzione utilizzata per leggere i dati da Arduino Serial. * Params: * Restituisce: la risposta di Arduino (se esiste una risposta) * / String readSerialMessage () {char value [100]; int index_count = 0; while (Serial.available ()> 0) {value [index_count] = Serial.read (); index_count ++; value [index_count] = '\ 0'; // Null termina la stringa} String str (valore); str.trim (); return str; }

/ * * Nome: readWifiSerialMessage * Descrizione: funzione utilizzata per leggere i dati dal seriale ESP8266. * Params: * Restituisce: la risposta di esp8266 (se esiste una risposta) * / String readWifiSerialMessage () {char value [100]; int index_count = 0; while (wifiSerial.available ()> 0) {value [index_count] = wifiSerial.read (); index_count ++; value [index_count] = '\ 0'; // Null termina la stringa} String str (valore); str.trim (); return str; }

/ * * Nome: sendToWifi * Descrizione: funzione utilizzata per inviare dati a ESP8266. * Params: comando - i dati / comando da inviare; timeout: il tempo di attesa per una risposta; debug - stampa nella finestra seriale? (true = yes, false = no) * Restituisce: la risposta di esp8266 (se c'è una risposta) * / String sendToWifi (comando String, timeout const int, debug booleano) {String response = ""; wifiSerial.println (comando); // invia il carattere letto a esp8266 long int time = millis (); while ((time + timeout)> millis ()) {while (wifiSerial.available ()) {// Esp ha dati in modo da visualizzare il suo output nella finestra seriale char c = wifiSerial.read (); // leggi il prossimo personaggio. risposta + = c; }} if (debug) {Serial.println (response); } risposta di ritorno; }

/ * * Nome: sendToUNO * Descrizione: funzione utilizzata per inviare dati a UNO. * Params: comando - i dati / comando da inviare; timeout: il tempo di attesa per una risposta; debug - stampa nella finestra seriale? (true = yes, false = no) * Restituisce: la risposta di UNO (se c'è una risposta) * / String sendToUno (comando String, timeout const int, debug booleano) {String response = ""; Serial.println (comando); // invia il carattere letto a esp8266 long int time = millis (); while ((time + timeout)> millis ()) {while (Serial.available ()) {// Esp ha dati in modo da visualizzare il suo output nella finestra seriale char c = Serial.read (); // leggi il prossimo personaggio. risposta + = c; }} if (debug) {Serial.println (response); } risposta di ritorno; }

Questo è tutto! Ora che hai imparato a comunicare con ESP8266, ora puoi esplorare altri progetti di Internet of Things. Massimizza la potenza di questo modulo WiFI e diventa un Maker !.
Sentiti libero di aggiungere revisioni sul mio repo github

Articoli Correlati