Arduino + MQTT + WiFi con módulo ESP8266

¡Por fin, ya podemos conectar nuestro Arduino via conexión WiFi y programarlo con bloques desde ArduinoBlocks!

Para la conexión WiFi utilizaremos el módulo ESP8266 serie como periférico para dotar a nuestro Arduino de una comunicación WiFi

Tenemos varias opciones para conectar el módulo WiFi a nuestra placa Arduino, voy a explicar las principales:

Opción 1: WiFi Shield basada en ESP8266  (by wangTongze)

Es la opción más sencilla y rápida, pero la conexión del módulo ESP es fija en los pines 0 y 1, por lo que hay que quitarla o desactivar la conexión moviendo los microswitchs para poder programar la placa Arduino (si no dará un error al subir el programa) y no podremos utilizar el puerto serie para comunicarnos con el PC.

Para programar Arduino: micro-switches 0 y 1 -> Off

Funcionamiento autónomo de Arduino: micro-switches 0 y 1 -> On

Normalmente viene preconfigurada con velocidad de conexión serie de 115200 baudios.

Ejemplo Arduino UNO + Shield WiFi:

 

Opción 2: Módulo ESP8266 listo para conectar!

Este módulo nos permite conectarlo fácilmente a Arduino, sólo necesitamos 4 cables: VCC, GND, RX, TX

Problema:  este módulo viene normalmente también preconfigurado a una velocidad de comunicación de 115200 baudios:

-Si lo conectamos a los pines 0,1 Arduino utilizará el puerto serie por hardware y no dará problemas, pero como en la opción 1 deberemos desconectarlo para poder subir el progama a la placa Arduino y tampoco podremos usar el puerto serie para comunicarnos con el PC

-Si lo conectamos a otros pines, se simulará una conexión serie por software y este tipo de conexión serie simulada no permite velocidades de 115200 baudios por lo que tendríamos que reconfigurar el módulo para trabajar a velocidades más bajas (9600 – 57600)

(en Arduino Mega podemos utilizar los puertos hardware 1,2 y 3 y evitamos el problema),

Ejemplo Arduino MEGA  + Módulo:

 

Opción 3: ESP-01 + Adaptador

Si ya tienes algún ESP8266 en formato ESP-01 por ahí puedes comprar este adaptador y estaríamos en un caso idéntico a la opción 2.

Ejemplo: Arduino UNO + ESP01 con adaptador

 

Opción 4: (DESACONSEJADA)

Si tienes un ESP-01 se puede adaptar manualmente para conectarlo a Arduino siguiendo este esquema:

 

Reconfiguración de la velocidad de conexión del módulo ESP8266:

Si compramos un módulo ESP8266 y queremos utilizarlo en pines distintos al 0 y 1 de Arduino UNO o Nano , podemos reconfigurar la velocidad de conexión del módulo para así evitar el problema de la comunicación de 115200  baudios.

Podemos hacerlo conectandolo con un adaptador USB-TTL al ordenador,  por ejemplo:

Desde una aplicación de consola (por ejemplo la de Arduino IDE) conectar a la velocidad actual (115200) y enviar el comando AT siguiente:

AT+UART_DEF=9600,8,1,0,0

Aparecerá la respuesta “ok” y a partir de ese momento el módulo ya funcionará siempre a 9600 baudios

 

Bueno… y una vez conectado el módulo o la shield ¿cómo funciona?

ArduinoBlocks implementa el protocolo MQTT para conectar nuestro Arduino al Internet de las cosas (IoT) de la forma más sencilla. Podemos utilizar la conexión Ethernet (con shield Ethernet standard) o la conexión WiFi

Si necesitas más información sobre MQTT consulta las siguientes entradas del blog:

http://blog.arduinoblocks.com/2018/04/30/arduino-e-internet-mediante-cable-ethernet-y-protocolo-mqtt-con-videotutorial/

http://blog.arduinoblocks.com/2017/04/28/conecta-tu-arduino-al-internet-de-las-cosas-iot/

EJEMPLO: Estación meteorológica vía WiFi

Visualización de los datos en una aplicación móvil MQTT (MQTT Dashboard):

Próximamente más ejemplos e información sobre la conectividad WiFi con ArduinoBlocks!

Compartir