miércoles, 12 de abril de 2023

Lectura de datos de un canal de IoT

 Buenas tardes,

En anteriores entradas habíamos visto como escribir datos en una canal de 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 y apagarse. ¿Como puede leerlos?

Como vamos a ver lo hace a traves 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, veamoslo como un ejemplo:

La URL de consulta de últimos datos en mi canal RMN-IoT - Riego en thinkspeak esta en: API Keys - > Read a Channel.

Feed: https://api.thingspeak.com/channels/2079857/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":2079861,"name":"RMN - 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 del 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 ú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/2079857/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=HCCH2UNNI7O9WDGL:

https://api.thingspeak.com/channels/2079857/feeds.json?api_key=HCCH2UNNI7O9WDGL

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


Comprobamos que esta ultima URL nos informa con una mayor brevedad del ultimo dato:

{"created_at":"2023-04-12T18:19:34Z","entry_id":26,"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 practica de una antena parabólica

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