BME280 Sensordaten zu Thingspeak senden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo ich versuche gerade nach einem Erfolg mit dem DHT22 das ganze auf den BME280 zu erweitern.

    Ich kann den BME280 manuell auslesen und möchte jetzt die Daten zu Thinkspeak senden.

    Der Code vom DHT22 ist folgender:

    Ich habe mal meine Kommentare/ Unwissen in den Code als # *.* eingefügt.

    Wobei ich bei Import keine externe Daten aus dem Netz geladen habe. Ich nutze nur ein bme280.py Script, das beim manuellem Starten die 3 Werte einmalig ausgibt. Für neue Daten muss das Skript wieder gestartet oder eine Zeitschleife eingefügt
    werden.

    Kann mir Bitte jemand dabei helfen das ans Laufen zu bekommen?

    Der DHT hatte ja auch nur eine Datenverbindung, der jetzige Sensor 2 (SDA,SCL).

    Später möchte ich das noch mit einem BH1750 Lichtsensor erweitern.

    Danke

    Einmal editiert, zuletzt von Doni (11. April 2018 um 17:48)

  • hyle so komme ich leider nicht weiter.

    Ich habe schon eine Weile gesucht aber keine Anleitung für mich gefunden die vom BME280 mit Thingspeak handelt. Nur für den 280 ist es schon extrem schwer was brauchbares für den Pi zu finden.

    Nach deinem Github Link muss auch die GPIO noci nstalliert werden, was ich getan habe und dann entsprechend setup.py ausgeführt. Bekomme da aber nur Fehlermeldungen. Beim testen der BME280 Beispiel .py

    Mein Netzscript klappt hingegen problemlos.

    • Offizieller Beitrag

    Mhh, was soll ich dazu schreiben? :conf: Ist alles richtig angeklemmt + I2C aktiv? Ich habe diesen Sensor nicht, also das Testen und Dich Informieren musst Du übernehmen.

    Ich wollte Dich lediglich bei der Suche unterstützen. ;)

  • Programmieren ist ein großes Problem (=Ziel) in viele kleine Probleme (=Etappen) zu zerlegen, einzeln zu lösen und zum großen Ganzen zusammenzubauen. Wäre ja langweilig, wenn es schon alles fix und fertig vorgekaut im Netz gäbe!

    Deswegen:

    1. Sensor ansprechen/auslesen
    2. Das mit Thingspeak lösen (was auch immer Thingspeak ist)
    3. Kombinieren

    Wie hyle sehr passend schreibt:

    das Testen und Dich Informieren musst Du übernehmen.

    Da stimme ich uneingeschränkt zu (ich hab den Sensor auch nicht). Wenn du es nicht selbst mit Recherchen hinbekommst, ist das Projekt eben eine Nummer zu groß für dich :stumm:

    Dann hilft nur der Zufall (jemand wirft dir hier die Lösung vor die Füße).

    Das schon gesehen? https://raspberrypi.stackexchange.com/questions/6425…-ioerror-python

    • Offizieller Beitrag

    Ich habe schon eine Weile gesucht aber keine Anleitung für mich gefunden die vom BME280 mit Thingspeak handelt.

    Irre, ich habe meine Suche um ein Wort erweitert und der erste Treffer: https://gist.github.com/marcelstoer/08…22f4b236f3524d4

    Na damit kannst Du doch bestimmt was anfangen... :)

    Achso, der Link zur Suche: https://www.google.de/search?q=bme28…thon+thingspeak

  • hyle Danke für den Link aber viel weiter komme ich leider nicht.

    Der Ersteller der git Datenbank verweist auf einen englischen Thread.

    Ok, den habe ich mir angeschaut und das Skript geladen.

    Das funktioniert soweit erstmal mit python 2 und ich bekomme die Sensorwerte angezeigt.

    Wenn ich jetzt das von Dir verlinkte Script installiere bekomme ich jedoch diverse Fehlermeldungen.

    Unter Python 2 kommt es nur

    Thinspeak ist von git gecloned, installeirt und Ordner zusätzlich im Home/pi/ Verzeichnis abgelegt.

    Unter python 3 ( da ich nicht weiß welcher Code das jetzt ist)

    Spoiler anzeigen

    Hier wird auf eine fehlende Verknüpfung zur bme280 verwiesen. Die Author der englischen Seite setzt aber keine weitere BME280 Datenbank vorraus, wie z.B. die von Adafruid zur Verfügung gestellte. Habe mir die trotzdem mal geladen, und installiert. Hat aber nichts gebracht.


    Kann das jemand entwirren?

  • :conf:

    ich glaub nicht dass es so gut ist den api key zu veröffentlichen.

    Hab den Beitrag mal gemeldet, in der HOffnung für dich, dass ein Mod ihn schnell genug unkenntlich macht

    EDIT: Du verwendest Python3, prints sind Funktionen, und benötigen somit eine () -> print("Hello World")

  • Hier wird auf eine fehlende Verknüpfung zur bme280 verwiesen.

    Ebenfalls :conf:

    Was für eine Fehlende Verknüpfung?

    Unter Python 2 kommt es nur

    Evtl. hat Thingspeak sein API geändert, aber Thingspeak kenne ich nicht. HTTP schon: https://de.wikipedia.org/wiki/HTTP-Stat…3_Client-Fehler, https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400

    //

    .json

    Bist du dir da sicher? Ich finde das: https://community.thingspeak.com/forum/esp8266-…00-bad-request/ sieht anders aus.

  • Hofei der API KEY ist Random und ohne den Rest unnutzbar, insofern kein Problem.

    Also wenn der Code für Thingspeak Python 3 ist kann ich den ersten Teil weglassen.

    Fragen

    1: Gibt es ein Problem wenn python 2 & 3 kombiniert werden? Der Autor von dem Thingspeak skript bezieht sich ja auf den englischen Autor und der hat in python 2 geschrieben.

    2.

    Code
     import bme280 # from https://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/File "/home/pi/bme280-thingspeak.py", line 2, in <module>

    Der Fehlercode sagt doch aus, das das bm280 Modul fehlt bez. nicht darauf zugegriffen werden kann, oder?

    Auf der hinterlegten Seite gibt es aber keinen BME280 Ordner den ich einbinden könnte. Nur das skript was auch einzeln problemlos läuft.

    3.er Teil der Fehlermeldungen bezieht sich ja auf die Ausgabe der Werte bez. fehlerhaften Code?

    der originalcode des Skriptschreibers ist:

    Code
    ch = thingspeak.Channel(275145, "*********", "*********")
    temperature, pressure, humidity = bme280.readBME280All()
    
    data = {"field1": temperature, "field2": humidity, "field3": pressure, "field4": get_temp()}
    # print(data)
    ch.update(data)

    Was ist daran falsch? Also ein Feld 4 gibt es eigntelich nicht es kommen nur drei Werte (Feld 1-3)

    Linus das die API anders ist glaube ich nicht, da mein anderer Sensor mit DHT22 sauber Werte an Thingspeak gibt.

    Habe aber wie beschrieben die neuste Version von Thinspeak geladen und setup.py ausgeführt.

    https://thingspeak.readthedocs.io/en/latest/inst…the-source-code

  • Der Fehlercode sagt doch aus, das das bm280 Modul fehlt bez. nicht darauf zugegriffen werden kann, oder?


    Auf der hinterlegten Seite gibt es aber keinen BME280 Ordner den ich einbinden könnte. Nur das skript was auch einzeln problemlos läuft.


    3.er Teil der Fehlermeldungen bezieht sich ja auf die Ausgabe der Werte bez. fehlerhaften Code?

    der originalcode des Skriptschreibers ist:

    Nö, da hast du was falsch verstanden. Lies dich mal zu Python Tracebacks ein. Steht doch oben: "Most recent call last", also wird die Fehlerquelle "verfolgt", vom Import, dann ins Modul und dort in einem print. Als letztes folgt die genaue Exception, hier ein falsches print (ohne Klammern).

    Zitat

    Der Fehlercode sagt doch aus, das das bm280 Modul fehlt

    Das wäre ein ImportError oder ModuleNotFoundError (ab 3.6).

  • hm ok . Hab ich wohl falsch übersetzt.

    Heißt aber doch, dass es ein Problem ist, das hier ein Python3 skript auf ein Python 2 script zugreift.

    Der betreffende Teil des englisches Scriptes wäre das hier:

    Würdest du mir bitte helfen wie man in Python 3 die entsprechenden Klammern setzt?

  • Bei so Kleinigkeiten ist es über Raspbian spielend einfach:

    Tippe in die Konsole 2to3 -w skriptname.py

    Und schon ists in Python3 übersetzt. Eventuell davor eine Backupdatei anlegen ;) Option -w überschreibt die vorhandene Datei

  • Eventuell davor eine Backupdatei anlegen ;) Option -w überschreibt die vorhandene Datei

    Dumm ist die Option -w auch nicht... ;)

    Doni 2to3 ist tatsächlich ein geniales Tool, siehe die Beispiele! Damit bekommst du fast alle Python 2 Scripte für Python 3 fit. Bitte fang nicht mehr mit Python 2 an, das ist jetzt sooooooooo alt und stirbt bald aka bekommt keine Patches mehr aka fliegt wahrscheinlich aus den Repositories aka hat eh viel mehr Fallstricke und weniger geile Features als Python 3: https://pythonclock.org/

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!