Raspberry Pi Sensordaten mit ThingSpeak loggen und auswerten

21. Mai 2017
80 Comments

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.

80 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.

  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
  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

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!