Páginas

sábado, 12 de noviembre de 2016

Tutorial ESP8266 Control Servo Node-RED MQTT (Mosquitto) IoT #2



En esta oportunidad se ha realizado la integracion de ESP8266 y la plataforma Node-RED integrando un actuador en este caso un servo controlado por PWM con giro de 0  a 180 grados.
Desde un HMI o SCADA Web creador en Node-Red-Dashboard utilizando como base el Protocolo MQTT y la libreria  pubsubclient convirtiendo el ESP8266 en Cliente MQTT.



Nota: Para realizar correctamente este tutorial debe realizar los siguientes tutoriales.
Tutoriales Anteriores Recomendados
Requerido Programar ESP8266 con Arduino IDE
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: Prueba  ESP8266 y Node-RED MQTT  (Mosquitto)  # 1


Arduino IDE 
Se ha configurado el modulo ESP8266 como cliente MQTT, como suscriptor del topico "servo", el ESP8266 recibira un valor de 0 a 100% y lo convertira de 0 a 180 grados para el control del servo via PWM por el GPIO 02. 


Mosquitto MQTT Broker
Previamente se ha instalado en un equipo con lubuntu (Ubuntu) Linux, el servidor Broker MQTT el cual realiza la gestion de mensajes en la red, se ha utilizado Mosquitto en este caso.  

Node-Red
Se ha creado una secuencia de nodos para envio de datos desde el Dashboard.

Node-RED-Dashboard

Vista Tablet






Materiales 
1 ESP8266 01
1 Regulador LDV33CV  5 a 3.3V
1 Chip FTDI Serial
1 Servo  Mystery control por PWM

Conexiones



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

Refencias
Requerido Programar ESP8266 con Arduino IDE
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: Prueba  ESP8266 y Node-RED MQTT  (Mosquitto)  # 1
node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube



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

jueves, 27 de octubre de 2016

Instalacion Node Red dashboard



Node Red Dashboard
Node red tiene un dashboard o tablero de instrumentos para crear y visualizar dashboards para interactuar con los dispositivos del internet de las cosas.
Existio una version anterior llamada a nodo-red-contrib-ui  la cual fue remplazada por node-red-dashboard creada por Dave Conway-Jones(dceejay) gracias por su gran aporte.

En este caso realizaremos la instalación de este complemento a nuestro Node-red previamente instalado lubuntu (Ubuntu), en próximos tutoriales integraremos dispositivos ya utilizados anteriormente como Arduino y ESP8266.
.
Tutoriales Anteriores
Tutorial 1: Instalacion de lubuntu ubuntu
Tutorial 2: Instalacion de Node Red

Github
github.com/node-red/node-red-dashboard

Instalación para Dashboard desarrolladores
Ingresar a carpeta node-red
cd ~\.node-red\node_modules

 copiar repositorios desde github
git clone https://github.com/node-red/node-red-dashboard.git

ingresar en carpeta node-red-dashboard
cd node-red-dashboard

construir aplicacion
npm install

Volver a carpeta node-red
cd ..

 ejecutar node-red
node red


Widgets disponibles para Dashboard


Ejemplo  
Organizacion y Diseño de Dashboards
La pestaña dashboard (Tabs) permite organizar nuestro dashboard por Pestañas (Tabs) y grupos (Groups) dado que no tiene una herramienta de diseño propia, pero considero que esta manera muy practica para diseñar sin preocuparnos por la compatibilidad de diseño en las pantallas de diferentes resoluciones en  dispositivos como smartphones pc y tablets



Visualizacion desde PC


Visualización Tablet  7"


Visualización Smatphone 4"




Video Prueba Completa
Instalar node-red-dasboard  




Listo a divertirse...

Refencias
Tutorial 1: Instalacion de lubuntu ubuntu
Tutorial 2: Instalacion de Node Red
node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube








miércoles, 26 de octubre de 2016

Instalacion nodo Modbus TCP en Node red


En la busqueda de protocolos de comunicación acoplables en Node-red he encontrado gracias al desarrollo colaborativo una libreria o nodos para realizar la comunicacion Modbus TCP IP, en el siguiente tutorial se indicara como instalar dichos nodos en lubuntu (Ubuntu).

Tutoriales Anteriores Recomendados
Tutorial 1: Instalacion de lubuntu ubuntu
Tutorial 2: Instalacion de Node Red
Tutorial 3: Instalacion Dashboard Node Red 



Esta libreria  node-red-contrib-modbustcp fue creada por  Jason D. Harper  el tomo como base la libreria jsmodbusesta libreria permite que nuestro servidor Node-Red se configure como maestro Modbus TCP , contiene 2 nodos uno de lectura y otro de escritura.

 - your user linux -  /node-red/node_modules/
