nesnelerin interneti için veri kayıt alanları : thingspeak platformunun raspberry ile kullanım örneği
nesnelerin interneti için veri kayıt alanları : thingspeak temel kullanım yazısında thingspeak üzerinde nasıl kanal oluşturulacağı ve temel yönetim özellikleri değinilmişti.
şimdi bu platform üzerine basit bir örnek yapalım. raspberry pi üzerinde phyton ile bir kaç temel parametreyi okuyarak thingspeak kanalı üzerine gönderelim.
thingspeak üzerinde bir kanalda veri tutulabiliyor. biz bu örneğimizde anlık cpu kullanımı, ram kullanımını ve cpu sıcaklık değerini gönderelim.
siz gpio arayüzünden aldığınız verileri kod üzerinde ufak bir değişiklik ile gönderebilirsiniz.
import httplib, urllib
import psutil
import time
import os
def cpu_sicaklik_oku():
res = os.popen('vcgencmd measure_temp').readline()
return(res.replace("temp=","").replace("'C\n",""))
if __name__ == "__main__":
while True:
cpu = psutil.cpu_percent()
ram = (psutil.avail_phymem()/1024)/1024
cpu_sicaklik = cpu_sicaklik_oku()
params = urllib.urlencode({'field1': cpu, 'field2':ram, 'field3':cpu_sicaklik, 'key':'THINKSPEAK_KEY'})
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
conn = httplib.HTTPConnection("api.thingspeak.com:80")
conn.request("POST", "/update", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
conn.close()
time.sleep(60)
şimdi yazdığımız basit bu konu çalıştıralım.
pi@cicek ~ $ python thingspeak_ornek.py > /dev/null &
artık her 1 dakikada bir bu veriler okunarak thingspeak platformuna gönderilecektir. benim yapmış olduğum bu örneğin sonuçlarını
https://thingspeak.com/channels/70080/
adresinden bakılabilir. isterseniz web siteniz içerisinede sorunsuz olarak gömebiliyorsunuz.
<iframe width="450" height="260" style="border: 1px solid #cccccc;" src="http://api.thingspeak.com/channels/70080/charts/1?width=450& height=260&results=60&dynamic=true&yaxis=Y%C3%BCzde&xaxis=Tarih& title=CPU%20Kullan%C4%B1m" > </iframe>