Nueva plataforma IoT de código abierto


Existen numerosos protocolos y formatos de datos de IoT, ,algunos de ellos son más populares, como MQTT y JSON, y algunos otros  son   «bastante raros». Normalmente la mayoría de las plataformas IoT brindan soporte para los protocolos y formatos de datos más populares desde el primer momento, pero es difícil respaldar a todos en una sola solución.

Con el crecimiento de la comunidad de código abierto de la plataforma Thingsboard, ha comenzado a recibir solicitudes sobre el soporte de protocolos IoT, como OPC-UA y algunos formatos de datos específicos, de modo que también han decidido implementar esta funcionalidad como un proyecto separado de código abierto que  permitirá unir la plataforma API a, literalmente, cualquier dispositivo.

El diagrama de flujo de datos es el siguiente

thingsboard

 

IoT Gateway está construido sobre Java, pero es diferente de proyectos similares que aprovechan la tecnología OSGi pues la idea es similar a una arquitectura de microservicios. Después de todo, hay otros lenguajes de programación (C, C ++, Python, Javascript, Go, etc.) que pueden ser más adecuados para el desarrollo de aplicaciones para dispositivos de IoT de destino, especialmente cuando hablamos de API de idiomas y bibliotecas existentes para trabajar con puertos serie , GPIO, I2C y nuevos módulos y sensores que se lanzan todos los días.

El Gateway proporciona API’s  de integración simples y encapsula tareas comunes relacionadas con el tablero de tareas: aprovisionamiento de dispositivos, persistencia y entrega de datos locales, conversores / adaptadores de mensajes, y más.

Como desarrollador de aplicaciones, puede elegir Python, Go, C / C ++ y otros idiomas y conectarse a la puerta de enlace de Thingsboard a través de un intermediario MQTT externo o un servidor OPC-UA. Los dispositivos que admiten otros protocolos se pueden conectar a la puerta de enlace implementando extensiones personalizadas.

La puerta de enlace IoT de Thingsboard ofrece las siguientes características:

  • Extensión OPC-UA para recopilar datos de dispositivos que están conectados a servidores OPC-UA.
  • Extensión MQTT para recopilar datos que se publican en intermediarios MQTT externos.
  • Persistencia de los datos recopilados para garantizar la entrega de datos en caso de fallas de red y hardware.
  • La reconexión automática a los grupos de tableros de cartón.
  • Mapeo simple pero poderoso de los datos y mensajes entrantes en un formato unificado.

El objetivo de lanzamiento inicial de Gateway es llevar la función de recopilación de datos de Bagsboard a dispositivos compatibles con OPC-UA y MQTT. El proyecto Gateway se encuentra actualmente en la etapa de desarrollo activo, y debemos esperar  a los lanzamientos de características principales en los próximos  meses pero el objetivo es unir todas las demás características de Panel de pruebas y permitir configurar y administrar dispositivos de IoT a través de la puerta de enlace usando los widgets y paneles de control de Thingsboard.

 

En este post vamos  a ver como  recopilar y visualizar algunos datos del dispositivo IoT con ThingsBoard permitiendo :

  • Registrar  su dispositivo IoT
  • Administrar credenciales del dispositivo
  • Mandar  los datos del dispositivo a su instancia de ThingsBoard utilizando los protocolos MQTT, CoAP o HTTP
  • Crear un tablero para visualizar los datos

Configuración y requisitos

Si no tiene acceso a una instancia de ThingsBoard en ejecución, use Live Demo o la Guía de instalación para solucionar esto.

Todas las instalaciones de ThingsBoard están equipadas con una cuenta de demostración que simplifica la experiencia del primer usuario. Esta cuenta demo contiene varios dispositivos, cuadros de mando, reglas y complementos preaprovisionados instalados. Tenga en cuenta que puede eliminar esta cuenta en la implementación de producción.

También puede usar emuladores de dispositivo ThingsBoard para simular dispositivos de la vida real y jugar con las API del lado del servidor, la visualización de datos y la lógica de procesamiento.

En este  ejemplo  solo utilizaremos una cuenta de administrador de inquilino preaprovisionada y como hardware una Raspberry Pi 3.

Iniciar sesión como administrador de inquilinos

El primer paso es iniciar sesión en la interfaz de usuario web de administración.

Si está utilizando la instalación local de ThingsBoard, puede iniciar sesión en la interfaz de usuario web de administración utilizando la cuenta predeterminada:

Si usa Live Demo, puede iniciar sesión en el servidor Live Demo utilizando la cuenta de administrador del inquilino (la que creó durante el registro).

imagen

Abra el panel Dispositivos y haga clic en el botón «+» en la esquina inferior derecha de la página.

imagen

Rellene y guarde el nombre del dispositivo (por ejemplo, «SN-001») aunque más adelante se le llamará $ DEVICE_NAME.

