domingo, 15 de noviembre de 2020

Conexión a Thingspeak mediante API - Crear canal

Continuando con la entrada anterior, en esta se mostrará el código para crear un canal en la base de datos ThingSpeak, al que se le enviarán datos en una entrada posterior. 

ThingSpeak es una base de datos online, a la que se puede acceder con una cuenta de Matlab. Es una página web con una interfaz comprensible, en la que se pueden gestionar los canales y su contenido a mano. Sin embargo, como hemos visto en la entrada anterior, también es posible comunicarse con una página web mediante HTTP. Como el cliente que va a enviar datos lo debe hacer sin intervención humana, éste será el camino a seguir.

Para esta tarea, muchas páginas y servicios online ofrecen una API (application programming interface). Esta herramienta facilita la tarea de comunicarse mediante HTTP, mostrando claramente como acceder a los recursos que interesan. La empleada en este caso se puede encontrar aquí. 

Para programar todo esto se empleará Python. Este lenguaje contiene librerías que permite dar formato al mensaje HTTP, para que el programador no tenga que estar haciéndolo a mano. Otra librería implementa las funciones necesarias para enviar el mensaje, y recibir la respuesta del servidor. El contenido de esta respuesta se interpreta posteriormente, si se desea, mediante otra librería.

El código quedaría como sigue. El cuerpo y las cabeceras se han dividido en dos líneas para que el código entre en el formato del blog, pero originalmente sería una única línea:

import requests
import urllib.parse 
uri='https://api.thingspeak.com/channels'

cabeceras={'Host':'api.thingspeak.com'
'Content-Type':'application/x-www-form-urlencoded'}

cuerpo={'api_key':'XXXXXXXXXXXXXXXX', 'name':'Datos_PC',  
'field1':'CPU', 'field2':'RAM'}

cuerpo_coded=urllib.parse.urlencode(cuerpo)
cabeceras['Content-Length']=str(len(cuerpo_coded))

respuesta=requests.post(uri, headers=cabeceras, data=cuerpo_coded)

Mediante la 'api_key' se accede al usuario de la base de datos. Después, dentro de este usuario, se creará el canal 'Datos_PC', con los campos 'CPU', y 'RAM'.

Si se quiere comprobar que el canal se ha creado correctamente, se pueden añadir las siguientes líneas:

estatus=respuesta.status_code
descripcion=respuesta.reason

print('Status: '+str(estatus))
print('Descripcion: '+descripcion)

 Si el estatus mostrado es 200, y la descripción 'OK', el código se ha ejecutado correctamente.


  

 


No hay comentarios:

Publicar un comentario