Arduino Yun + Node.js + MQTT
¿Que es MQTT?
MQTT (Message Queue Telemetry Transport) es un protocolo de conectividad enfocado a M2M (machine-to-machine) y al IOT (Internet of Things) ya que se ha diseñado para ser un protocolo de mensajería extremadamente ligero basado en TCP.
Usare como Broker/Server MQTT el Servidor público http://test.mosquitto.org/
Pre-requisitos
Mosquitto se basa en varios paquetes de terceros para instalar correctamente. Lo siguiente debe ser instalado antes de Mosquitto según su documentación para Windows:- Microsoft Visual C++ 2010 Redistributables
- Link: http://www.microsoft.com/en-us/download/details.aspx?id=5555
- Instalar vcredist_x86.exe
- OpenSSL
- Link: http://slproweb.com/products/Win32OpenSSL.html
- Instalar "Win32 OpenSSL <version>"
- Utilice todos los ajustes predeterminados en el instalador
- Require de los DLLs: libeay32.dll ssleay32.dll
- pthreads
- Link: ftp://sourceware.org/pub/pthreads-win32
- No se requiere instalación para pthreads-w32-<version>-release.zip
- Require del DLLs: pthreadVC2.dll
- DLLs
Instalación:
- Instalación de Mosquitto
- Enlace http://mosquitto.org/download/
- Instalar Windows binario mosquitto- <versión> -install-win32.exe (versión nativa, Windows Vista o superior)
- Copie los siguientes archivos de la instalación de OpenSSL, C: \ OpenSSL-Win32, a la carpeta raíz de Mosquitto, C: \ Archivos de programa (x86) \ mosquitto:
- ssleay32.dll libeay32.dll
- Copie el siguiente archivo desde el archivo comprimido pthreads a la carpeta raíz Mosquitto, C: \ Archivos de programa (x86) \ mosquitto:
- pthreads-w32-<version>-release.zip\Pre-built.2\dll\x86\pthreadVC2.dll
- Instalar el npm mqtt, con el comando npm install mqtt --save.
- Instalar la librería pubsubclient para el código de Arduino.
Códigos
- Código de Node.js
var mqtt = require('mqtt') var client = mqtt.connect('mqtt://localhost:1883') client.on('connect', function () { client.subscribe('outTopic') client.publish('inTopic', 'Hello Arduino') }) client.on('message', function (topic, message,packet) { console.log(`Mensaje ${message.toString()}`) client.end() })
- Código de Arduino Yun
#include <Bridge.h> #include <BridgeClient.h> #include <PubSubClient.h> IPAddress server(192, 168, 1, 88); //Ip de Servidor donde se levanto Mosquitto BridgeClient briClient; PubSubClient client(briClient); void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recivido ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println(); client.publish("outTopic","Hello Node.js"); } void reconnect() { while (!client.connected()) { Serial.print("MQTT conectando..."); if (client.connect("")) { Serial.println("conectado !"); client.publish("outTopic","Hello Node.js"); client.subscribe("inTopic"); } else { Serial.print("fallo, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } void setup(){ Serial.begin(57600); client.setServer(server, 1883); client.setCallback(callback); Bridge.begin(); delay(1500); } void loop(){ if (!client.connected()) { reconnect(); } client.loop(); }
- Ejecutar Mosquitto
- Ir a la carpeta raíz de Mosquitto, como C: \ Archivos de programa (x86)\ mosquitto. Y ejecutar mosquitto.
- Cargar el Código a la Arduino Yun
Suscribirse a:
Enviar comentarios
(
Atom
)
No hay comentarios :
Publicar un comentario