Como los nombres de dispositivo deben ser únicos, por lo general es una buena idea llamar al nombre del dispositivo según un número de serie único u otro identificador de dispositivo. Haga clic en el botón «Agregar» agregará la tarjeta del dispositivo correspondiente al panel.

imagen

Haga clic en la «tarjeta del dispositivo» que hemos creado en el paso anterior. Esta acción abrirá el panel de «detalles del dispositivo».

Haga clic en el botón «administrar credenciales» en la parte superior del panel. Esta acción abrirá una ventana emergente con credenciales del dispositivo.

imagen

La ventana de credenciales del dispositivo mostrará el token de acceso al dispositivo generado automáticamente que puede cambiar. Guarde este token de dispositivo. Más tarde se lo llamará $ ACCESS_TOKEN .

imagen

¡Felicitaciones! ¡Acaba de aprovisionar su primer dispositivo! Ahora puede enviar algunos datos de este dispositivo a ThingsBoard para su visualización y análisis.

Envío de datos

Para simplificar   enviaremos datos utilizando el protocolo MQTT, CoAP o HTTP desde su PC local.Consulte otros  ejemplos para ejemplos avanzados de varias plataformas de hardware.

Ahora  que ya  tiene creado las credenciales  del   dispositivo ,iInstale el cliente preferido MQTT (Mosquitto o MQTT.js), CoAP (CoAP.js) o HTTP (cURL) con los siguientes comandos.

resources/node-mqtt.sh 
# Assuming you have Node.js and NPM installed on your Windows/Linux/MacOS machine npm install mqtt -g

Cree una carpeta para almacenar todos los archivos necesarios para este ejemplo y descargue a esta carpeta o cree los siguientes archivos de datos:

  • attributes-data.json – contiene dos valores de atributos del dispositivo: la versión del firmware y el número de serie.
  • telemetry-data.json – contiene tres valores de series temporales: temperatura, humedad y bandera activa.

Tenga en cuenta que los datos en estos archivos están básicamente en formato de clave-valor. Puede usar sus propias claves y valores. Consulte la referencia de protocolo MQTT , CoAP o HTTP para obtener más detalles.

resources/attributes-data.json 
{ "firmware_version" : "1.0.1" ,   "serial_number" : "SN-001" } 

Envio de  datos usando MQTT, CoAP o HTTP

Descargue los siguientes archivos a la carpeta creada previamente de acuerdo con el cliente preferido:

Si está utilizando un script de shell (* .sh), asegúrese de que sea ejecutable:

chmod +x * .sh

Antes de ejecutar el script, no olvide:

  • reemplace $ ACCESS_TOKEN por uno de la ventana Credenciales del dispositivo .
  • reemplace $ THINGSBOARD_HOST con 127.0.0.1 (en caso de instalación local) o demo.thingsboard.io (en caso de live-demo).

Finalmente, ejecute el script * .sh o * .bat correspondiente para enviar datos al servidor.

A continuación en estos enlaces  esta  el contenido de los scripts proporcionados.

resources/mqtt-js.sh 
#!/bin/sh # Set ThingsBoard host to "demo.thingsboard.io" or "localhost" export THINGSBOARD_HOST = demo.thingsboard.io # Replace YOUR_ACCESS_TOKEN with one from Device credentials window. export ACCESS_TOKEN = YOUR_ACCESS_TOKEN # Read serial number and firmware version attributes ATTRIBUTES = $( cat attributes-data.json ) export ATTRIBUTES # Read timeseries data as an object without timestamp (server-side timestamp will be used) TELEMETRY = $( cat telemetry-data.json ) export TELEMETRY # publish attributes and telemetry data via mqtt client node publish.js

Visualización de los datos del dispositivo en la interfaz de usuario web

Una vez que ejecute los comandos enumerados arriba, debería ver los atributos y los últimos datos de telemetría en las pestañas de detalles correspondientes del dispositivo.

imagen

imagen

Crear un nuevo tablero para visualizar los datos

La forma más fácil de crear un nuevo tablero es seleccionar los atributos del dispositivo y mostrarlos en el widget

imagen

Una vez que haga clic en el botón «Mostrar en el widget», verá un panel de «vista previa del widget» donde puede

  • Seleccionar paquete de widgets
  • Seleccione el widget preferido
  • Agregar widget al panel nuevo o existente

imagen

Agreguemos nuestro primer widget al nuevo tablero llamado «SN-001 Dashboard»

imagen

Agreguemos  también un widget para visualizar la temperatura:

imagen

Haga clic en Mostrar en el widget y seleccione Paquete de indicadores digitales . Use el carrusel para seleccionar el widget del termómetro como se muestra a continuación.

imagen

Tenga en cuenta que en este caso, agregaremos un widget a un panel ya existente. También seleccionaremos la opción «Open dashboard» para ver los resultados de nuestro trabajo.

imagen

Finalmente, podemos ver nuestro nuevo tablero.

Ahora podemos editar el tablero para:

  • Configurar la configuración del tablero
  • Ajustar tamaños de widgets y diseño
  • Modificar la configuración avanzada del widget individual
  • Agregue nuevos widgets o elimine los existentes
  • Widgets de importación / exportación

imagen

Mas info en https://thingsboard.io/docs/getting-started-guides/helloworld/

Como sustituir una mirilla normal por una digital


Las puertas con mirilla convencionales   de tipo óptico no ofrecen ninguna privacidad al usuario, porque desde el exterior es posible ver dislumbrar  actividad o presencial ,  por ejemplo cuando se enciende la luz   o  bien se  se acerca una persona a mirar por el

Se   puede  pues  mejora la seguridad del hogar con una mirilla digital que  ofrece una visión amplia y clara  mejorando nuestra privacidad  siendo especialmente  útil para niños, personas mayores o con alguna discapacidad.

mirilla

Con las mirillas digitales electrónicas se garantiza la seguridad, ya que se trata de cámaras mirilla y no hay visión desde el exterior  siendo ademas mucho mas cómoda   y sencilla la visualización  pues basta pulsar un botón para poder visualizar lo que esta ocurriendo al otro lado de la puerta  sobre la propia cámara.

Normalmente las mirillas electrónicas son muy fáciles de usar: basta con presionar el botón para ver la imagen exterior durante unos segundos, ofreciendo una gran visibilidad desde cualquier ángulo, incluso con poca luz exterior.

Algunos aspectos a tener en cuenta a la hora de valorar una mirilla digital son, el tamaño del display, la resolución de la minicámara ,el ángulo de visión que cubre y su sensibilidad a la luz ya que se desenvolverá en un entorno oscuro. Otros extras son el sensor de movimiento, el timbre inalámbrico, grabación de vídeo y/o fotografías,etc .

Otras consideraciones pueden ser el color de la mirilla que encaje por ejemplo con el color del pomo  o los adornos  que lleve al puerta, pues al margen de las consideraciones estéticas   tenga en cuenta  que lo que buscamos es que pase  lo mas desapercibida posible  para no delatar su naturaleza

Asimismo al elegir un modelo , aunque suelen llevar diferentes conos roscados para diferentes espesores , debe comprobar que se adapte al grosor de la puerta donde será instalada.

Reemplazar la mirilla antigua por una nueva  einstalarla en una puerta sin mirilla es una tarea sencilla como vamos    a ver pues solo se necesita un destornillador de estrella, una moneda y por supuesto la nueva mirilla .

Un modelo con buena relación calidad-precio (unos 35€) y que pasara desapercibido su visor en una puerta clásica  es el modelo VI.TEL. E0426 40 , apto   para marcos de ancho de 38 a 110 mm con  orificio standard (de 14 a 22 mm).

Esta unidad cuenta con pantalla LCD 2,6″, encendido táctil,alimentación 2 pilas LR06 AA y   su angulo de Visión es de 105 °C

Los pasos  para instalar  la mirilla son muy sencillos:

Lo primero que tenemos que hacer es quitar la antigua para lo cual nos bastara el dorso de una moneda.

IMG_20180111_162821[1]

Ahora elegiremos el tubo roscado en función del grosor  de la puerta

IMG_20180111_162858[1].jpg

Colocaremos la cámara  con la flechita hacia arriba pero todavía no elimine el adhesivo

IMG_20180111_162910[1].jpg

Tendremos que liberar   el soporte del cuerpo de la pantalla con ayuda de un destornillador de estrella pues ambos van unidos

IMG_20180111_162838[1]

Ahora queda roscar por el otro lado el tubo teniendo en cuenta que debe colocar el soporte  metálico autoadhesiva por el interior y con el rotulo Up hacia arriba

Tampoco esta mal pegar dos tiras autoahesivas extra  por los extremos para mejorar la posición de la pantalla:

IMG_20180111_162813[1].jpg

Ahora tendremos que conectar el extremo del cable de la cámara con la pantalla metiendo un poco en el interior  del tubo para que no haya tanto cable que pueda doblarse al colocar sobre el la pantalla.

IMG_20180111_162940[1].jpg

Fijaremos la pantalla en la parte de la lengueta superior del soporte

IMG_20180111_163111[1].jpg

No debemos olvidar poner dos pilas AAA  respetando la polaridad de estas:

IMG_20180111_163023[1].jpg

Ya solo queda  atornillar la pantalla a  la base con un tornillo philips

IMG_20180111_163331[1].jpg

Por ultimo   leiminaremos  el protector de la pantalla

IMG_20180111_163715[1].jpg

Asimismo eliminaremos   también el protector de la mirilla

IMG_20180111_163842[1].jpg

La instalación como hemos visto es muy sencilla, pues se ajusta al hueco universal de cualquier rejilla o mirilla de puerta convencional y funciona con 4 pilas AA, que permiten unas 2000 visualizaciones, en la pantalla LCD .