Tutorial ESP8266 Control GPIO Node-RED MQTT (Mosquitto) IoT # 1

Para la integración del modulo ESP8266 con la plataforma IoT node-red se ha utilizado el protocolo MQTT, existen librerias para esp8266 como cliente MQTT en este caso he decidido utilizar la libreria pubsubclient.

Este ejemplo permitira recibir que Node red reciba datos desde el ESP8266 y permitira controlar un diodo led conectado al GPIO 02 desde un dashboard creado en Node Red Dashboard.





 

VIDEO Test Led ESP8266 MQTT Mosquitto Node Red  IoT # 1

Instalacion Node-RED

 

 

Agregar a Arduino IDE la libreria pubsubclient utilizando el buscador de librerias o descargando manualmente la libreria y guardandola en su carpeta respectiva para librerias.

 Nota: Para realizar correctamente este tutorial debe realizar los siguientes tutoriales.





Tutoriales Anteriores Recomendados

Codigo Arduino IDE

el codigo de arduino IDE realiza varios pasos pero definire los principales, conexion con Broker MQTT, funcion de publicar (enviar mensajes ) aun topico especifico y funcion de suscribir (recibir mensajes) aun topico especifico.
Nota: En la parte inferior del post Codigo arduino IDE completo

1. Parametros de Red

Configurar  parametros de red SSID y PASSWORD, se requiere tener previamente instalado un servidor MQTT Broker el cual cumple la funcion de servidor, en este caso yo utilizo Mosquitto MQTT.

const char* ssid = "##############";
const char* password = "###############";
const char* mqtt_server = "192.168.0.19";

2. Función publish («topic», mensaje) 

 client.publish("event", "hello world");

3.  Función subscribe («topic»)

la funcion  subscribe realiza unllamado a la  funcion callback para la recepcion de datos

  client.subscribe("event");

4. Funcion callback

A esta funcion ingresan 3 parametros propios de la libreria pubsubclient.h  topic, payload (carga) y tamaño, realiza la impresion del topic y el mensaje, para el encendido del diodo led realiza un barrido de payload en una posicion especifica para determinar el estado 1 o 0.

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

  // Switch on the LED if an 1 was received as first character
  if ((char)payload[0] == '0') {
     Serial.println("LOW");
    digitalWrite(2, LOW);   // Turn the LED on (Note that LOW is the voltage level
    // but actually the LED is on; this is because
    // it is acive low on the ESP-01)
  } 

 if ((char)payload[0] == '1') {
    Serial.println("HIGH");
    digitalWrite(2, HIGH);  // Turn the LED off by making the voltage HIGH
  }

}





 

Node red

1. Nodo de Recepcion de mensajes cliente MQTT  (subscribe) desde ESP8266 atravez del topic «event» y depuracion en nodo debug.
2. Creacion de 2 botones  «On» «Off» para envio de valores a nodo MQTT (publish) hacia ESP8266 topic «event»
3 . Nodo text de salida de texto para visualizar estado de diodo led.
Nota: En la parte inferior del post codigo de Importación de Nodos en Github

 

Diseño Dashboard Node red

Organizacion de Widgets en pestañas y Grupos

Visualizacion Dashboard Node red





 

VIDEO Configure Led ESP8266 MQTT Mosquitto Node Red  IoT # 2

Codigo Arduino IDE Github ESP8266 MQTT
Github Libreria pubsubclient
Codigo importacion Node red

Refencias

icstation.com
Tutorial 1: Instalacion de lubuntu ubuntu
Tutorial 2: Instalacion de Node Red
Tutorial 3: Instalacion Dashboard Node Red 
Tutorial 4: Instalacion nodo Modbus TCP en Node red 
Tutorial 5: Instalacion de Mosquitto Broker MQTT en Lubuntu
Tutorial 6: Programar ESP8266 con Arduino IDE
camara digital controlada por arduino usando modbus
node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Canal Youtube

PDAControl





 

1 Reply to “Tutorial ESP8266 Control GPIO Node-RED MQTT (Mosquitto) IoT # 1”

Deja una respuesta