Está en la página 1de 38

DESARROLLO DE IOT CON

NODEMCU ESP8266 + NODE RED


+ MQTT
AUTOR: PEDRO NEL VARGAS OCHOA
ASIGNATURA: REDES Y COMUNICACIONES INDUSTRIALES
HERRAMIENTAS A UTILIZAR:
 ¿Qué es MQTT?
El protocolo MQTT se ha convertido en uno de los principales pilares del
IoT por su sencillez y ligereza. Ambos son condicionantes importantes dado que
los dispositivos de IoT, a menudo, tienen limitaciones de potencia, consumo, y
ancho de banda.
Los clientes inician una conexión TCP/IP con el broker, el cual mantiene un
registro de los clientes conectados. Esta conexión se mantiene abierta hasta que
el cliente la finaliza. Por defecto, MQTT emplea el puerto 1883 y el 8883 cuando
funciona sobre TLS.
Para ello el cliente envía un mensaje CONNECT que contiene información
necesaria (nombre de usuario, contraseña, client-id…). El broker responde con
un mensaje CONNACK, que contiene el resultado de la conexión (aceptada,
rechazada, etc). [1]
¿Qué es NODE-RED?
Node-RED es una herramienta de programación visual. Muestra visualmente
las relaciones y funciones, y permite al usuario programar sin tener que
escribir una línea. Node-RED es un editor de flujo basado en el navegador
donde se puede añadir o eliminar nodos y conectarlos entre sí con el fin de
hacer que se comuniquen entre ellos.
Node-Red hace que el conectar los dispositivos de hardware, APIs y servicios
en línea sea más fácil que nunca. [2]
IMPORTANCIA DE NODE-RED EN IOT:
• Node-Red se ha consolidado como framework open-source para la gestión y
transformación de datos en tiempo real en entornos de Industry 4.0, IOT o
sistemas de Inteligencia Artificial entre otros. En su Dashboard nos permite
visualizar de manera gráfica los datos de sensores en tiempo real. [2]
INSTALACIÓN DE NODE JS.
 Mosca es un NodeJS MQTT Broker. Está escrito en Javascript asi que solo
necesitamos NodeJS para correrlo. Es importante tener en cuenta no instalar
versiones recientes de Node Js.
INSTALACIÓN DE GIT PARA NUESTRO SISTEMA OPERATIVO.
Es importante instalar GIT ya que utilizaremos la consola de GITBASH para
instalara MOSCA MQTT y NODE-RED.
LIBRERÍAS ESP8266.
Es importante tener instaladas las librerías en el IDE de arduino para poder programar la
NodeMCU ESP8266, ESP32, WEMOS D1 entre otras tarjetas.
DEBEMOS DESCARGAR LA LIBRERÍA “PUBLIC CLIENT” PARA
COMUNICARNOS CON MOSCA MQTT.
RUTA DE INSTALACIÓN DE LIBRERÍA “PUBSUBCLIENT” PARA
COMUNICARNOS CON MOSCA MQTT.
Es importante que al momento de descargar el ZIP de la librería debemos
descomprimir en la ruta de “Libraries” de Arduino.
EJECUTAMOS LA CONSOLA GIT-BASH.
INSTALACIÓN DE MOSCA MQTT DESDE GIT-BASH.
EJECUTAMOS MOSCA MQTT EJECUTAMOS NODE-RED
DESDE GIT-BASH DESDE GIT-BASH
MOSCA MQTT Y NODE-RED CORRECTAMENTE EJECUTADOS
EJECUTAMOS NODE-RED EN: LOCALHOST:1880
PRIMER PASO PARA REALIZAR NUESTRO PROGRAMA EN NODE-RED
Configuramos mqtt in, el cual es un evento de entrada.
Configuramos debug.
INSTALACIÓN DE DASHBOARD EN NODE-RED.
Dashboard nos permitirá realizar una interfaz gráfica en Node-Red para la
visualización de datos, nos dirigimos a Manage Palette.
INSERTAMOS EVENT Y MSG.PAYLOAD DE LA MISMA MANERA
COMO EXPLICADO ANTERIORMENTE.
CONFIGURACION BOTONO “ON” CONFIGURACION BOTON “OFF”
Creamos un Tab1 y luego creamos un Grupo done los llamaremos
“Control Led ESP8266” es importante tener en cuenta que los botones
deben encontrarse en este grupo.
AHORA CONFIGURAMOS LOS DATOS DEL SENSOR QUE VAMOS A RECIBIR
DE LA SIGUIENTE MANERA:
SELECCIONAMOS UN GAUGE Y UN CHART.
CONFIGURAMOS EL GAUGE. CONFIGURAMOS LA GRÁFICA.
PROGRAMACIÓN FINAL EN NODE RED, CON SUS RESPECTIVAS
TABLAS Y GRUPOS.

