(siehe: Setup des RPi)
siehe: Aufbau und Anschluss der DHT22 Temperatur-Sensors.
(Hinweis: Es muss auch die Library zum Ansteuern der DHT22 installiert werden)
Zunächst legt man sich einen Account bei ThingSpeak an. Dieser ist kostenlos und bedarf nur weniger Schritte. Anschließend erstellt man einen neuen Channel.
Nach dem Speichern des Channels wird man automatisch zu der Ansicht "Private View" im neu
erstellten Channel weitergeleitet. Hier werden die vergebenen Felder als Diagramme angezeigt. Im oberen
Bereich der Seite befindet sich auch die "Channel ID", welche man für diesen Versuch benötigt.
Auch sollte man sich "Write API Key" und "Read API Key" speichern, die über den Reiter
"API Keys" zu erreichen sind.
Der Einfachheit halber wird hier die ThingSpeak-Library verwendet. (Um den Service nutzen zu können, ist
jedoch auch alternativ ein einfaches Senden der Daten per POST möglich).
sudo pip install thingspeak
(Der Python Package Installer »pip« muss dazu schon installiert sein)
Das folgende Python-Script liest alle 15 Sekunden die Temperatur und Luftfeuchtigkeit des DHT22 aus und
sendet diese Werte an den vorher angelegten Channel in ThingSpeak.
Hinweis: Im kostenlosen Account von ThingSpeak werden Werte nur max. einmal pro 15 Sekunden entgegengenommen.
#!/usr/bin/python
import thingspeak
import time
import Adafruit_DHT
CHANNEL_ID = XXXXXXXX # insert your ThingSpeak Channel ID here
WRITE_KEY = 'XXXXXXXXXXXXXXXX' # insert your ThingSpeak write key here
READ_KEY = 'XXXXXXXXXXXXXXXX' # insert your ThingSpeak read key here
PIN_DHT22 = 4 # =GPIO4
def measure(channel):
try:
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, PIN_DHT22)
response = channel.update({'field1': temperature, 'field2': humidity})
print response
except:
print("ThingSpeak: connection failed!")
if __name__ == "__main__":
channel = thingspeak.Channel(id=CHANNEL_ID, write_key=WRITE_KEY, api_key=READ_KEY)
while True:
measure(channel)
time.sleep(15)
Wird der obige Code nun ausgeführt, z.B.:
sudo python dht22_iot.py
so erhält man ein Resultat, welches ähnlich dem folgenden Bild sein dürfte.