Ahora que el IoT (Internet Of Things) está muy de moda, he decidido traeros algunas publicaciones sobre su uso práctico. Todo el mundo habla mucho estos días del Hardware, es decir, de placas de desarrollo como Rapsberry Pi o Arduino, de sensores, de LED, etc. pero la pregunta es ¿tenemos el software adecuado para su gestión? La aplicación QIoT Suite Lite nos da una respuesta adecuada a esa pregunta.
Pues bien, aprovechando que la app app QIoT Suite Lite de QNAP ha alcanzado un nivel de madurez muy bueno, en este nuevo tutorial os comento cómo convertir un servidor NAS de QNAP en centro de la gestión del IoT.
Dispositivos IoT para la aplicación QIoT Suite Lite
Lo primero que hemos de hacer es comprar una placa de desarrollo que sea compatible con QiOT Suite Lite. A día de hoy tenemos 4 posibilidades Arduino Yun, Raspberry Pi, MTK 7688(Duo) ó Intel Edison. Básicamente podremos hacer las mismas tareas pero usando lenguajes de programación distintos.
En mi caso he optado por una Raspberry Pi 3 (que ya tenía en casa) a la que he conectado un sensor de temperatura y humedad DHT11. Os recomiendo que antes de seguir leyendo, veáis este tutorial donde cuento con detalle cómo configurar correctamente la raspberry y el sensor.
Este tutorial pretende abrir una puerta que os permita no sólo usar un determinado sensor sino que os sirva para que podáis usar cualquiera y sobre todo que podamos crear el escenario domótico que mas nos convenga.
Caso de uso: Aplicación IoT para controlar la temperatura y humedad del salón con QNAP QIoT Suite Lite
Para crear una aplicación IoT que nos permita controlar la temperatura del salón de casa y asegurarnos un confort adecuado, QNAP nos propone un modelo de desarrollo en 3 pasos: Cosa Regla Control y visualización de resultados.
PASO 1: Crear las cosas y configurar sus recursos
En esta primera etapa tenemos que añadir a QIoT Suite Lite las «cosas» que vamos a emplear para nuestro escenario domótico. En mi caso usaré una Rapsberry Pi 3.
Una vez que tengamos la Raspberry Pi añadida, hemos de añadir los recursos que estarán conectados a ella y que nos permitirán, por ejemplo, saber que temperatura tenemos en todo momento en el salón de casa.
Cuando ya lo tengamos todo preparado, necesitaremos conectar desde QIoT hacia la IP que tenga asignada nuestra Raspberry Pi para asegurarnos que funciona bien. Esto es importante ya que si no, no podremos recoger los valores que esté leyendo el sensor que tengamos conectado.
La última cosa que tenemos que hacer antes de crear las reglas es elegir el protocolo (yo en mi caso he elegido mqtt) que usaremos para la comunicación entre el QNAP y la Rapsberry Pi y posteriormente descargar el fichero de conexión resourceinfo.json
del NAS para cargarlo en la Raspberry Pi.
Junto con el fichero de conexión hemos de cargar vía ssh
el código personalizado (basado en el SDK de QNAP) para que nuestro programa se ejecute correctamente en la Raspberry Pi. Este código está compuesto por la siguiente estructura de directorios.
lib
: Contiene las librerías utilizadas para la conexiónres
: Copiar el ficheroresourceinfo.json
a esta carpetassl
: Copiar la clave y los certificados SSL (MQTTS y Https)mqtt.js
: Programa principal que contiene nuestro código de ejemplopackage.json
: Configuración de dependencias
Podéis bajar mi código de ejemplo que os puede servir de guía para vuestros proyectos, adaptándolo a las necesidades que tengáis.
Una vez cargados los ficheros a la Raspberry Pi y antes de ejecutar el programa principal hemos de completar con la instalación de dos librerías que hacen falta. Para ello, ejecutaremos los siguientes comandos.
$ sudo npm install mqtt --save
$ sudo npm install coap --save
Después ya podremos ejecutar (conectados por ssh
a la Raspberry) nuestro programa principal sin problemas mediante la ejecución del correspondiente fichero nodejs, en mi caso, mqtt.js
. En este link podéis descargar un zip con el código de ejemplo que he seguido yo en el tutorial.
$ sudo node mqtt.js
Obtendremos una salida por consola como la que muestra la siguiente imagen. Como podréis comprobar el programa se ejecuta de forma infinita y no hemos de parar su ejecución para que mande datos al servidor NAS de forma continua.
PASO 2: Crear las reglas
Aquí está uno de los puntos mas importantes del tutorial. Mediante la herramienta Node-RED, crearemos los nodos asociados los elementos que queremos monitorizar. En mi caso, la Rapsberry Pi junto con el sensor de temperatura y humedad. Por defecto, QIoT Suite Lite nos crea unos nodos de ejemplo para nuestra aplicación IoT son los que se muestran a continuación y que hemos de eliminar todos.
Después crearemos un nodo QBroker de entrada que recogerá los valores leídos por la Raspberry Pi y los enviará a dos nodos QDashboard servirán para mostrar esta información en modo gráfico en un paso 3. En mi caso también he creado un nodo debug que también está conectado al nodo QBroker y sirve para enviar la información a una especie de consola de QIoT Suite Lite.
PASO 3: Visualización de resultados
Ya sólo nos quedaría la visualización de los resultados que en mi caso será de dos formas distintas. Por un lado en la herramienta Dashboard que a mi particularmente me encanta ya que los presenta en forma de relojes como podéis ver en la siguiente imagen.
También, gracias al nodo debug, podemos visualizar los datos en modo texto desde la propia herramienta de reglas. Esto es muy útil para saber si están llegando correctamente desde la Raspberry Pi hasta el servidor NAS de QNAP.
Una vez que tenemos los datos en la aplicación QIoT Suite Lite, en próximos tutoriales os enseñaré cómo almacenarlos en una base de datos o bien enviarlos a servicios de terceros como el cada vez mas popular Power Bi de Microsoft.
Servidores NAS QNAP recomendados para IoT
No todos los servidores NAS de la marca QNAP están soportados para usarlos con ha aplicación QIoT Suite Lite. La siguiente imagen muestra una lista de los 3 más recomendados de menor a mayores prestaciones.
La lista completa de servidores NAS soportados por aplicación QIoT Suite Lite es la siguiente teniendo en cuenta que han de ser modelos basados en arquitectura Intel x86 con un mínimo de 4GB de RAM para funcionar de forma desahogada.
Vídeo tutorial para configurar QIoT Suite Lite
Para que nos quede todavía más claro y sobre todo para que lo veáis en vivo y en directo, os dejo este vídeo. En el os muestro la forma de hacer todo lo anterior.
Espero que os haya gustado este tutorial sobre Cómo usar QNAP como centro del internet de las cosas con la aplicación QIoT Suite Lite y como no, en ese caso que lo compartáis con vuestros familiares y amigos para que ellos también puedan disfrutar de una vida 1.0 más cómoda.
Nos leemos en un siguiente artículo.
Un saludo, JM
Referencias y enlaces
- Video presentación QNAP
- Video explicativo de QNAP
- Web de QNAP para Raspberry
- QNAP IoT sdk
- Protocolo de comunicación MQTT
- Software para cargar los ficheros a la Rapsberry
- Herramienta Node-RED