npm install node-red-contrib-modbustcp


 Lectura desde Maestro (Node red)  hacia Esclavo
 Escritura desde Maestro (Node red)  hacia Esclavo


Listo a divertirse...

Refencias
Tutorial 1: Instalacion de lubuntu ubuntu
Tutorial 2: Instalacion de Node Red
Tutorial 3: Instalacion Dashboard Node Red 
node-red-dashboard
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube






lunes, 17 de octubre de 2016

Instalacion de Plataforma Node-Red


Instalación de Plataforma Node-Red

Desde hace mucho tiempo habia querido probar esta plataforma llamada Node-red creada por IBM, fue desarrollado en nodejs, Node red es desarrollada por Nick O'Leary y Dave Conway-Jones gracias por sus aportes.
Pero que es Node-Red ?
Es una herramienta grafica de codigo abierto basada en conexión de nodos que contienen API'S y/o servicios para la comunicación y/o conexión de dispositivos para el Internet
de las cosas,  posee una interface web amigable, contiene una gran variedad de funciones IoT básicas y complejas, también existe una version online de node red llamada IBM Bluemix .
Existen gran variedad de tutoriales para instalar Node-red en un servidor local, pero dichos tutoriales aunque muy completos no me funcionaron correctamente, he dicidido recopilar los pasos para instalar Node-red en Linux, en este caso Lubuntu (Ubuntu) espero que sea de su agrado esta guía.
Aplicaciones
No se requiere ser un gran programador para utilizar Node-Red, aunque su lenguaje nativo es javascript, con unos cuantos tutoriales sera muy facil realizar aplicaciones en  Arduino o ESP8266 u otras plataformas.
Actualmente instalan Node-red en Raspberry pi, excelente, aunque dado que realizare pruebas he decidio instalarlo en Lubuntu (Linux) por robustes de hardware.

Tutorial Instalar lubuntu desde cero


Para la realización de pruebas he instalado previamente una maquina virtual con lubuntu, a traves del cliente SSH putty equivalente a un terminal de comando.

Iniciemos con la instalacion  Nodejs y Node-red

Actualizacion de repositorios
sudo apt-get update

instalar nodejs.
sudo apt-get install node.js -y
sudo apt-get install nodejs-legacy

instalar git
sudo apt-get install git -y

clonar repositorio con codigo fuente Node-Red en github
git clone https://github.com/node-red/node-red.git

ingresar carpeta node-red
cd node-red

instalar npm
sudo apt-get install npm -y

instalar dependencias de Node-Red
npm install

carpeta superior
cd ..

Instalar grunt-cli a nivel global
sudo npm install -g grunt-cli

Ingresar carpeta node-red
cd node-red

Generar y ejecutar aplicacion Node-red
grunt build  
 node red 



Listo a divertirse.....


Video Prueba Completa





Refencias
Tutorial Instalar lubuntu desde cero
Bluemix cloud
Nodered.org
github.com/node-red
Nodejs.org

Mas Información:

Canal Youtube
PDAControl




Instalar Lubuntu (Ubuntu) desde Cero



He decidido crear en mi pc de escritorio una maquina virtual en Virtualbox  con Lubuntu (Linux) combinación entre LXDE Ubuntu, la finalidad de esta maquina virtual es realizar pruebas en la Plataforma IoT Node-Red para interconexion de dispositivos como Arduino y ESP8266 entre otras.
Paginas oficiales lubuntu.net & lubuntu.me



Virtualbox esta instalado  sobre Windows,descargaremos la ultima version de lubuntu en este caso lubuntu-14.04.5-desktop-i386.iso para su posterior instalación.
Arquitectura



Aclarando que actual y comúnmente se instala Node-Red en la plataforma Raspberry pi,un uso muy practico y excelente para este gran dispositivo, pero he decidio virtualizar Lubuntu linux por practicidad, ligereza y estabilidad de hardware, tambien existen otras plataformas actuales de virtualizacion excelentes como docker  entre otras, espero que este tutorial se tome como introduccion a los que no conecen linux y un recordatorio a los ya conocedores de este poderoso sistema operativo y.. a divertirse.
Tutorial: Instalar Node red desde cero





Video Completo



Ventajas en este caso
-Restauración rapida de copias de imagen de virtualbox en caso de errores.
-Tamaño de imagen de virtualbox 4GB aprox
-Estabilidad de Hardware

Referencias

Mas Información:

Canal Youtube
PDAControl