Material OBJETIVOS
Material requerido.
Un ESP32 |
Enviando datos a la nube
Hasta ahora, hemos estado usando sensores de diferentes tipos y colores y publicando sus valores en la consola serie, o en varias clases de displays del tipo LCD o TFT, pero seamos modernos, esto está muy bien, pero lo que de verdad piden los tiempos (y el cuerpo) es montar alguna aplicación de IOT que nos permita subir las lecturas a la nube.
La IOT (Internet Of Things) es precisamente, enviar toda la información posible a servidores en la nube que nos permitan procesarla de forma estadística y, aún más importante, visualizar la información de forma gráfica más allá de torrentes interminables de números
Ya hemos publicado varias sesiones de como enviar por WIFI, Bluetooth o LORA datos, pero hasta ahora nos habíamos centrado más en la parte técnica de enviar mensajes con datos que en la parte del servidor que recibe la información para procesarla.
En esta sesión nos vamos a centrar en conectar a un sistema IOT sencillo mediante nuestras propias claves de acceso que nos permita visualizar nuestra información cuanto antes, qué es lo que nos permite interpretarla con rapidez.
Por tanto, vamos a centrarnos hoy en conectar a un servicio público de IOT, y de las muchas opciones disponibles en el mercado, hemos elegido la de Adafruit IO como ejemplo inicial por su sencillez y comodidad.
nbsp;
Por todo ello vamos a ir directamente a hacer un ejemplo de cómo abrir una cuenta con Adafruit y a lo largo de esta sesión crearemos un Feed y un Dashboard para publicar nuestros datos online, y luego veremos uno de los ejemplos que viene con las librerías de conexión de como publicamos un valor cualquiera.
Como crear una cuenta en Adafruit
Pues muy fácilmente, si estáis cómodos en inglés, esos sí. Vamos a Adafruit IO y pincha en sign in:
Te aparecerá el menú de suscripción:
Te aparecerá un pantallazo para meter los datos de tu cuenta. Hazlo y pincha en el botón azul “CREATE ACCOUNT”:
Y ya estas. Ahora hay que definir algunas cosas, pero de momento llegarás a esta pantalla, que es desde la que vas a administrar tu cuenta:
Antes de nada, fíjate en la flecha roja que apunta al menú “My Key”, ahí vas a tener tus datos de conexión que te van a hacer falta en tus programas para publicar información. Si lo pinchas, verás tus claves privadas y luego veremos donde las pondrás en tu programa, Siempre puedes volver aquí a ver cuáles son y copiarlas, pero no las circules por la cuenta que te tiene (Ni las hagas circular o te expulsarán rápidamente. Estas claves son privadas, procura que sigan asi).
Vas a necesitar estas claves más adelante y te conviene anotarlas en algún sitio (Las de Arduino al menos)
Creando Feeds y Dashboards
Una vez creada la cuenta, ya podemos crear feeds y dashboards. Veamos qué es esto.
Feeds: Cada uno de los parámetros que deseas monitorizar es un Feed. Por ejemplo, si estamos midiendo CO2 desde un sensor, es buena idea crear un sensor llamado así CO2 . Si tienes tres sensores de CO2 , otro de temperatura y otro de humedad, tendrás que crear 5 feeds. Uno por cada sensor que trabajas:
- CO2_1 - CO2_2 - CO2_3 - Temp_1 - Humedad_1
Cada Feed archivará el histórico de datos que tu sensor vaya enviando.
nbsp;
Para crear un Feed, vamos a nuestra cuenta Adafruit y pincha en
IO\Feeds\View All
Y desde aquí podemos crear nuestros feeds con el botón New Feed:
Los menús son un poco confusos, pero en seguida te acostumbras. Crea un Feed llamado contador (O el nombre que quieras siempre que te acuerdes)
Una vez creados los Feeds, nos toca alimentarlos con el programa, para lo que podemos definir un dashboard (O Cuadro de mandos) para mostrarlo
Pulsando en view all entramos a los menús para crear un nuevo cuadro de mandos
Pinchando en el botón New Dashboard, nos pedirá el nombre del mismo, yo he creado uno llamado CO2
Con lo que ya te aparecerá un Dashboard con ese nombre y si pinchas en el se abre la ventana de configuración de tu dash, pincha en el menú desplegable de la derecha y elige Create new block:
Un dashboard se constituye arrastrando y soltando bloques que pueden ser de varios tipos. Vamos a añadir un gauge para mostrar valores instantáneos, como un velocímetro y un line chart para mostrar valores históricos
La idea básica es que asignas cada bloque, que vas añadiendo, a un Feed, para mostrar su valor. Es imposible ir mostrando paso a paso el proceso, pero basta con pinchar y arrastrar los bloques, pero si juegas un poco verás que es sencillo.
Instalando las librerías de Adafruit io
Las librerías de Adafruit.io soportan varios procesadores Arduino generales y muchos particulares de Adafruit, pero todos tienen algo en común y es que, obviamente, necesitan WIFI o Ethernet para conectarse a la nube. Y en concreto soportan tanto el ESP8266 como el ESP32 que son los que nos interesan.
Para instalar las librerías precisas vamos a:
\\Programa\Incluir Libreria\Administrar bibliotecas
como es habitual y ahí escribe en la barra de búsqueda «Adafruit io Arduino«:
Dale a instalar. Te preguntará si quieres instalar las dependencias, dile que si a todo y adelante. Como siempre, una vez finalizada la instalación disponemos de múltiples ejemplos de uso. Abre el ejemplo:
\\Ejemplos\Adafruit IO\ adafruitio_00_publish
Verás que dispone dos pestañas, una de programa y otra de configuración. Pincha en esta última
La idea de esta pestaña es poder configurar tu WIFI, tus claves de Adafruit IO y el tipo de micro que usas. Vamos a empezar poniendo tus identificadores personales para acceder a la nube de Adafruit (Y que anotamos más arriba), Busca estas líneas al principio del Config.h, y reemplazalas con tus propias claves adafruit:
#define IO_USERNAME "your_username" #define IO_KEY "your_key"
Vamos ahora a localizar estas líneas para el WIFI, y pon tus claves para la WIFI que vas a usar:
#define WIFI_SSID "your_ssid" #define WIFI_PASS "your_pass"
Si vas a usar un Esp8266 o un ESP32 no necesitas cambiar el procesador por defecto que viene definido, pero si quieres usar ethernet entonces tienes que buscar y comentar estas líneas:
#include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
Y sustituirlas por estas otras (Que también tienes por ahí)
#include "AdafruitIO_Ethernet.h" AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
Salva el programa y ya estamos listos. En la próxima sesión usaremos esta cuenta para subir los valores de un sensor de CO2 a la nube con ayuda de Adafruit.