W przypadku , gdy zachodzi potrzeba, udostępnienia określonego, niewielkiego zakresu danych pobranych z czujników Raspberry Pi, stawianie całego Domoticza wydaje się bezzasadne. Z pomocą przychodzą serwisy gromadzące i analizujące dane takie jak np. popularny https://thingspeak.com/. Dzięki temu portalowi możemy w prosty sposób uruchomić np. termometr, wysłać dane na serwer, wizualizować i śledzić na bieżąco zmiany. Serwis ThingSpeak to także, albo głównie , narządzie służące do analizy przesłanych danych, ale o tym może innym razem.
Założenie konta w serwisie ThinkSpeak
Po potwierdzeniu adresu email logujemy się na konto.
Dodanie kanału do gromadzenia danych
Następnie zakładamy nowy kanał, do którego będziemy wysyłać dane.
Na próbę postanowiłem przesłać dane o temperaturze wewnętrznej Raspberry Pi. Wypełniamy poniższe pola.
Pamiętajmy o zapisaniu danych.
Pobranie klucza API
Przechodzimy do swojego kanału i wybieramy „API Keys”. Na początku będziemy potrzebowali klucza „Write”
Skrypt przekazujący dane
Teraz możemy przejść do modyfikacji skryptu przesyłającego dane. Autorem kodu jest ‚skunda’.
#!/usr/bin/env python import httplib, urllib import time sleep = 60 # ile sekund ma upłynąć pomiędzy odczytami key = 'XXXXXXXXXXXXXXXXX' # klucz API do kanału Thingspeak def thermometer(): while True temp = int(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1e3 params = urllib.urlencode({'field1': temp, 'key': key}) headers = {"Content-typZZe": "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 if __name__ == "__main__": while True: thermometer() time.sleep(sleep)
Informacje jak ustawić uruchamianie skryptu przy starcie można znaleźć tu.
Wizualizacja danych
Po uruchomieniu skryptu powinniśmy otrzymać wykres z naszymi danymi.
Aplikacje na Androida.
Jeżeli zależy nam na byciu na bieżąco z danymi proponuje użyć aplikacji na telefon. Polecam dwie z nich ThingView oraz IoT ThingSpeak Monitor Widget. Do tego drugiego programu potrzebowali będziemy klucza „Read” z zakładki „API Keys” kanału.