Raspberry Pi Sensordaten mit ThingSpeak loggen und auswerten

Häufig fallen in Projekten, die rund um die Uhr laufen, eine Menge Daten an. Um diese dauerhaft zu speichern ist ein Weg, die Daten in einer lokalen Datenbank zu speichern. Jedoch gibt es auch einige Gründe, die dagegen sprechen. Um die gemessenen Daten (z.B. aus einer Wetterstation) auch in Zukunft verfügbar zu halten, kann man auch verschiedene Online Dienste ausweichen.

Einer dieser Anbieter ist ThingSpeak. Hier kann man für kleinere Anwendungen einen kostenlosen Account erstellen und seine Daten sehr einfach übertragen. Und genau darum geht es in diesem Tutorial: Wie man Sensordaten zu ThingSpeak überträgt und diese später auswertet.

 

Zubehör

Alles was du benötigst ist einen Raspberry Pi mit Internetanschluss und einen Sensor, dessen Daten du misst. Aber selbst die CPU Aktivität kann protokolliert werden. In diesem Tutorial nutze ich einen DHT22, mit Hilfe dessen ich die Temperatur und Luftfeuchtigkeit messe und logge.

Für eine Wetterstation wären folgende Sensoren und Module sinnvoll:

Eine Auflistung von weiteren Komponenten findest du in diesem Artikel: 50 der wichtigsten Raspberry Pi Sensoren und Module

 

ThingSpeak Account einrichten

Bevor wir loslegen, wird ein Account bei ThingSpeak benötigt. Erstelle dir dazu hier einen Account, sofern du noch keinen hast. Anschließend erstellst du unter https://thingspeak.com/channels einen neuen Channel.

Hier vergibst du einen Namen für den Channel sowie welche Felder du nutzen willst. Insgesamt können bis zu 8 Felder genutzt werden. Die vergebenen Namen haben keinen Einfluss auf die Übertragung der Daten, da wir nur „field1“, „field2“, usw. angeben. Alle diese vergebenen Namen sind auch später noch veränderbar.

thingspeak_neuer_channel

Nachdem du den Channel unten gespeichert hast, wirst du automatisch in den Reiter „Private View“ weitergeleitet. Hier werden die vergebenen Felder als Diagram angezeigt. Etwas weiter oben findest du die „Channel ID„. Diese werden wir gleich noch brauchen.

Anschließend wechseln wir noch in den Reiter „API Keys“. Die beiden Werte von „Write API Key„, sowie „Read API Key“ werden ebenso gleich benötigt, damit wir Daten schreiben bzw. abrufen können.

 

Temperatursensor anschließen und einrichten

Falls du den DHT11 bzw. DHT22 nicht nutzen willst, kannst du dieses Kapitel überspringen.

Auf die beiden Sensoren bin ich im Detail bereits hier eingegangen, daher nur noch einmal die Verbindung als Erinnerung (10kΩ Widerstand):

luftfeuchtigkeit_DHT11_Steckplatine

Sofern du den Sensor vorher nie benutzt hast und auch die entsprechende Bibliothek noch nicht installiert ist, müssen wir erst einmal diese installieren. Dafür sind einige Pakete vonnöten:

sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git

Nun installieren wir noch die Bibliothek zum Auslesen des DHT11/22 Sensors:

git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT
sudo python setup.py install

Ist alles ohne Fehler durchgelaufen, können wir bereits fortfahren.

 

Raspberry Pi ThingSpreak Bibliothek nutzen

Um den Service nutzen zu können ist ein einfaches Senden der Daten per „POST“ bzw. abrufen per „GET“ möglich. Funktionen dazu sind in so gut wie jeder Programmiersprache vorhanden und mit ein wenig Kenntnis sollte die Datenübertragung schnell gebaut sein. Die Antworten sind prinzipiell in JSON.

Wer (noch) nicht über genug Erfahrung dazu besitzt oder einfach keine Lust hat es selbst zu schreiben kann auch die ThingSpeak Bibliothek nutzen. Dazu installieren wir sie einfach per pip:

sudo pip install thingspeak

Hierbei wird einerseits eine Python Bibliothek erstellt und zusätzlich eine Terminal-Anwendung. Du kannst thingspeak also auch über die Konsole aufrufen (bzw. aus einem anderen C++/Java Programm).

 

