Páginas

Mostrando las entradas con la etiqueta Node red mqtt. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Node red mqtt. Mostrar todas las entradas

miércoles, 9 de noviembre de 2016

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.



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
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

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



Conexion ESP8266 








Donde Comprar ?

Descargas:
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
node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube

sábado, 5 de noviembre de 2016

Instalacion de Mosquitto Broker MQTT en lubuntu (Ubuntu) linux

Que es MQTT ?
En pocas palabras MQTT es un protocolo TCP/IP de mensajeria ligera, su modelo es publicacion - suscriptor requiere un intermediario de mensajes o "Broker" el cual se encarga de direccionar a los destinatarios mediante un topico "topic" en comun.
se considera a Andrew James Stanford-Clark  como autor de este protocolo.
Mas informacion MQTT Wikipedia.
Pagina Oficial: mqtt.org

Aplicacion
Considero que este protocolo es muy practico y actualmente es implementado en aplicaciones IoT y M2M "machine-to-machine ", campo de aplicación en este caso seria el monitoreo y control envio de datos entre servidores, sensores  y actuadores.

Tutoriales Anteriores Recomendados
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 


Arquitectura Protocolo MQTT
Broker Mosquitto MQTT
Eclipse mosquitto ™  es open source, es un intermediario  de mensajes o "Broker" este intermediario permite la conexión de dispositivos MQTT.
Pagina Oficial: mosquitto.org

Instalacion de Mosquitto Broker MQTT en lubuntu (Ubuntu) linux

Para conectar dispositivos MQTT con Node Red yo utilizo mosquitto como Broker, este es un complemento extra a Node .red, en el siguiente tutorial indicare su instalación.

Ingresar al terminal de comando de lubuntu como root.

Agregar repositorios mosquitto dev
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa 

Actualizar repositorios linux
sudo apt-get update

Instalar mosquitto broker
sudo apt-get install mosquitto

Instalar librerias de desarrollo
sudo apt-get install libmosquitto-dev

Instalar cliente MQTT
sudo apt-get install mosquitto-clients

Verificar que mosquitto esta corriendo
sudo service mosquitto status

Listo a divertirse...





Pruebas de cliente Mosquitto MQTT  en lubuntu (Ubuntu) linux

Suscriptor 
Nuestro cliente se suscruibira al tema o topico (Topic) "Sensor_MQTT" es decir que se recibiran todos los mensajes publicados asociados a este tema.

mosquitto_sub -h localhost -t "Sensor_MQTT" -v

Publicador

Nuestro cliente publicara el mensaje "Error_Sensor" a travez del topico (Topic) "Alert_MQTT"


mosquitto_pub -h localhost -t "Alert_MQTT" -m "Error_Sensor"

Listo a divertirse...







Refencias
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 

node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube