Guía para operar los GPIO del NodeMCU con Thingsboard
#Guía para operar los GPIO del NodeMCU con Thingsboard
Thingsboard es una plataforma para monitorear y controlar dispositivos, enfocado a IoT y es de código abierto, lo que significa que podemos controlar la cantidad de dispositivos que nosotros deseamos sin la necesidad de pagar por una licencia, lo anterior quiere decir también que se puede usar de manera comercial, aplicado a la industria.
- Crear dispositivos de provisión y control
- Recopilar y visualizar datos de dispositivos
- Analizar datos de los dispositivos y disparar alarmas
- Entregar datos de los dispositivos a otros sistemas
- Proporcionar la nube IoT lista para usar o ser la solución en las instalaciones que habilitará la infraestructura del lado del servidor para sus aplicaciones de IoT.
ThingsBoard es escalable pues es una plataforma escalable horizontalmente y compilación utilizando tecnologías líderes de código abierto, tolerante a errores pues no hay punto único de fallo ya que cada nodo en el clúster es idéntico,es personalizable pues permite agregar nueva funcionalidad es fácil con widgets personalizables, motor de reglas y sistema de complementos, es s duradero y es robusto y eficiente pues el nodo de servidor único puede manejar decenas o incluso cientos de miles de dispositivos según el caso de uso (un cluster ThingsBoard puede manejar millones de dispositivos). Asimismo también puede conectar dispositivos existentes a la plataforma usando ThingsBoard Gateway .
ThingsBoard le permite enviar llamadas de procedimiento remoto (RPC) desde aplicaciones del servidor a dispositivos y viceversa. Básicamente, esta característica le permite enviar comandos a dispositivos y recibir resultados de ejecución de comandos. Similarmente, puede ejecutar la solicitud desde el dispositivo, aplicar algunos cálculos u otra lógica del lado del servidor en el back-end y enviar la respuesta de regreso al dispositivo. Esta guía cubre las capacidades de ThingsBoard RPC. Después de leer esta guía, se familiarizará con los siguientes temas:
- Tipos de llamdas RPC
- Casos de usos de RPC básicos
- La API RPC del lado del cliente y del lado del servidor
- Widgets RPC
A continuación se hará una aplicación para el control de GPIO del ESP8266 como módulo (NodeMCU) con ayuda de Thingsboard, se verá el control con ayuda de dos Led's conectados a dos pines del ESP.
ThingsBoard está diseñado para ejecutarse y utilizarse en la mayoría del hardware, desde Raspberry PI local hasta potentes servidores en la nube. Las formas de configurar un cluster de ThingsBoard soporta los siguientes sistemas operativos:
- Windows : instale el clúster Thingboard en cualquier máquina preexistente que ejecute Windows.
- Linux (Ubuntu y CentOS) : instala el clúster Thingboard en cualquier máquina preexistente que ejecute Linux.
- Raspberry Pi 3 Modelo B (Raspbian Jessie) : instala el servidor Cassandra y Thingboard en una Raspberry Pi 3 modelo B.
- Docker (Linux o Mac OS) : instala un clúster ThingsBoard de un nodo en tu máquina Linux o Mac OS para su desarrollo y prueba.
- Docker (Windows) : instala un clúster ThingsBoard de un nodo en tu máquina con Windows para su desarrollo y prueba.
- Instalación de AWC EC2 utilizando AMI : instale un clúster ThingsBoard de nodo único con AWI AMI público.
Se puede usar la versión Demo si la intención es solo hacer pequeñas pruebas, se puede consultar la documentación aquí:
En este ejemplo se usará el NodeMCU con el código correspondiente en el IDE de Arduino, se conectará al servidor de Thingsboard a través de MQTT y detectará los comandos RPC.
El estado del GPIO y el Widget para el conrol de los GPIO's se visualizarán en el mismo panel personalizable.
1. ESP-8266 : se usará el módulo NodeMCU.
2. 2 Led's
3. 2 Resistencia de 1k
4. 2 cables de puente hembra a macho.
5. Placa de pruebas (protoboard).
La aplicación consiste en un único código en el IDE de Arduino que está bien documentado. Es necesario modificar la constante THINGSBOARD_HOST para que coincida con su dirección IP de instalación del servidor ThingsBoard o nombre de host. Si se utiliza la versión Demo, el HOST será: “demo.thingsboard.io”.
La constante ACCESS_TOKEN corresponde al dispositivo que creamos en Thingsboard. Si se usa un servidor de demostración en vivo , obtenga el token de acceso para el “ESP8266 Demo Divice”.
El código para el control de dos GPIO's del NodeMCU se encuentra en la carpeta SRC, el siguiente hipervínculo nos redirige al código:
Abrimos el IDE de Arduino instalado en nuestro equipo y "pegamos" nuestro código en el IDE haciendo las modificaciones correspondientes del HOST y del TOKEN.
El HOST es el servidor al que tenemos acceso de Thingsboard, por ejemplo en la versión de prueba o Demo, el HOST es "demo.thingsboard.io" y el TOKEN dependerá del dispositivo creado, eso se verá a continuación.
login: tenant@thingsboard.org
password: tenant
2. Ya que nos encontramos dentro de THingsboard, nos dirigimos a dispositivos en el menú al lado izquierdo.
5. Buscamos nuestro dispositvo que creamos y accedemos para copiar nuestras credenciales, posteriormente serán usadas.
6. Salimos al menú principal y nos dirigimos a Dashboard, crearemos uno con el mismo nombre de nuestro dispositivo o cualquier otro nombre para poder identificarlo.
Podemos usar el Widget que ahí viene de ejemplo con más interruptores en el panel, pero para este ejemplo usaremos el de la versión Demo de Thingsboard, cuando entramos en la versión Demo nos dirigimos a la parte de paneles y ahí vienen algunos de prueba y elegimos el del ESP:
Buscamos el punto rojo en la esquina inferior derecha y le damos en editar el tablero, nos aparecerá opción de descarga de los tableros y le damos a esa opción.
La otra opción es de ir directamente a los Widget si se tiene instalado Thingsboard de manera local, de la siguiente forma:
9. En las librerías, buscamos una que se llama "GPIO widgets" y descargamos el panel de visualización y el de control.
Lo anterior, para visualizar antes de agregar un nuevo Widget a nuestro Dashboard, cuando hemos identificado que Widget ocupamos, en este caso es el del ESP, vamos al menú principal y nos vamos al Dashboard que creamos antes para agregar el nuevo widget.
10. Accedemos y le damos en el botón rojo del signo (+) para agregar un widget, en caso de que tengamos el widget en nuestro equipo de manera local y si no hemos descargado nada, simplemente le damos en el recuadro del centro para escoger nuestro widget. Para este caso lo hemos descargado y ahora tendremos que importar el que hemos descargado previamente.
11. Después de haber seleccionado el recuadro "ADD NEW WIDGET", seleccionamos los datos correspondientes, nos aparecerá un aviso de que no coinciden los tableros con nuestro Dashboard creado.
Cabe recordar que nosotros importamos los tableros que teníamos en nuestro equipo, para evitar confusión, hay que considerar los detalles en cada paso.
12. Después de haber seleccionado o importado el Widget correspondiente, escribimos los datos de acuerdo a nuestro Dashboard y Dispositivo con la intención de no confundirnos en los nombres o evitar errores se escribe el mismo o similar.
Finalmente le damos clic en la flecha y ahora tenemos nuestros paneles agregados y ahí aparece que se encuentra off line, debido a que no tenemos conectado nuestro ESP con el código funcionando, cuando se logren conectar ambos, al momento de hacer pruebas, dejará de estar en modo off line.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
esp8266
Instalamos las siguientes librerías y en esas versiones, para actualizar a las más recientes es necesario ver los cambios en cada versión y adaptarlas a la actual, pero si lo que que se necesita es sólo una prueba no estricta, se instalará las siguientes:
PubSubClient 2.6
ArduinoJson 5.8.0





























