RECUPEREM LES DADES DE THINGSPEAK
Podem accedir a les dades dels canals públics de Thingspeak de moltes maneres. Explorem-les!
Amb el navegador
Trobeu la URL a la vista pública del vostre canal. Aquest és l'enllaç al meu
Amb l'aplicació ThingView
Aquesta app permet visualitzar canals ThingSpeak introduint només l'ID del canal.
CONSTRUÏM OPCIONS PRO
Inserim els widgets en una pàgina web
Cada widget té una URL específica, i es pot inserir en una web molt fàcilment. Seguiu aquestes pautes per trobar el codi HTML d'inserció, i aquestes altres per inserir codi HTML, CSS o JavaScript en Google Sites.
Jo he inserit aquí dos dels gràfics del meu canal (vista pública). Són vius i mostren les actualitzacions.
Recuperem les dades amb l'ESP32
Si podem recuperar les dades d'un canal de Thingspeak amb un dispositiu ESP32 diferent del que les ha generat i pujat al canal, podrem mostrar-les en una pantalla allà on vulguem, sigui on sigui el dispositiu captador de dades 😃 🤘
L'ESP32 pot recuperar les dades en format JSON (JavaScript Object Notation), un estàndard per codificar dades en text.
Podem accedir-hi a les dades JSON del nostre canal mitjançant la URL api.thingspeak.com/channels/IDdelcanal/feeds.json
Aquesta és la meva https://api.thingspeak.com/channels/1825502/feeds.json
Tot i l'aspecte feixuc de la visualització, podem veure que hi ha una llista "feeds":
Dins els claudàtors [ ] hi ha totes les actualitzacions com a elements d'aquesta llista, dins de corchetes { } i separades per coma.
Per recuperar només el darrer valor cal afegir ?results=1 a continuació de la URL. En el meu cas:
https://api.thingspeak.com/channels/1825502/feeds.json?results=1
Veieu com recuperar aquests valors i reconèixe'ls independentment amb l'ESP32:
import json # per treballar amb JSON
import urequests # per fer peticions HTPP
import miwifi # per connectar a WiFi
miwifi.connecta_wifi()
consulta = urequests.get("https://api.thingspeak.com/channels/1825502/feeds.json?results=1")
data = consulta.json()
# les dades que vull recuperar:
temp = data["feeds"][0]["field1"]
pres = data["feeds"][0]["field2"]
hum = data["feeds"][0]["field3"]
print("Temperatura:",temp)
print("Pressio:",pres)
print("Humitat:",hum)
Voleu afegir l'hora i/o la data? Mireu aquestes webs:
https://www.engineersgarage.com/micropython-esp8266-esp32-rtc-utc-local-time/
Visualitzem les dades en una LCD
Es tracta de recuperar les dades de Thingspeak generades per un ESP32 amb un altre ESP32 i mostrar-les en una pantalla LCD que pot estar situada en un indret independent del dispositiu de captació.
Si ens animem, podrem afegir un indicador visual amb Neopixels, que sempre molen! Inclús un indicador sonor de dades no dessitjables
Fem un dispositiu de visualització remota
Es tracta de recuperar les dades de Thingspeak amb un altre ESP32 i mostrar-les en una pantalla OLED o LCD situada en un indret independent del dispositiu de captació.
Si ens animem, podem afegir un indicador visual amb Neopixels, que sempre molen! Inclús un indicador sonor de dades no dessitjables
No oblideu que el dispositiu captador de dades també ha de tenir una forma i una ubicació.
L'alimentem amb energia solar?
https://www.instructables.com/Solar-Powered-WiFi-Weather-Station-V20/