Leyendo datos de Thingspeak con MicroPython

Thingspeak es una de las plataformas más sencillas de utilizar cuando se incursiona en el mundo IoT, por un lado tenemos la potencia de Matlab que ayuda mucho si deseamos realizar algún análisis posterior a recabar los datos y por el otro su simpleza para utilizarla: solo basta registrarnos obtener un key e invocar a la librería adecuada.

En esta oportunidad nos interesa leer datos de Thingspeak desde MicroPython, tomaremos datos de un canal publico:

https://thingspeak.com/channels/548625/

Ofrece temperatura y humedad, datos sencillos, pero que nos sirven para testear el funcionamiento.

Thingspeak tiene la funcionalidad que ofrece la información de los canales públicos por medio de un JSON, desde donde podremos leer los datos, para acceder a los datos utilizaremos la url: https://api.thingspeak.com/channels/548625/feeds.json

(Simplemente luego del nro. del canal agregamos feeds.json)

Si la abrimos en el navegador, tendremos todos los datos publicados desde las ultimas horas, debemos tener en cuenta de ajustar la fecha y hora a la zona horaria correspondiente.

Si empleamos la web http://jsonviewer.stack.hu/ podremos ver el json en un formato que resulta mas fácil de interpretar, solo debemos presionar el botón «Load JSON Data» y copiar la url, debemos reemplazar https por http, puesto que jsonviewer no soporte https; luego tendremos un vista como la siguiente:

Como solo nos interesa la ultima medición emplearemos el argumento result para que nos devuelva solo un resultado:
https://api.thingspeak.com/channels/548625/feeds.json?results=1

Para leer los datos realizamos:

import json
import network
import urequests
import wlan

wlan.do_connect()

consulta = urequests.get("https://thingspeak.com/channels/548625/feeds.json?results=2")
data = consulta.json()

temp = data["feeds"][0]["field1"]

print("Temperatura: ",temp)