domingo, 15 de noviembre de 2020

Conexión a Thingspeak mediante API - Enviar datos

 Después de crear el canal con el código de la entrada anterior, se puede proceder a enviar datos a los canales CPU y RAM. En este caso se van a enviar datos reales del porcentaje de uso de la CPU y la RAM del ordenador, por lo que será necesario usar una nueva librería (psutil) para obtener esos datos.

import psutil 
CPU=psutil.cpu_percent(interval=None,percpu=False)
print('CPU: '+str(CPU) +'%')

RAM=psutil.virtual_memory()
print('RAM: '+str(RAM.percent) +'%')

En este caso, los datos también se imprimen en pantalla. 

Una vez obtenidos los datos, el siguiente paso es enviarlos al canal creado previamente. Para eso será necesario obtener la clave API de escritura del canal. Se puede obtener mirando en la versión web de la base de datos, o de la respuesta obtenida al crear el canal. Cuando el programa esté completo la opción a elegir será la segunda, pero para este ejemplo se mostrará como simplemente introducida a mano.

import requests
import urllib.parse 
metodo='POST'
uri='https://api.thingspeak.com/update'

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

cuerpo={'api_key':'XXXXXXXXXXXXXXXX','field1':str(CPU), 
'field2':str(RAM.percent)}

cuerpo_coded=urllib.parse.urlencode(cuerpo)

cabeceras['Content-Length']=str(len(cuerpo_coded))

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

Este código enviará los datos de CPU y RAM al canal. Se puede repetir cíclicamente para enviar datos hasta que se le interrumpa, pero en la versión gratuita de ThingSpeak solo se pueden mandar datos cada 15 segundos, así que será necesario tenerlo en cuenta y programar un tiempo de espera. 

A continuación se muestran los datos de CPU enviados al canal.


 
 

No hay comentarios:

Publicar un comentario