Les dades generades pels nostres sistemes poden ser aprofitades per altres si les compartim a través del núvol.
Fem-ho! Utilitzarem ThingSpeak, una plataforma IoT que permet emmagatzemar, visualitzar i analitzar dades de sensors al núbol i desenvolupar aplicacions IoT.
Per utilitzar el servei, un cop registrats a https://thingspeak.com cal crear un canal, que és l'espai on es guardaran les dades que recullim en el nostre dispositiu.
Limitacions del compte gratuït de Thingspeak 👇
Interval d'actualització: 15 segons.
Si enviem dades cada 15 segons només podrem utilitzar un canal. (3.000.000 de missatges/any en total)
Entenguem la mecànica
Per enviar dades des del nostre dispositiu farem servir el mètode GET del protocol HTTP; el dispositiu ESP32 és el client i Thingspeak el servidor.
Hem de fer una sol·licitud HTTP a la URL d'actualització del canal, afegint com a informació addicional aquest valor.
La URL l'obtenim des de la pestanya API Keys del nostre canal. La clau de sol·licitud del meu canal:
si tingués 2 fields a actualitzar: &field1=valor1&field2=valor2
Estrenem el canal
Per estrenar el nostre canal de Thingspeak proposo generar periòdicament un nombre aleatori i pujar-lo.
Veieu com generar nombres aleatoris 👉
Tingueu present que l'interval d'actualització de les dades al compte gratuït de Thingspeak és de 15 segons.
Enviem telemetria
La paraula telemetria deriva de les arrels gregues, i significa mesurar a distància. La telemetria és l'acte de recopilar dades dels sensors i enviar-les d'un dispositiu a un altre.
Fem-ho amb les dades del sensor BME280 👇
Tingueu present:
Cada valor ha de pujar-se a un camp (field) diferent del canal. Com que el BMP280 proporciona tres valors, caldran 3 camps. Poseu noms identificatius als camps.
El field1 que hem utilitzat fins ara ja no serveix. Podeu netejar-lo des de la pestanya Settings del canal.
Quan feu el programa, definiu les lectures en una funció que retorni el valor de la lectura.
Recordeu que l'interval d'actualització de dades a Thingspeak és de 15 segons.
Convertim-ho en una llibreria (?) Exemple
Aqui hauria d'anar el son profund i la reflexió de cada quant temps cal enviar les dades
Quantes dades podem enviar a un canal de Thingspeak
Màxim de 3 milions de missatges per any per canal.
Tot i que tinguem diversos sensors, totes les dades s’envien juntes en una única actualització → això compta com 1 únic missatge, tot i què cada dada es desarà en un camp diferent.
De fet, podriem pujar dades cada 15 segons (el màxim permés) i encara no superariem el límit anual.
Quan passa un any (365 dies), ThingSpeak reinicia el comptador i el canal torna a tenir disponibles els 3.000.000 de missatges anuals.
Al nostre nivell bàsic podem:
Modificar els ajustos dels gràfics. Veure com fer-ho
Afegir widgets i configurar-los. Veieu les opcions que tenim
Modificar la disposició dels widgets a la pantalla, arrossegant-los
Exemple de canal personalitzat que em dona força idees
Referències
https://programarfacil.com/esp8266/thingspeak/
https://es.mathworks.com/help/thingspeak/getting-started-with-thingspeak.html
https://es.mathworks.com/help/thingspeak/
https://microcontrollerslab.com/esp32-micropython-bme280-sensor-thingspeak/
Analyzing Weather Data from an Arduino-based weather station
Recuperem les dades en un altre dispositiu i mostrem-les en una OLED:
https://www.gsampallo.com/2019/07/24/leyendo-datos-de-thingspeak-con-micropython/