Registo da temperatura do CPU do RPI na plataforma ThingSpeak
Quem tem um Raspberry Pi por casa talvez seja uma boa altura de começar a monitorizar o mesmo e até fazer alguns projetos interessantes como por exemplo registar a temperatura ambiente, a humidade, etc.
Depois de ensinarmos a registar do sinal Wi-Fi da placa NodeMCU na plataforma ThingSpeak hoje vamos mostrar como registar a temperatura interna do CPU do RPI na mesma plataforma.
ThingSpeak
Thingspeak é uma plataforma de análise IoT (Internet of Things) que permite agregar, visualizar e analisar streams de dados, de uma forma muito simples. Uma das grandes vantagens da plataforma Thingspeak é que nos permite visualizar os dados enviados pelos nossos dispositivos, em tempo real, mas também a possibilidade de analisar os mesmo recorrendo ao poderoso Matlab. Saber mais aqui.
Criar uma conta na plataforma ThingSpeak
Criar uma conta na plataforma ThingSpeak é algo bastante simples. Para tal basta aceder aqui e preencher com os dados solicitados. Depois é só confirmar o e-mail que é enviado pela própria plataforma (em nome da Mathworks).
Depois basta autenticarem-se na plataforma aqui e aceitar os termos e condições. Depois do processo de autenticação devemos criar um canal carregando em New Channel.
Em seguida devem indicar um nome (ex. CPU Temp) e no Field 1 coloquem, por exemplo, Temp. Por fim carreguem em Save Channel. Depois do canal criado, devem ir ao separador API Key e guardar o Channel ID e a Write API KEY.
Código no Raspberry PI
Dentro do Raspberry PI vamos fazer uso de um scrip temp.py (escrito em python) e devem colocar a vossa Write API KEY na variável key
#!/usr/bin/env python __author__ = 'munnecke' # This program logs a Raspberry Pi's CPU temperature to a Thingspeak Channel # To use, get a Thingspeak.com account, set up a channel, and capture the Channel Key at https://thingspeak.com/docs/tutorials/ # Then paste your channel ID in the code for the value of "key" below. # Then run as sudo python temp.py (access to the CPU temp requires sudo access) import httplib, urllib import time sleep = 60 # how many seconds to sleep between posts to the channel key = 'CHAVE AQUI' #Report Raspberry Pi internal temperature to Thingspeak Channel def thermometer(): while True: #Calculate CPU temperature of Raspberry Pi in Degrees C temp = int(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1e3 # Get Raspberry Pi CPU temp params = urllib.urlencode({'field1': temp, 'key':key }) headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"} conn = httplib.HTTPConnection("api.thingspeak.com:80") try: conn.request("POST", "/update", params, headers) response = conn.getresponse() print temp print response.status, response.reason data = response.read() conn.close() except: print "connection failed" break #sleep for desired amount of time if __name__ == "__main__": while True: thermometer() time.sleep(sleep) |
Depois de adaptado o script, grave e executem o mesmo usando o comando sudo python temp.py. Se tudo estiver bem configurado, verifiquem os dados a serem registados já na plataforma sudo ThingSpeak.
Como viram é muito simples trabalhar com o Raspberry PI e com a plataforma ThingSpeak. Agora é dar asas à imaginação e monitorizar, de forma simples, o que pretenderem (desde que tenham sensores).
Este artigo tem mais de um ano
Muito bom, não conhecia esta plataforma só usei o emon-cms
Bom dia, se quiser enviar a temperatura para outro raspberry pi em que o segundo raspberry pi seria um servidor como poderei fazer?