miércoles, 29 de marzo de 2023

Lectura de datos de un canal IoT

 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.

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/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.


No hay comentarios:

Publicar un comentario

Orientación práctica de una antena parábolica

 Hola a todos, En mi post anterior vimos dos prácticas sobre antenas satélites . La primera consistía en buscar la orientación de los satél...