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 deben leer estos datos para encenderse o apagarse. ¿Cómo pueden 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 DLM-IoT- Riego en thingspeak está en: API Keys -> Read a Channel Feed: https://api.thingspeak.com/channels/2079861/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 pusieramos al final 5, nos devolvería los 5 últimos datos). Enviamos la URL y obtenemos este resultado:
{"channel":{"id":2079861,"name":"DLM - 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-24T16:42:08Z","updated_at":"2023-03-24T16:42:35Z","last_entry_id":15},"feeds":[{"created_at":"2023-03-29T18:05:11Z","entry_id":14,"field1":"0"},{"created_at":"2023-03-29T18:08:43Z","entry_id":15,"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.
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/2079861/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=6C66HNYFN0PIYN1G:
https://api.thingspeak.com/channels/2079861/feeds.json?api_key=6C66HNYFN0PIYN1G
Segundo cambio: Antes del punto entre feeds y .json, escribimos: /last
https://api.thingspeak.com/channels/2079861/feeds/last.json?api_key=6C66HNYFN0PIYN1G
Comprobamos que esta última URL nos informa con una mayor brevedad del último dato:
{"created_at":"2023-04-12T18:21:34Z","entry_id":32,"field1":"0"}
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.