miércoles, 12 de abril 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 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 JPB-IoT- riego en thingspeak está en: API Keys -> Read a Channel 

Feed: https://thingspeak.com/channels/2079859/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":2079859,"name":"JPB-IoT-riego","description":"Canal para abrir y cerrar un aspersor para riego ","latitude":"0.0","longitude":"0.0","field1":"Field Label 1","created_at":"2023-03-24T16:41:59Z","updated_at":"2023-03-24T16:42:35Z","last_entry_id":9},"feeds":[{"created_at":"2023-03-24T17:32:16Z","entry_id":8,"field1":"1"},{"created_at":"2023-04-12T16:34:12Z","entry_id":9,"field1":"0"}]}

Analizando el texto resultante, vemos que pone el nº identificativo de mi canal,el nombre, la descripción,cuando se creo,numero de entradas totales y, finalmente la fecha y dato (1 o 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 ultimo datos es un 1 o un riego cerrado si el ultimo dato es 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 bultimo parentesis con los datos (created at...entry id..., field1...) lo que en informatica se conoce como un json

Para ver solo el último dato de forma abreviada, hacemos lo siguientes paso:

Primero: Borramos en la URL de lectura https://api.thingspeak.com/channels/2079859/feeds.json?results=2) a partir del símbolo “?” y escribimos tras este símbolo api_key= junto a la Read Key de lectura de nuestro canal: api_key=1PXVSML2UILFGU90 https://api.thingspeak.com/channels/2079859/feeds.json?api_key=1PXVSML2UILFGU90

Segundo cambio: Antes del punto entre feeds y .json, escribimos: /last

https://api.thingspeak.com/channels/2079859/feeds/last.json?api_key=1PXVSML2UILFGU90

Comprobamos que esta última URL nos informa con una mayor brevedad del último dato:

{"created_at":"2023-04-12T18:17:53Z","entry_id":13,"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.





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élit...