¿Quieres aprender a enviar datos desde un Arduino al ESP8266 a través del puerto serie? En este artículo te explicamos paso a paso cómo lograrlo de manera sencilla y eficiente. Descubre todas las posibilidades que se abren al conectar estos dos dispositivos y comienza a experimentar con la transmisión de datos de forma inalámbrica. ¡No te lo pierdas!
En este tutorial aprenderá cómo enviar datos desde un Arduino al ESP8266 mediante comunicación serie.
Antes de continuar leyendo este proyecto, complete los siguientes tutoriales:
- Comenzando con el ESP8266
- Cómo flashear tu ESP8266 con NodeMCU
- Cómo realizar un cambio de nivel de 5V a 3,3V
Si te gusta el módulo ESP WiFi y quieres crear más proyectos, puedes descargar mi libro electrónico titulado “Home Automation with ESP8266” aquí. ¡Vamos a empezar!
Mire el vídeo de demostración a continuación
Lista de artículos
Aquí está el hardware que necesita para completar este ejemplo de tutorial:
- 1 ESP8266 – leer Las mejores placas de desarrollo Wi-Fi ESP8266
- Arduino UNO – leer Los mejores kits de inicio de Arduino
- 1x programador FTDI
- 1x placa de pruebas
- 1xLED
- 1x resistencia de 220 ohmios
- 1x resistencia de 1K ohmios
- 1x resistencia de 2k ohmios
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Subiendo tu boceto de Arduino
El boceto de Arduino para este tutorial es muy simple.
Inicias una comunicación serial en configuración() Funciona con una velocidad de baudios de 9600. Luego en el Cinta() La función emite «¡HI!». continuamente cada 1 segundo (este mensaje será recibido más tarde por su ESP).
Copie el siguiente boceto en su IDE de Arduino y cárguelo en su placa Arduino.
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
// Send Data From Arduino to ESP8266 via Serial @ baud rate 9600
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("HI!");
delay(1000);
}
Ahora, cuando abra su monitor serie Arduino con una velocidad de baudios de 9600, verá el mensaje «¡Hola!» en su ventana. cada 1 segundo.
Diagramas de cableado (programador FTDI de 3,3 V)
Después de actualizar su ESP8266 con NodeMCU, siga los siguientes esquemas para establecer comunicación en serie entre su programador FTDI y su ESP8266 y cargar el código.
Descargue el IDE de ESPlorer
Recomiendo usar ESPlorer IDE, un programa creado por 4refr0nt para crear y guardar archivos Lua en su ESP8266. Siga estas instrucciones para descargar e instalar ESPlorer:
- haga clic aquí para descargar ESPlorer
- Descomprime esta carpeta
- Ir a la carpeta principal
- Ejecute ESPlorer.jar
- Abra ESPlorer (como se muestra en la imagen a continuación).
Escribe tu script ESP8266
Copie y pegue el siguiente código en la ventana ESPlorer IDE.
-- Rui Santos
-- Complete project details at https://randomnerdtutorials.com
ledOn = 0
pin=4
gpio.mode(pin,gpio.OUTPUT)
uart.on("data", 3,
function(data)
print("Received from Arduino:", data)
if data=="HI!" then
if ledOn==0 then
ledOn = 1
gpio.write(pin,gpio.HIGH)
print("LED On")
else
ledOn = 0
gpio.write(pin,gpio.LOW)
print("LED Off")
end
end
end, 0)
Resumen: El ESP está configurado para escuchar comunicaciones en serie. Cada vez que se muestra la cadena «¡HI!». Una velocidad de 9600 baudios enciende o apaga GPIO 2.
Subiendo tu guión
Cuando abres el IDE de ESPlorer, deberías ver una ventana similar a la imagen anterior. Siga estas instrucciones para enviar comandos a su ESP8266:
- Conecte su programador FTDI a su computadora
- Establecer la ruta incorrecta a 9600
- Seleccione el puerto de su programador FTDI (por ejemplo, COM3)
- Presione Abrir/Cerrar
- Seleccione la pestaña NodeMCU+MicroPtyhon
- Copie su script Lua en ESPlorer
Luego simplemente haga clic en el botón Guardar en ESP y guarde su archivo con el nombre «init.lua». Todo lo que le preocupa o necesita cambiar está resaltado en el cuadro rojo en la imagen a continuación.
Circuito final
Siga los siguientes esquemas para completar este tutorial.
Nota: Utilizo un divisor de voltaje para cambiar la señal TX del Arduino de 5 V a 3,3 V. Esto funciona bien a velocidades de baudios bajas, pero es posible que no funcione a velocidades de baudios más altas. Para obtener más información sobre cómo reducir el voltaje de la señal, consulte esta publicación de blog.
demostración
Ahora su LED debería parpadear cada segundo. Esto significa que su Arduino envía la cadena «HI» y su ESP recibe estos datos. Respecto El video al comienzo de esta publicación para una demostración en vivo.
Ahora, en lugar de enviar una cadena que diga «¡Hola!», puedes conectar sensores a tu Arduino y enviar esos datos a tu ESP. Posteriormente podrás crear un servidor web que muestre estos datos.
Sigue leyendo…
Quizás también te interese probar alguno de estos tutoriales:
- Cómo hacer que dos ESP8266 hablen
- Enchufes controlados remotamente ESP8266
- Publicar un tweet con el ESP8266
¿Tiene usted alguna pregunta? ¡Deja un comentario a continuación!
Gracias por leer. Si te gusta esta publicación, es posible que también te gusten mis próximas. Así que por favor apóyame suscribiéndote a mi blog.
Envío de datos desde un Arduino a través del puerto serie al ESP8266
En este tutorial, aprenderás cómo enviar datos desde un Arduino al ESP8266 a través de comunicación serial.
Antes de continuar con este proyecto, por favor completa los siguientes tutoriales:
- Cómo empezar con el ESP8266
- Cómo flashear tu ESP8266 con NodeMCU
- Cómo hacer el cambio de nivel de 5V a 3.3V
Si te gusta el módulo WiFi ESP y quieres construir más proyectos, puedes descargar mi eBook llamado «Automatización del hogar usando ESP8266» aquí. ¡Empecemos!
Lista de componentes
Aquí está el hardware que necesitas para completar este ejemplo de tutorial:
- 1x ESP8266
- Arduino UNO
- 1x Programador FTDI
- 1x Protoboard
- 1x LED
- 1x Resistencia de 220 Ohmios
- 1x Resistencia de 1K Ohmios
- 1x Resistencia de 2K Ohmios
Puedes encontrar todas las partes para tus proyectos al mejor precio en MakerAdvisor.com/tools.
Subir tu sketch de Arduino
El sketch de Arduino para este tutorial es muy simple. Comienza la comunicación serial en la función setup() a una velocidad de baudios de 9600. Luego, en la función loop(), imprime «¡HI!» continuamente cada 1 segundo (ese mensaje será recibido por tu ESP más tarde).
Copia el sketch a continuación en tu Arduino IDE y súbelo a tu placa Arduino
/* * Rui Santos * Detalles completos del proyecto en https://randomnerdtutorials.com */ // Envía datos desde Arduino a ESP8266 vía Serial @ velocidad de baudios 9600 void setup() { Serial.begin(9600); } void loop() { Serial.print("HI!"); delay(1000); }
Ahora, si abres el monitor serial de Arduino a una velocidad de baudios de 9600, verás un mensaje apareciendo en la ventana diciendo «¡HI!» cada 1 segundo.
Esquemático (Programador FTDI 3.3V)
Teniendo tu ESP8266 flasheado con NodeMCU, sigue el siguiente esquemático para establecer una comunicación serial entre tu programador FTDI y tu ESP8266 para subir algo de código.
Descargando ESPlorer IDE
Recomiendo usar el IDE ESPlorer, que es un programa creado por 4refr0nt para crear y guardar archivos Lua en tu ESP8266. Sigue estas instrucciones para descargar e instalar ESPlorer:
- Haz clic aquí para descargar ESPlorer
- Descomprime esa carpeta
- Ve a la carpeta principal
- Ejecuta ESPlorer.jar
- Abre ESPlorer
Escribiendo tu script ESP8266
Copia y pega el siguiente código en la ventana del IDE ESPlorer:
-- Rui Santos -- Detalles completos del proyecto en https://randomnerdtutorials.com ledOn = 0 pin=4 gpio.mode(pin,gpio.OUTPUT) uart.on("data", 3, function(data) print("Recibido desde Arduino:", data) if data=="HI!" then if ledOn==0 then ledOn = 1 gpio.write(pin,gpio.HIGH) print("LED Encendido") else ledOn = 0 gpio.write(pin,gpio.LOW) print("LED Apagado") end end end, 0)
Resumen: El ESP está configurado para escuchar comunicaciones seriales. Cada vez que recibe el string «HI!» a una velocidad de 9600 baudios, encenderá o apagará el GPIO 2.
Subir tu script
Cuando abras el IDE ESPlorer, deberías ver una ventana similar a la anterior. Sigue estas instrucciones para enviar comandos a tu ESP8266:
- Conecta tu programador FTDI a tu computadora
- Configura la velocidad de baudios como 9600
- Selecciona el puerto de tu programador FTDI (COM3, por ejemplo)
- Presiona Abrir/Cerrar
- Selecciona la pestaña NodeMCU+MicroPtyhon
- Copia el script Lua en ESPlorer
Luego, simplemente haz clic en el botón Guardar en ESP y guarda tu archivo con el nombre «init.lua». Todo lo que necesitas preocuparte o cambiar está resaltado en el cuadro rojo en la siguiente imagen.
Circuito final
Sigue el siguiente esquemático para completar este tutorial.
Nota: Estoy utilizando un divisor de voltaje para cambiar la señal TX del Arduino de 5V a 3.3V. Esto funciona bien para velocidades de baudios lentas, pero puede no funcionar en velocidades de baudios más rápidas. Lee esta publicación en el blog para más información sobre bajar el voltaje de las señales.
¡Demostración!
Ahora tu LED debería estar parpadeando cada segundo. Esto significa que tu Arduino está enviando el string «HI» y tu ESP está recibiendo esos datos. Mira el video al principio de esta publicación para una demostración en vivo.
Ahora, en lugar de enviar un string que diga solo «¡HI!», puedes conectar sensores a tu Arduino y enviar esos datos a tu ESP en su lugar. Más tarde puedes construir un servidor web que muestre esos datos.
¿Tienes alguna pregunta? ¡Deja un comentario abajo!
Gracias por leer. Si te gustó esta publicación, probablemente te gustarán mis próximas, así que por favor apóyame suscribiéndote a mi blog.