100% encontró este documento útil (2 votos)
836 vistas38 páginas

IoT con NodeMCU, Node-RED y MQTT

Este documento describe cómo desarrollar un proyecto IoT utilizando NodeMCU ESP8266, Node-RED y MQTT. Explica qué es MQTT y Node-RED, cómo instalar las herramientas necesarias como Node.js, Git y librerías. Luego detalla cómo programar la ESP8266 para recopilar datos de un sensor y publicarlos en MQTT, y cómo crear una interfaz gráfica en Node-RED para visualizar y controlar los datos de forma remota.

Cargado por

Pedro Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
836 vistas38 páginas

IoT con NodeMCU, Node-RED y MQTT

Este documento describe cómo desarrollar un proyecto IoT utilizando NodeMCU ESP8266, Node-RED y MQTT. Explica qué es MQTT y Node-RED, cómo instalar las herramientas necesarias como Node.js, Git y librerías. Luego detalla cómo programar la ESP8266 para recopilar datos de un sensor y publicarlos en MQTT, y cómo crear una interfaz gráfica en Node-RED para visualizar y controlar los datos de forma remota.

Cargado por

Pedro Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

Common questions

Con tecnología de IA

Visual programming tools like Node-RED are critical in modern IoT solutions as they reduce the complexity of development, allowing developers to focus on logic rather than syntax . By enabling non-coders to contribute to IoT projects, they democratize technology use and foster innovation . Node-RED's ability to handle real-time data and integrate with various services makes it a versatile tool in the IoT ecosystem .

To establish a functional interface using Node-RED Dashboard, it is necessary to configure input events like mqtt in nodes and ensure messages are correctly parsed through msg.payload . Creating and organizing tabs and groups helps structure the interface, while configuring widgets such as gauges and charts provides real-time data visualization . Initial setup involves managing the palette to add necessary nodes and establishing a connection with the MQTT broker .

Integrating IoT with Node-RED and MQTT in smart home systems allows for automated control and monitoring of home devices such as lights, thermostats, and security systems . Node-RED can orchestrate complex workflows, reacting to sensor data to adjust environmental controls or trigger alerts . MQTT enables efficient device communication with minimal bandwidth use, allowing for scalable and responsive smart home environments capable of learning user habits and preferences .

Node-RED facilitates IoT project development by providing a visual programming interface that simplifies the process of connecting devices, APIs, and online services without writing code . It offers a real-time data management framework that is pivotal in Industry 4.0 and AI systems . Node-RED's Dashboard feature allows for the easy visualization of sensor data .

Challenges in integrating NodeMCU ESP8266 with MQTT include maintaining stable network connectivity and handling reconnection logic when connections drop . These can be addressed by implementing robust reconnection mechanisms and careful handling of WiFi configuration settings . Additionally, ensuring MQTT broker configurations like QoS settings and authentication help maintain the integrity and security of the communication .

MQTT can be integrated with Node-RED by setting up mqtt input nodes to receive data published to topics by IoT devices . The data can then be visualized or further processed within Node-RED via its palette of functions and nodes, such as switches and dashboards for real-time monitoring . This integration is seamless due to Node-RED's compatibility with MQTT, leveraging the protocol's lightweight nature for efficient data handling .

In an IoT application, Node-RED serves as the central platform for orchestrating communication between devices and visualizing data . MQTT acts as the communication protocol, enabling lightweight data exchange between the NodeMCU ESP8266 and Node-RED . The ESP8266 collects and sends data to the MQTT broker, which Node-RED then subscribes to in order to process and display the information . The integration allows for real-time monitoring and control of IoT systems .

NodeMCU ESP8266 plays a key role in IoT projects as a microcontroller with built-in WiFi capabilities, allowing it to connect to a network and communicate with servers . The setup involves programming it using Arduino IDE with specific libraries such as ESP8266WiFi and PubSubClient for MQTT communication . It's important to correctly configure network credentials and ensure reconnection mechanisms are in place to handle connectivity issues .

The selection of ports in MQTT communications is critical for security, with ports 1883 being the default and 8883 used for secure communications over TLS . By opting for port 8883, MQTT transactions are encrypted, protecting data from eavesdropping and man-in-the-middle attacks, which is essential in IoT systems where sensitive data may be transmitted . Proper port configuration helps mitigate unauthorized access and enhances overall security.

MQTT is advantageous for IoT applications because it is lightweight and simple, making it suitable for devices with limitations in power, consumption, and bandwidth . Furthermore, MQTT allows a persistent TCP/IP connection, which is efficient for IoT communication as it maintains state over longer periods without needing to continually reconnect .

También podría gustarte