Buenas tardes,
En anteriores entradas habíamos visto como escribir datos en un canal IoT, pero los actuadores necesitan leer estos datos para poder actuar. Es decir, un sensor o un botón envía los datos al servidor IoT (os lo he mostrado con los botones ON y OFF de mi app IoT), pero luego el actuador motor, riego, bombilla, alarma etc debe leer estos datos para encenderse o apagarse. ¿Cómo puede leerlos?
Cómo vamos a ver lo hace a través de una consulta o pregunta por medio de una URL, cuando se envía esta, instantáneamente se abre una web en el navegador con la respuesta. veámoslo con un ejemplo:
La URL de consulta de últimos datos en mi canal JCZ-IoT- Riego en thingspeak está en: API Keys -> Read a Channel Feed:
https://api.thingspeak.com/channels/2079877/feeds.json?results=2
Enviando esta URL en el navegador, nos dará como respuesta los datos de los dos últimos envíos que se han realizado al canal (si pusiéramos al final 5, nos devolvería los 5 últimos datos). Enviamos la URL y obtenemos este resultado:
{"channel":{"id":2079877,"name":"JCZ - IOT - Riego","description":"Canal para abrir / cerrar un aspersor para riego","latitude":"0.0","longitude":"0.0","field1":"Field Label 1","created_at":"2023-03-24T17:12:12Z","updated_at":"2023-03-24T17:12:27Z","last_entry_id":12},"feeds":[{"created_at":"2023-04-12T22:58:50Z","entry_id":11,"field1":"0"},{"created_at":"2023-04-12T22:59:15Z","entry_id":12,"field1":"1"}]}
Analizando el texto resultante, vemos que pone el nº identificativo de mi canal, el nombre, la descripción, cuando se creó, número de entradas totales y, finalmente la fecha y dato (1 ó 0), de los dos últimos envíos.
Ejemplo de consulta de 5 últimos datos:
En la siguiente entrada veremos un ejemplo práctico con una app capaz de leer los datos de mi canal y poner una foto de un riego abierto si el último dato es un 1 o un riego cerrado si el último dato es un 0.
Pero antes, vamos a simplificar toda la respuesta, para tener solo lo relativo al último dato, es decir, sin nombre del canal, descripción, etc... El último paréntesis con los datos separados por comas: (created at..., entry id..., field1...), lo que en informática se conoce como un json.
Para ver solo el último dato de forma abreviada en un json, hacemos los siguientes paso:
Primero: Borramos en la URL de lectura
(https://api.thingspeak.com/channels/2079877/feeds.json?results=2) a partir del símbolo “?” y escribimos tras “?” api_key= junto a la Read Key de lectura de nuestro canal: api_key= LS58OZ0OV5RS53JB
https://api.thingspeak.com/channels/2079877/feeds.json?
api_key= LS58OZ0OV5RS53JB
Segundo cambio: Antes del punto entre feeds y .json, escribimos: /last
https://api.thingspeak.com/channels/2079877/feeds/last.json?api_key=LS58OZ0OV5RS53JB
Comprobamos que esta última URL nos informa con una mayor brevedad del último dato:
{"created_at":"2023-04-12T22:59:15Z","entry_id":12,"field1":"1"}
Como veremos en la próxima entrada, hay formas de conseguir solo el dato asociado a field1 para que pueda ser utilizado por cualquier recurso domótico/electrónico. En nuestro caso será una aplicación de un móvil.