Fangen wir also an. Unser kleines Python Skript soll alle 15 Sekunden die Temperatur und Luftfeuchtigkeit des DHT22 auslesen und diese an unseren Channel senden. Außerdem sollen die Daten danach nochmal abgefragt werden (dies wird in Anwendungen, die nur Daten senden, nicht nötig sein; daher ist es nur ein Demonstrationsbeispiel).
Wir erstellen eine neue Datei,

sudo nano thingspeak_example.py

welche folgenden Inhalt bekommt (Speichern und Beenden mit STRG+O, STRG+X):

Die Zeilen 5 bis 7 musst du entsprechend anpassen. Zeile 8 muss lediglich verändert werden, sofern du einen anderen GPIO für den Sensor nutzt.

Falls du den DHT22 Sensor nicht nutzt, so muss der Code natürlich ein wenig angepasst werden.

 

Daten im Webpanel und per API abrufen

thingspeak_view

Die Daten des Panels werden mit wenigen Sekunden Verzögerung „quasi live“ angezeigt. Du kannst die Panels individualisieren (Aussehen und Datenanzeige) und sogar eigene Ansichten für die Daten schreiben. Für diese sogenannten Apps musst du lediglich ein wenig HTML, CSS und Javascript beherrschen. Alternativ kannst du dir auch Plugins aus dem Forum laden.

 

Falls du die Daten per API aufrufen möchtest, kannst du dies auch einfach per JSON. Dabei musst du deine Channel ID (bei mir: 206897) sowie deinen „Read API Key“ (bei mir: 9EZ7E0918UVVAGAY) in folgendem Link ersetzen:

https://api.thingspeak.com/channels/206897/feeds.json?api_key=9EZ7E0918UVVAGAY

Darüber hinaus gibt es noch eine Menge weiterer Parameter, die du zur Eingrenzung, Summierung oder Filterung der Daten angeben kannst. Du findest sie im MathWorks Wiki.

 

Als Schlusswort möchte ich dennoch darauf hinweisen, dass man sich immer bewusst sein sollte, was genau man überträgt. Auch wenn es sich bei ThingSpeak um einen seriösen Anbieter handelt, sollte man besonders sensible Daten u.U. selbst speichern, auch wenn dies etwas umständlicher und weniger ausfallsicher ist. Für unkritische Projekte wie Wetterstationen oder bspw. die Überwachung eines Aquariums sehe ich jedoch keine Gefahr.

