Los módulos ESP8266 son dispositivos potentes que pueden revolucionar la forma en que se conectan los dispositivos IoT. En este artículo, te enseñaremos cómo hacer que dos ESP8266 se comuniquen entre sí, abriendo un mundo de posibilidades para la creación de proyectos interconectados. ¡Descubre cómo lograrlo paso a paso!
En este proyecto obtendrás dos ESP8266 para comunicarse entre sí.
¿Cómo funciona? Configurará un ESP como punto de acceso (servidor) y otro ESP como estación (cliente). Luego establecen comunicación inalámbrica y el cliente envía un mensaje al servidor que dice «¡Hola mundo!»
Antes de continuar leyendo este proyecto, complete los siguientes tutoriales:
- Comenzando con el ESP8266
- Actualice ambos ESP con NodeMCU
Si te gusta ESP y quieres hacer más proyectos, puedes leer mi libro electrónico «Automatización del hogar con ESP8266» aquí. ¡Vamos a empezar!
Lista de artículos
Aquí está el hardware que necesita para completar este proyecto:
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Diagramas de cableado (programador FTDI de 3,3 V)
Los esquemas de este proyecto son muy simples. Todo lo que necesita hacer es establecer una comunicación en serie entre su programador FTDI y su ESP8266 para cargar el código. (Repita los siguientes esquemas para el cliente y el servidor).
Descargar ESPlorer
Recomiendo usar el programa ESPlorer 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 ante todo Carpeta
- Correr ESPlorer.jar. Dado que este es un programa JAVA, JAVA debe estar instalado en su computadora.
- Abrir ESPlorer
Escribiendo el script de tu servidor
No olvide que primero debe actualizar ambos ESP con el firmware NodeMCU. Copie y pegue el siguiente código en ESPlorer.
Resumen: El servidor ESP actúa como punto de acceso y tiene su propio SSID=prueba y contraseña=12345678. El servidor espera continuamente una conexión cuando se conecta exitosamente y recibe un mensaje que imprime esta cadena en el monitor serie.
-- Rui Santos
-- Complete project details at https://randomnerdtutorials.com
-- ESP8266 Server
print("ESP8266 Server")
wifi.setmode(wifi.STATIONAP);
wifi.ap.config({ssid="test",pwd="12345678"});
print("Server IP Address:",wifi.ap.getip())
sv = net.createServer(net.TCP)
sv:listen(80, function(conn)
conn:on("receive", function(conn, receivedData)
print("Received Data: " .. receivedData)
end)
conn:on("sent", function(conn)
collectgarbage()
end)
end)
Subiendo tu script Lua
Cuando abres 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
- Establezca la ruta incorrecta a 9600
- Seleccione su puerto de programación 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 necesitas considerar o cambiar está resaltado en rojo en la imagen a continuación.
Escribiendo el guión de tu cliente
Actualice su ESP con NodeMCU. Copie y pegue el siguiente código en ESPlorer. Resumen: El cliente ESP actúa como una estación y busca constantemente un punto de acceso. Cuando el cliente lo encuentra, el servidor establece comunicación y envía un mensaje de «¡Hola mundo!» cada 5 segundos.
-- Rui Santos
-- Complete project details at https://randomnerdtutorials.com
-- ESP8266 Client
print("ESP8266 Client")
wifi.sta.disconnect()
wifi.setmode(wifi.STATION)
wifi.sta.config("test","12345678") -- connecting to server
wifi.sta.connect()
print("Looking for a connection")
tmr.alarm(1, 2000, 1, function()
if(wifi.sta.getip()~=nil) then
tmr.stop(1)
print("Connected!")
print("Client IP Address:",wifi.sta.getip())
cl=net.createConnection(net.TCP, 0)
cl:connect(80,"192.168.4.1")
tmr.alarm(2, 5000, 1, function()
cl:send("Hello World!")
end)
else
print("Connecting...")
end
end)
Nota: Para cargar el código del script del cliente, siga el encabezado anterior «Cargar su script Lua».
demostración
En este proyecto, el cliente envía un mensaje «¡Hola mundo!» transmitido de forma inalámbrica al servidor. Esto es lo que debería ver en las ventanas de su terminal serie (vea la imagen a continuación).
Nota: En la ventana de la izquierda estoy usando la ventana de salida de ESPlorer. En la ventana derecha establezco comunicación serial con PuTTY.org.
¿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 apóyame suscribiéndote a mi blog y a mi página de Facebook.
Introducción
En este proyecto, aprenderás a hacer que dos ESP8266 se comuniquen entre sí. Para lograrlo, configurarás un ESP como Punto de Acceso (Servidor) y otro ESP como Estación (Cliente). Luego, establecerán una comunicación inalámbrica y el Cliente enviará un mensaje al Servidor que dice «¡Hola Mundo!».
Antes de continuar con este proyecto, por favor completa los siguientes tutoriales:
- Cómo empezar con el ESP8266
- Flash de ambos ESPs con NodeMCU
Si te gusta el ESP y quieres hacer más proyectos, puedes leer mi eBook Automatización del Hogar usando ESP8266 aquí. ¡Comencemos!
Lista de componentes
Aquí tienes el hardware que necesitas para completar este proyecto:
- ESP8266-01
- Programador FTDI
Puedes encontrar todas las partes para tus proyectos al mejor precio en MakerAdvisor.com/tools.
Esquemáticos (Programador FTDI 3.3V)
Los esquemáticos para este proyecto son muy sencillos. Solo necesitas establecer una comunicación serial entre tu programador FTDI y tu ESP8266 para subir un código.
Descargando ESPlorer
Recomiendo usar el programa ESPlorer creado por 4refr0nt para crear y guardar archivos Lua en tu ESP8266.
- Click aquí para descargar ESPlorer
- Descomprime la carpeta
- Abre el archivo ESPlorer.jar
Creando tu script de Servidor
No olvides que primero necesitas flashear ambos ESPs con el firmware de NodeMCU. Copia y pega el siguiente código en ESPlorer:
-- Código del Servidor ESP8266 aquí
Subiendo tu script Lua
Conecta tu programador FTDI a tu computadora y sigue las instrucciones en ESPlorer para enviar comandos a tu ESP8266.
Creando tu script de Cliente
Después de tener tu ESP con NodeMCU, copia y pega el código del Cliente en ESPlorer para establecer la comunicación con el Servidor.
Demostración
En este proyecto, el Cliente envía un mensaje «¡Hola Mundo!» al Servidor de forma inalámbrica. Puedes ver la comunicación en las terminales serie.
¿Tienes alguna pregunta? ¡Déjala en los comentarios!
Gracias por leer. Si te ha gustado este artículo, seguramente disfrutarás de los próximos, así que por favor apóyame suscribiéndote a mi blog y a mi Página de Facebook.
Muy útil el tutorial, gracias por compartirlo!
¡Genial! Me encantaría aprender cómo hacer que dos ESP8266 se comuniquen. ¡Gracias por proporcionar los detalles!
Interesante, voy a intentarlo en mi próximo proyecto de IoT. ¡Gracias por la info!