Agregue WiFi a Arduino UNO
¡Conecte su mincrocontrolador a Internet agregando el módulo WiFi ESP8266!
El módulo Wifi ESP8266 es una red WiFi completa donde puede conectarse fácilmente como un adaptador Wi-Fi en servicio, interfaz de acceso inalámbrico a Internet a cualquier diseño basado en microcontrolador en su conectividad simple a través de la comunicación serial o la interfaz UART.
Agregar este módulo a su Arduino UNO lo abrirá a más y emocionantes proyectos
Paso 1: construir circuito


Conecte los pines más descritos en la tabla de pines adjunta
Sigue estos pasos.
- conecte el cable rojo a VIN (3.3V) a la alimentación de + 3.3V del microcontrolador.
- conecte el cable negro a la tierra.
- conecte el cable verde al TX del módulo Wifi y el microcontrolador
- conecte el wite amarillo al RX del módulo wifi y el microcontrolador
Sobre el circuito
ESP8266 está estrictamente alimentado solo a 3.3 V. Más que eso destruirá el módulo.
IMPORTANTE ¡no use voltajes de más de 3.3V!Conecte el VIN a 3.3v para encender y también el pin ENABLE para habilitar el módulo.
TX está conectado a RX, lo que significa que lo que queramos transmitir en ESP8266 lo recibirá Arduino UNO. Y viceversa para RX a TX. Al construir este circuito, ahora estamos listos para iniciar WIFI con Arduino UNO.
Paso 2: hablar con el módulo


La comunicación con ESP8266 es a través del comando de atención o los comandos AT.
Consulte la tabla de comandos AT adjunta para revisar los códigos.
Configurando tu tablero
1. Cargue la muestra de boceto adjunta aquí a su Arduino UNO.
2. Descarga Telnet Client para Android
3. Conéctese a su ESP8266 Wifi
4. Una vez conectado, obtenga la dirección IP
5. Abra el cliente Telnet en el teléfono Android.
6. cree la conexión haciendo clic en conectar, Agregar IP y el puerto 80.
Una vez conectado, envíe la solicitud escribiendo:
esp8266:
O encienda el LED incorporado usando el comando
LLEVADO EN
O apague el LED incorporado usando el comando
LLEVAR AFUERA
O solo di
HOLA
Archivos adjuntos
esp8266Sample.ino Descargar
Paso 3: sobre el código
Toda nuestra solicitud será leída y analizada en la función loop ()
if (wifiSerial.available ()> 0) {
Mensaje de cadena = readWifiSerialMessage (); if (find (message, "esp8266:")) {String result = sendToWifi (message.substring (8, message.length ()), responseTime, DEBUG); if (find (resultado, "OK")) sendData ("\ n" + resultado); de lo contrario sendData ("\ nErrRead"); // En el comando CÓDIGO DE ERROR para la instrucción de ejecución fallida} else if (find (message, "HELLO")) {// recibe HELLO de wifi sendData ("\\ nHI!"); // arduino dice HI} else if (find (message, "LEDON")) {digitalWrite (13, HIGH); } else if (find (mensaje, "LEDOFF")) {digitalWrite (13, BAJO); } else {sendData ("\ nErrRead"); // Comando CÓDIGO DE ERROR para NO PUEDE LEER}}
Si desea comunicarse con Arduino UNO o preguntar algo, simplemente agregue su condición
if (find (mensaje, "")) {
// algo que hacer aquí}
Agregué alguna función para comunicarse con ESP8266.
/ *
* Nombre: sendData
* Descripción: Función utilizada para enviar cadenas al cliente tcp usando cipsend * Parámetros: * Devuelve: void * / void sendData (String str) {String len = ""; len + = str.length (); sendToWifi ("AT + CIPSEND = 0, " + len, responseTime, DEBUG); retraso (100); sendToWifi (str, responseTime, DEBUG); retraso (100); sendToWifi ("AT + CIPCLOSE = 5", responseTime, DEBUG); }/ * * Nombre: find * Descripción: Función utilizada para unir dos cadenas * Parámetros: * Devuelve: verdadero si coincide con otro falso * / boolean find (String string, String value) {if (string.indexOf (value)> = 0) volver verdadero; falso retorno; }
/ * * Nombre: readSerialMessage * Descripción: Función utilizada para leer datos de Arduino Serial. * Parámetros: * Devuelve: La respuesta del Arduino (si hay una respuesta) * / String readSerialMessage () {valor de char [100]; int index_count = 0; while (Serial.available ()> 0) {value [index_count] = Serial.read (); index_count ++; valor [index_count] = '\ 0'; // Nulo termina la cadena} String str (value); str.trim (); volver str; }
/ * * Nombre: readWifiSerialMessage * Descripción: Función utilizada para leer datos de ESP8266 Serial. * Parámetros: * Devuelve: La respuesta del esp8266 (si hay una respuesta) * / String readWifiSerialMessage () {valor de char [100]; int index_count = 0; while (wifiSerial.available ()> 0) {value [index_count] = wifiSerial.read (); index_count ++; valor [index_count] = '\ 0'; // Nulo termina la cadena} String str (value); str.trim (); volver str; }
/ * * Nombre: sendToWifi * Descripción: Función utilizada para enviar datos a ESP8266. * Parámetros: comando: los datos / comando a enviar; tiempo de espera: el tiempo de espera de una respuesta; debug - print to Serial window? (true = yes, false = no) * Devuelve: La respuesta del esp8266 (si hay una respuesta) * / String sendToWifi (comando String, const int timeout, boolean debug) {String response = ""; wifiSerial.println (comando); // envía el carácter de lectura al esp8266 long int time = millis (); while ((time + timeout)> millis ()) {while (wifiSerial.available ()) {// El esp tiene datos para mostrar su salida en la ventana serial char c = wifiSerial.read (); // lee el siguiente personaje. respuesta + = c; }} if (debug) {Serial.println (respuesta); } respuesta de retorno; }
/ * * Nombre: sendToUNO * Descripción: Función utilizada para enviar datos a UNO. * Parámetros: comando: los datos / comando a enviar; tiempo de espera: el tiempo de espera de una respuesta; debug - print to Serial window? (true = yes, false = no) * Devuelve: La respuesta de UNO (si hay una respuesta) * / String sendToUno (comando String, const int timeout, boolean debug) {String response = ""; Serial.println (comando); // envía el carácter de lectura al esp8266 long int time = millis (); while ((time + timeout)> millis ()) {while (Serial.available ()) {// El esp tiene datos para mostrar su salida en la ventana serial char c = Serial.read (); // lee el siguiente personaje. respuesta + = c; }} if (debug) {Serial.println (respuesta); } respuesta de retorno; }
¡Eso es! Ahora que ha aprendido a comunicarse con ESP8266, puede explorar más proyectos de Internet de las cosas. ¡Maximice la potencia de este módulo WiFI y sea un Maker !.
Siéntase libre de agregar revisiones en mi repositorio de Github