Abre Dashboard
OBTENEMOS COMO RESULTADO FINAL LA SIGUIENTE
INTERFAZ GRÁFICA.
TENEMOS LA OPCIÓN DE MODIFICAR EL TAMAÑO DE LOS GRUPOS.
PROGRAMACIÓN ESP8266 EN EL IDE DE ARDUINO.
Se utiliza la librería de ESP8266WiFi y la PubSubClient para conectarnos a una red wifi
Así mismo conectarnos a MOSCA MQTT, la dirección IP que se observa es la de nuestro
PC al conectarse al router, podemos conocerla mediante CMD con el comando “ipconfig”.
CONEXIÓN A WIFI:
Se declara una función Void la
cual será la encargada de
realizar la conexión de la tarjeta
con el router mediante Wifi.
FUNCIÓN CALLBACK PARA ENCENDER LED, TENIENDO EN CUENTA LOS
PINES DE LA NODEMCU ESP8266.
FUNCIÓN PARA RECONECTARSE MOSCA MQTT EN CASO DE
QUE EXISTA UN ERROR EN LA CONEXIÓN.
VOID SETUP:
En void SETUP declaramos el PIN 15 del NODEMCU por el cual prenderemos y
apagaremos el led, trabajaremos con una velocidad de 115200 Baudios,
ejecutamos la función void “setup_wifi” que nos permitirá conectarnos a nuestro
router, luego nos conectaremos al servidor “mqqt” por el puerto 1883 y como
última instacia invocamos la función callback.
FUNCIÓN TEMPERATURA.
En la función temperatura utilizamos un potenciometro por el pin análogo A0
donde tomamos la lectura de 0 a 1024 y realizamos una transformación que este
comprendida entre 0 a 100, que simulará los grados centigrado de un sensor de
temperatura. Mediante “client.publish” enviamos el dato por mqtt server a node-
red.
CARGAMOS EL CÓDIGO A NODEMCU ESP8266:
CIRCUITO UTILIZADO:
PRUEBA DE FUNCIONAMIENTO
IMPORTANTE A TENER EN CUENTA.

 Node-Red al ser Open Source nos permite realizar proyectos interesante de IoT con
tarjetas y módulos wifi, también nos permite conectarnos con arduino, Rasperry Pi,
Wemos, NodeMCU entre otras Tarjetas.
 Existen herramientas como UDIBOTS la cual es una manera más sencilla para
conectarnos, pero esta es de pago. Así como BLYNK la cual nos permite desarrollar
aplicaciones móviles IoT de una manera muy sencilla pero demasiado limitada.
 Otro interesante proyecto de IoT es la conexión del ESP8266 con Firebase de
google aunque este requiere más trabajo ya que para una UI gráfica debemos
programarla ya sea en frameworks como VUE JS, ANGULAR JS, etc.
 Podemos utilizar MySQL + PHP para conectarnos a ESP8266 y realizar proyectos
interesantes.
REFERENCIAS:

[1] https://www.luisllamas.es/que-es-mqtt-su-importancia-como-
protocolo-iot/

[2] https://aprendiendoarduino.wordpress.com/2020/03/05/que-es-
node-red/
Formando líderes para la construcción
de un nuevo país en paz

También podría gustarte