MyRIO MQTT


El concepto Industria 4.0 incluye la idea de llevar el Internet-Of-Things (IoT) a la industria. Nos gustaría usar el dispositivo myRIO que usamos en el laboratorio como prototipo de IoT, pero no lo podemos hacer en un tris, por un lado porque el dispositivo no viene de serie preparado y, por otro, nuestra red del laboratorio también está limitada

Pero somos testarudos, y ¡hemos demostrado que se puede hacer!

Primero, el comportamiento IoT se puede conseguir de diferentes maneras. Una de las tendencias actuales es usar el protocolo MQTT, porque se puede implementar en dispositivos muy simples y su funcionamiento es simple: Por un lado tenemos topics (lo traduciríamos como temas) que podemos crear (publish) o inscribirnos a ellos (subscribe) y esta especie de "buzón" nos sirve para leer o escribir mensajes. Si quieres saber más sobre MQTT, aquí hay un enlace bueno:

https://www.ibm.com/developerworks/ssa/library/iot-mqtt-why-good-for-iot/index.html

Para poder trabajar con MQTT, en el otro extremo necesitamos un servidor llamado broker. Todos los topics estarán en el broker. Para hacer pruebas, hemos instalado el broker de MQTT.fx en nuestro PC. Podía haber sido cualquier otro. Después de instalar MQTT.fx, tenemos que ponerlo en marcha y conectarlo (connect).

https://mqttfx.jensd.de/

LabVIEW (el lenguaje de programación principal para programar el myRIO) no anda mal en temas de comunicaciones, pero no tiene una librería estándar de MQTT. Por eso, hemos instalado una librería de la empresa daq.io. Una vez hecho esto, tenemos que seguir los siguientes pasos con el myRIO:
  • Conectarlo a una red Wifi que le dé acceso a Internet
  • Instalar en myRIO el software "HTTP client with SSL support"
  • Ponerle al usuario admin un password no vacío
  • Poner la fecha y hora del myRIO bien
  • Preparar un programa como el de la figura u otro parecido


¡Y listo! Ya lo podemos ver en marcha. En este caso, mandará ON u OFF en función del estado de un pulsador. [Debido a un error que todavía no hemos descubierto, al crear un topic nuevo casi siempre falla en la primera ejecución, pero luego va bien].