102 Kommentare

  1. Habe jetzt mal die Links zu den Modulen usw. angesehen.
    Muss man die von Amazon benutzen, oder gehen die Breadboards, Sensoren , Jumpwires usw.
    von diesem Shop auch?
    ramser-elektro.at/shop/

    Wenn nein: Was ist da der Unterschied?
    Irgendwie sehen die Teile gleich aus, wie bei Amazon.

    Antworten
  2. könntest du mal zeigen wie man dies ohne einen externen anbieter macht ? also sqlite db auf dem raspberry und dann einbindung auf eine onlineoberfläche.

    Antworten
    • Da ein Internetanschluss bei einem pi der außen am Haus oder gar im Garten als Wetterstation seinen Dienst tut, wohl eher selten vorkommt, ist dieses Tuturial wohl eher als Hilfe beim Speichern von Daten gedacht und weniger als Wetterstations-Tutorial.
      Lokal auf der Sd Karte des Pi haben solch Daten ja auch nichts verloren, die Karte wird schnell ihr Schreibzyklus-Limit erreicht habe und den Dienst verweigern. Deshalb der Ansatz mit dem externen Cloudspeicher. Als lokale Alternative bietet sich der Einsatz von rrdb oder ähnlichem auf einem usb stick an. Man kann beim Pi aber auch den ganzen Arbeitsbereich von der Sd Karte auf ein usb lauferk (Stick) auslagern, dann wird die Karte nur noch zum Boot benötigt.

      Antworten
      • Im eigenen Garten ist es nicht so unwahrscheinlich, dass man noch ein WLAN Signal empfängt. Und mit einem Pi 3 braucht man auch keinen Wifi Adapter mehr. Aber du hast dennoch Recht: Die Wetterstation dient nur als Beispiel zum loggen der Daten.

    • Ich empfehle influxdb als Datenbank für die lokale Speicherung der Messwerte, die ist speziell für die Speicherung von Zeitreihen ausgelegt und bietet einige Features, die für genau diesen Anwendungsfall besonders nützlich sind. So kann man z.B. einstellen, dass die Einzelmesswerte nach zwei Wochen zu z.B. Tagesmittelwerten aggregiert werden und nach einem halben Jahr dann ganz gelöscht werden, sodass der Speicherplatz nicht ausgeht.

      Antworten
  3. Vielen Dank für das Tutorial. Da ich ein ziemlicher Laie bin, habe ich folgende Fragen:
    Ich habe 3 Dallas-Sensoren (DS 18B20), die ich alle auf der Konsole einzeln auslesen kann.
    1.)Wie binde ich sie in die Datei „thingspeak_example.py“ ein ?
    2.)Was bedeutet „pin“ in dieser Datei (Pin-Ziffer od. GPIO-Ziffer)?
    vermutl. ja GPIO
    3.)In welches Verzeichnis wird diese Datei gelegt?

    Antworten
  4. Hallo.

    Ich bekomme beim Aufruf von der thingspeak python Lib folgende Fehlermeldung:
    AttributeError: ‚module‘ object has no attribute ‚Channel‘

    Auch wenn ich direkt in der python commandozeile nur „import thingspeak“ eingebe kommt dieselbe Meldung

    Hast du eine Idee?
    Danke & LG
    Reinhard

    Antworten
  5. Habe fast dasselbe problem. Wenn ich das script in python 2.7.9 (rasp pi 3) laufen lasse bekomme ich auch die Fehlermeldung ´module` object has no attribute `Channel`

    Antworten
  6. @Felix: Vielleicht kannst du das nochmals mit einem neu aufgesetztem Raspberry versuchen?
    Vielleicht tritt dann der Fehler bei Dir auch auf?
    Danke & LG
    Reinhard

    Antworten
  7. Hallo.
    Ich habe das Problem gefunden: Ich testete zuerst mit einem python Script mit Namen „thingspeak.py“. Dieses wurde zu thingspeak.pyc kompiliert und das folgende Testscript
    importierte genau dieses file anstelle des regulären thingspeak Moduls
    Sprich: Man darf sein Script nicht(!) „thingspeak.py“ nennen!
    LG

    Antworten
      • Hallo, ich habe die gleiche Fehlermeldung und bin neu auf diesem Gebiet. Also was genau darf ich nicht machen, damit diese Fehlermeldung nicht nochmal auftritt?? Habe es immer noch nicht so ganz verstanden…
        Liebe Grüße

    • Hallo, ich habe die gleiche Fehlermeldung und bin neu auf diesem Gebiet. Also was genau darf ich nicht machen, damit diese Fehlermeldung nicht nochmal auftritt?? Habe es immer noch nicht so ganz verstanden…
      Liebe Grüße

      Antworten
  8. Cool, genau sowas habe ich gesucht.
    Hat sofort geklappt…
    Nur der A2302 hat ne Macke und zeigt 100% Luftfeuchte an…
    Da muss ich wohl noch mal ran… 🙂
    Gruß Ingo

    Antworten
  9. Hallo,
    Ich habe ein Problem beim installieren von Thingspeak wenn ich „pip install thingspeak“ eingebe kommt nach kurzer Zeit Cleaning up… und dann in rot ein langer Fehler Code.
    Vielen Dank für die Hilfe im vorraus.
    Gruß Nicolas

    Antworten
    • Und davor steht: „error: could not create ‚/usr/local/lib/python2.7/dist-packages/thingspeak‘: Per mission denied“

      Gruß Nicolas

      Antworten
    • versuch es mal mit:
      sudo pip install thingspeak

      Das ist ein Fehler im Tutorial. Da wurde der command „sudo“ vergessen. Das die benötigten Adminrechte gibt

      Antworten
  10. Das Tutorial hat Prima funktioniert hab aber drei versuche gebraucht, hab es zweimal über SSH versucht wo es nicht geklappt hat und einmal direkt am Pi da hat es hin gehauen.

    Antworten
  11. Wenn ich das Script ausführen möchte bringt er mir in der Linie 13 einen Fehler.
    Folglich hab ich auch keine Auswertung bei thingspeak 🙁

    irgendwo dort hab ich nen Hacken drin ich hoff hier kann mir wer weiterhelfen

    Antworten
  12. wenn ich „check Module“ eingebe kommt eine Fehlermeldung: There`s an error in your program: invalid syntax
    Rot unterlegt ist except:
    Ich muß dazu sagen, daß ich mich nicht auskenne und nicht weiter weiß.
    Ich bin auf eure Hilfe angewiesen 🙂

    Antworten
    • Fehler gefunden. Ein paar blanks zuviel vor expect. Nun kommt Error import thingspeak No module named thingspeak.
      Jetzt muß ich suchen bzw. wenn einer ein Tipp hat, immer her damit.
      Danke

      Antworten
  13. Genau. Mit sudo pip install thingspeak hat es dann funktioniert. Jetzt kommt aber die Meldung connection failed. Mit demTestprogramm und dem Befehl
    sudo ./AdafruitDHT.py 22 4 hat das Auslesen der Daten funktioniert. Wo muß/kann ich noch eingreifen?

    Antworten
  14. Mit URL bin ich nicht weitergekommen. Ich teste das Programm mit einem Raspberry 3 mit Python 2.7.9 . Ruf das Programm /home/pi/Adafruit_Python_DHT/thingspeak_example.py auf und starte das Programm Run Module ( F5). Dann kommt die Meldung connection failed alle 15 sec.
    Channel ID und keys hab ich schon xmal überprüft.

    Antworten
  15. Hurra es funktioniert. Fehler war: das Programm war im Ordner Adafruit_Python_DHT. Muß aber anscheinend in den Ordner Adafruit_Python_DHT/Adafruit_DHT.
    Probieren geht über studieren 🙂
    #Felix danke für die Hilfe
    Gruß Hugi

    Antworten
  16. Jetzt muß ich es nur noch hinbekommen, dass das Programm beim Einschalten des Raspis startet. Vielleicht gibt es ein paar Hinweise 🙂
    Danke

    Antworten
  17. Bei mir funktioniert soweit alles, ich bekomme auch die werte (von meinem DHT11) bei Thingspeak angezeigt, jedoch liegen die alle so bei ca. 600-1200 (und so warm ist es bei mir nun mal nicht)… vllt. hat einer ja das selbe Problem oder kennt eine Lösung. Ich bedanke mich im voraus.

    vllt. ist ja auch der Sensor kaputt???

    Antworten
  18. #Felix
    Ich hab „so lösen“ gewählt. Leider kommt beim Test „Start “ eine Reihe Fehlermeldungen; z.B. dass „Import… “ usw. nicht gefunden wird. Ruf ich das Programm thingspeak_example.py direkt auf funktionierts. Hast du einen Tipp für mich?
    Vielen Dank
    Gruß Hugi

    Antworten
  19. Hallo, Vielen Dank für die geniale Anleitung. Auch ich als Laie habe es auf anhieb geschafft und freue mich nun an den Werten auf ThingSpeak. Nun wollte ich noch einen zweiten Sensor anschliessen um Innen / Aussentemperatur anzuzeigen. Da ich jedoch ein py Anfänger bin stehe ich an. Kann mir da jemand weiterhelfen ?
    Vielen Dank im voraus !
    Gruss Daniel

    Antworten
    • Wo hakt es denn? Du kannst den zweiten Sensor doch äquivalent zum ersten anschließen (anderer GPIO) und dessen Daten ebenfalls übermitteln. Die Anpassungen sind nur minimal.

      Antworten
  20. Seit 2 Tagen versuche ich mich an dem Projekt Raspberry Pi: Luftfeuchtigkeit.
    Ohne Probleme gelang es mit den DHT22 auszulesen.
    Danach habe ich mich bei ThingSpeak angemeldet und die nötigen Felder angemeldet, sowie meine Channel-ID und die beiden Keys abgeschrieben.
    Danach habe ich
    thingspeak_example.py
    abgeschrieben und mit meinen Daten modifiziert.
    Das Programm läuft auf meinem Pi 3 ab. Zeigt aber leider nur die Meldung „connection failed“.
    Da ich absoluter Anfänger bin, vermute ich, das ich einen Fehler gemacht habe.
    Den Quellcode habe ich schon mindestens 10x verglichen und mir ist kein Fehler aufgefallen.
    Wenn ich meine Daten bei ThingSpeak anschauen will, sehe ich, das keine übertragen wurden.

    Wenn ihr mir helfen würdet, wäre das toll!

    Antworten
    • Dann hast du vermutlich den Falschen GPIO Pin angegeben oder den falschen DHT22. Achte darauf das wenn du zum Beispiel „pin = 4“ verwendest, der DHT22 Data Port auch auf GPIO4 gesteckt ist.

      Antworten
  21. Hallo,
    Mir ist aufgefallen, dass im code pin = 4 angesprochen wird. Am Pi ist es aber 7, jedoch GPIO4.
    Werden mit pin = x die GPIO Nummern angesprochen.
    Ist für mich noch verwirrend, sorry beginner.
    Grüße

    Antworten
  22. Hallo! In deinem Tutorial sind ja 2 Sensoren angegeben, aber du erklärst nur, wie das mit dem DHT Sensor gemacht wird.

    Wie muss die Datei aussehen, wenn ich den DHT22 UND den BMP180 verwenden möchte?

    Ist für die Werkstatt und den 3D Drucker gedacht.

    Antworten
    • Ich nutze nur den DHT Sensor, der aber Temperatur & Luftfeuchte messen kann. Wenn du weitere Sensoren auslesen willst, pack die Abfrage grade darunter und sende sie z.B. danach zusammen an ThingSpeak.

      Antworten
      • Okay, danke!

        Kann den BMP sowieso vergessen, die Anschlüsse sind schon belegt vom 7″ Display, zumindest was die SDA und SDL Pins angeht.

        Nur noch eines, ich hab meinen Sensor hier bestellt, kann ich den so anschließen wie er ist oder sollte ich ihn ablöten und den 10k Widerstand normal anlöten?

      • Du kannst SDA und SCL auch parallel anschließen, da I2C Geräte nur über ihre Adressen identifiziert werden.
        Den Sensor kannst du aufgelötet lassen.

  23. Hi Felix,

    wenn ich bei dem ThingSpeak Script „field3″ und field4“ angebe, kommen keine Daten in die Felder.
    Kannst du mir verraten warum?

    Viele Grüße,
    Phil

    Antworten
      • Ja, natürlich. Mit field1 und 2 läuft es. Nur Feld 1 & 2 werden von anderen Daten gefüttert, Datum soll Temp nur in 3 & 4 geschrieben werden.

      • Und die Daten sind auch richtig (nicht, dass sie leer sind). Hast du sie geloggt? Falls ja, fällt mir gerade kein sinnvoller Grund ein, warum es mit den beiden Feldern nicht funktionieren sollte.

      • Naja ich hab weil ich dachte ich bin doof, dein Script genommen und nur die Feldnummern geändert. Funktioniert nicht. Ich versteh es auch nicht.

      • Problem gefunden. Der Free Account lässt ja nur alle 15 Sec einen Eintrag zu … Wenn ich aber mit 2 Python Scripten alle 15 Sec Einträge mache, kann es nicht funktionieren wegen dem Block seitens ThinkSpeak 😉 Also in ein Push zusammengefasst und es funktioniert 😉

  24. The tutorial shown here is possible only with digital sensor.I have to send heart pulse sensor which is an analog sensor.How can we modify line 8 of the program in case of analog sensors??

    Antworten
    • No, you can send values of digital and analog sensors to ThingSpeak. Because, when you read the value of an analog sensor (eg. with MCP3008) it becomes an digital value, which can be sent. Of course, you have to adjust the code and insert the part for reading the heartbeat sensor.

      Antworten
  25. Hallo! Beim Ausführen der Datei mittels sudo python … .py bekomme ich immer wieder die Meldung:
    File „thingspeak.py“, line 21, in
    channel = thingspeak.Channel(id=channel_id, write_key=write_key, api_key=read_key)
    AttributeError: ‚module‘ object has no attribute ‚Channel‘

    Was mache ich falsch? Read/Write Key und Channel-Id habe ich laut Anleitung umgeändert.
    Danke!

    Antworten
  26. Servus, super Seite!
    Hat auch alles soweit geklappt. Ist es möglich die Bodenfeuchtigkeit miteinzubinden?
    Schönen Gruß, Felix II

    Antworten
  27. Hallo!

    Nein hat leider nicht funktioniert, bekomme jetzt die Meldung:
    Traceback (most recent call last):
    File „thingspeak.py“, line 27, in
    channel = thingspeak.channel(id=channel_id, write_key=write_key, api_key=read_key)
    AttributeError: ‚module‘ object has no attribute ‚channel‘

    Hast du eventuell noch eine andere Idee?
    Danke!

    Liebe Grüße!

    Antworten
  28. Hallo,

    ich würde gerne in Field3 die CPU Temperatur ausgeben, wie muss mein Script dafür aussehen?

    PS: Super Tutorials haben mich schon weiter gebracht in Elektrotechnik und Programmieren

    Antworten
  29. Ich habe alles so durchlaufen lassen, wie auf der Homepage erklärt, leider werden aber keine Daten übertragen.
    An was könnte es liegen. Wo muss ich denn die example Datei speichern. Muss ich sie noch aktivieren. Bin absoluter Neuling.

    Danke für die Infos

    Antworten
  30. Hallo Felix,
    ich bin absoluter Neuling in Sachen Raspi/Datenlogger/Programmierung.
    Nun habe ich an einem Rapsberry Pi zwei DS18B20 (später eventeull mehr) angeschlossen und alles läuft soweit. Dein Tutorial habe ich dazu auch verwendet.
    Nun möchte ich die Daten auf ThingSpeak loggen. Wie genau muss dein Pythonscript geändert werden, um mehrere Sensoren bei ThingSpeak zu loggen? Die Daten müssen doch aus dem Verzeichnis /sys/bus/w1/… ausgelesen und übertragen werden?
    Ich habe davon echt keinen Plan und bitte hier um Hilfe. Eine intensive Suche bei Goolge hat mich auch nicht weitergebracht.

    Danke

    Antworten
    • Wenn du das Skript aus dem anderen Tutorial nimmst, kannst du die Ausgabe ganz einfach mit Python auslesen, indem du os.system() nutzt (Doku). Damit kannst du Shell Befehle aufrufen und die die Ausgaben anzeigen lassen.

      Antworten
      • Und nur das Script ändern das es auf die DS18B20 und ThingSpeak funktioniert geht nicht?
        Dein Weg ist mir irgendwie zu kompliziert.

      • Doch, in dem Skript für ThingSpeak rufst du an der gegebenen Stelle eben das andere Skript auf. Ist nicht wirklich kompliziert.
        LG, Felix

  31. Für mich schon 🙂 da ich nicht wirklich `nen Plan davon habe. Deshalb dachte ich an die Bearbeitung des Script ohne andere Scripts aufrufen zu müssen.

    Antworten
    • So wie du es vor hast ist es komplizierter. Nach meinem vorgeschlagenen Weg rufst du das Skript auf (eine Zeile). Du möchtest die Logik eines Shell Skripts hier rein packen. Das ist auch möglich, aber nicht unbedingt einfacher.

      Antworten
  32. Icch hatte eher an so etwas gedacht, nur eben für mehrere Sensoren.

    # python
    import httplib, urllib, os, glob, time
    
    os.system('modprobe w1-gpio')
    os.system('modprobe w1-therm')
    base_dir = '/sys/bus/w1/devices/'
    device_folder = glob.glob(base_dir + '28*')[0]
    device_file = device_folder + '/w1_slave'
    
    def read_temp_raw():
        f = open(device_file, 'r')
        lines = f.readlines()
        f.close()
        return lines
    
    def read_temp():
        lines = read_temp_raw()
        while lines[0].strip()[-3:] != 'YES':
            time.sleep(0.2)
            lines = read_temp_raw()
        equals_pos = lines[1].find('t=')
        if equals_pos != -1:
            temp_string = lines[1][equals_pos+2:]
            temp_c = float(temp_string) / 1000.0
            return temp_c
    
    temperatura = read_temp()
    params = urllib.urlencode({'field1': temperatura, 'key':'Pon_aquí_tu_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()
    Antworten
  33. Hallo,

    ich bekomme die Fehlermeldung „ImportError: No module named ‚thingspeak‘ . Die Installation der Bibliothek scheint aber geklappt zu haben.

    Antworten
      • Hatte/ Habe das gleich problem. Gibt eine weitere Fehlerquelle? Habe nun schon mehrfach versucht neu zu installieren, leider ohne Erfolg….

  34. Wie schaffe ich es denn in meinem Channel einen View zu erstellen, der mir auch alte Daten visualisiert? Ich würde gerne eine Grafik erstellen mit einem Temperaturverlauf der letzen Monate. An der Y Achse soll die Temperatur stehen, an der X Achse der Datumsbereich, z.B. Januar 2017 bis Juni 2017.

    Komme mit der Doku nicht so ganz zurecht, was die thingsread und plot Funktionen angeht und auch wie ich die Achsen definiere so dass es zu meiner obigen Fragestellung passt.

    Kann jemand helfen?

    Antworten
  35. Hallo,

    ich habe ein Problem beim Ausführen des scrips.
    Mir wird folgendes angezeigt:

    NameError:name ‚Adafruit_DHT. is not defined

    Was habe ich falsch gemacht?

    Antworten
  36. Erst einmal vielen Dank für die gelungenen Anleitungen, ich habe damit als völliger Raspian Anfänger ohne Probleme die SD Karte bespielen können und einen Sensor 22 anschließen und zum Laufen bringen können.
    Das Problem, was ich jetzt habe, ist scheinbar ein Python Problem: Wenn ich das kleine Script zur automatischen Übergabe an thingspeak laufen lasse, scheitert es schon an den ersten Zeilen.
    Import Zeile1 findet er nicht
    Import Zeile 2 wohl
    Import Zeile 3 ebenfalls nicht.
    Was mache ich da falsch?

    Antworten
      • Danke für die schnelle Antwort; eine Fehlermeldung konnte ich bei der Installation nicht erkennen,
        kann ich irgendwie sehen, ob die Installation geklappt hat?
        Der Befehl sudo ./AdafruitDHT.py 22 17 funktioniert zuverlässig, allerdings nur, wenn ich im selben Ordner bin.
        Kann es auch an den Pfaden liegen?

      • Naja, wenn du den Import Befehl in einer Python Konsole aufrufst und nichts importiert wurde, so wurde die Bilbiothek nicht richtig installiert. Das Adafruit Skript kannst du natürlich nur im Ordner aufrufen, da es nur dort vorhanden ist (ist allerdings keine Bibliothek).

  37. Da ich ein ziemlicher Neuling bin, weiß ich nicht, wie ich die Konsole bei Python öffne. Bisher habe ich mit Rechtsklick auf das Python Script die Datei über Thonny Python geöffnet und laufen lassen.

    Ich habe etwas herumprobiert und den Ordner Adafruit-DHT in den example Ordner kopiert und das Script thingspeak.py aus dem Ordner usr/local…. ebenfalls.
    Erfolg: Die ersten Zeilen gehen jetzt durch, ich bekomme aber eine Fehlermeldung:
    connection failed.
    Merkwürdig: Der Befehl sudo ./Adafruit_DHT 22 17 produziert jetzt eine Reihe an Fehlermeldungen, lösche ich den Ordner Adafruit_DHT wieder aus dem example Ordner, läuft er wieder, aber das script stoppt bereits in Zeile 3

    Antworten
  38. Danke, wieder etwas schlauer geworden.
    Die import Befehle einzeln eingegeben produzieren jedenfalls keine Fehlermeldungen, zeigt genauer gesagt nichts (falls das so sein soll).
    Ich muss morgen weiter probieren, habe jetzt leider keine Zeit mehr.
    Danke erst einmal für die Unterstützung!

    Antworten
  39. Es läuft jetzt!
    Ich habe die Datendatei in den Ordner Adafruit_DHT kopiert (Tipp hier in den Kommentaren), dann waren die Fehlermeldungen w. import weg, aber eine neue: connection failed.
    Problem lag bei mir, ich hatte in der API eine Null statt eines großen O, jetzt läuft es stabil.

    Danke für die Tipps und vor allem: Ohne diese Anleitung wäre ich nie soweit gekommen!

    Antworten
  40. Obwohl der Befehl „sudo pip install thingspeak“ über die Konsole korrekt ausgeführt wurde erhalte ich beim Starten des Programms folgende Fehlermeldung:

    File „/home/pi/thingspeak_example.py“, line 1, in import thingspeak
    Import Error: No module named ‚thingspeak‘

    Und nü???

    Antworten
  41. Ich habe thingspeak versucht über die Aufforderung ’sudo pip install thingspeak‘ zu installieren!?

    Versuche ich die drei Module der ersten Zeilen im Skript einzeln aufzurufen, wird nur das ‚time‘ modul erkannt. Weder ‚thingspeak‘ noch ‚Adafruit_DHT‘ werden erkannt. Dies wundert mich, da ich über die Anweisung ’sudo ./Adafruit.py 11 23′ beide Sensorwerte auslesen kann. Muss dann nicht zumindest das Adafruit_DHT Modul vorhanden sein?

    Mir fehlt wohl die Erfahrung und der Überblick; beschäftige mich erst seit 2 Tagen damit.

    Antworten
    • die Import Module können entweder lokal im Verzeichnis liegen oder global installiert. Wenn du die Python Konsole aus einem anderen Verzeichnis aufrufst, indem lokal nichts drin ist, kann es nur die globalen Bibliotheken laden.

      Antworten
  42. Hallo ich habe ein problem…..
    habe das komplette toutorial durchgemacht ohne Fehler!
    dann erste fehler meldung „no module name thingspeak“
    sudo pip install thingspeak
    wurde korrekt ausgeführt!
    habe aber keinen ordner gefunden im ordner adafruit_Python_DHT
    habe mich auf die suche gemcht und den Ordner „Thingspeak“ in der user system datei gefunden!
    dann kopiert und in den ADAFRUIT ORDNER EINGEFÜGT!
    nächster fehler:
    connection failed
    dann laut kommentaren—- thingspeak_example.py in den ordner adafruit_python_DHT,adafruit_DHT kopiert!
    nächster fehler:
    no module name adafruit_DHT
    diesen kopiert und als unterordner im Ordner Adafruit_DHT eingefügt
    nächster:
    no module name Thingspeak
    genauso kopiert un im Ordner Adafruit_Dht eingefügt
    jetzt bin ich am ende mit meinem latein…
    Jetzt wieder alle 15 sec. fehler connection failed!!!
    bitte weis jemand was??
    Write code: X mal kontroliert
    Read code: X mal kontroliert
    Channel code X mal kontroliert
    und auch neu generieren lassen!!!
    Danke im Voraus

    Antworten
  43. Könnte vill jemand eine auflistung der dateien im ordner Adafruit posten?
    Habe jetzt 10x neu aufgesetzt und alles neu instaliert komme einfach nicht weiter.

    Antworten
  44. Danke für das gute Tutorial! Ich habe es befolgt und es klappt sehr gut. Da ich allerdings relativ neu im Thema Raspberry Pi und Linux bin komme ich nicht weiter über deine Anleitung hinaus. Ich habe wie schon gesagt den DHT zum laufen gebracht, und auch den BMP180 aber bei diesem fällt es mir schwer die Daten an Thinkspeak zu senden. Wenn ich das Scipt wie du es für den DHT benutzt hast umschreibe , so dass es für den BMP funktioniert sagt er mir, dass er thinkspeak nicht findet(Datei liegt im Ordner der BMP installation). Wenn ich die Date nun in den Ordner in der die DHT Datei liegt verschiebe sagt er mir, dass er BMP nicht findet.

    Antworten
  45. Hallo,
    ich möchte einen A2302 auslesen und würde gerne wissen wie ich in der „thingspeak_example.py“ die Zeile 9 verändern muss. Wie rufe ich dann dieses Script auf? Wenn ich ./thingspeak_example eingebe kommt die Meldung: „keine Berechtigung“.

    Antworten
  46. habe es auch mit sudo probiert. klappte auch nicht. jetzt habe ich in der Datei in die erste Zeile „#!/usr/bin/python“ eingefügt und das Script ausführbar gemacht. Jetzt kann ich es starten.
    Ich bin mit Putty auf dem Raspberry und wenn ist das Python-Script gestartet habe werden die Befehle sichtbar. Wie kann ich das Script im Hintergrund starten und automatisch gestartet lassen. Schließe ich Putty wird das Script nicht mehr ausgeführt.

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!