Temperatur , Luftfeuchtigkeit sowie Luftdruck durch beebotte überwachen

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo Forum,


    es wäre sehr nett, wenn jemand mir helfen würde. Ich will anhand DHT22 und BMP280 die Temperatur, die Luftfeuchtigkeit sowie den Luftdruck durch Beebotte überwachen.

    Mein Code sieht wie oben aus. Leider kann ich nur die Daten von DHT22 zum Beebotte senden und die Daten von BMP280 wird nciht gesendet. Wenn einer mir dabei helfen würde, wäre ich ihm dankbar.

    Abgesehen davon werde ich mich auch sehr freuen, wenn jamand mir zeigen kann, wie ich die Daten der zwei Sensoren in CSV file speichern kann.

    Vielen Dank

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3

  • Hallo,


    und willkommen im Forum.

    Bitte poste deinen Code in Code-Tags (</>) mit den Einrückungen, diese sind für Python sehr wichtig. Sieht dein Code so aus?

    Ich habe die Einrückungen mal geraten.

    Bekommst du irgendwelche Fehlermeldungen?

    Hier ist ein Leerzeichen zu viel und anstatt dem % vor 'bmp' muss ein Punkt und ein 'format' sein:

    Code
    print("Pressure= %0.1f hPa" %bmp280.pressure)

    Also:

    Code
    print("Pressure= %0.1f hPa".format(bmp280.pressure))

    Wenn du angibst was bei einer 'Exception' ausgegeben wird, dann erscheinen nicht die notwendigen hilfreichen Fehlermeldungen. Wenn dann schreibe:

    Code
    except Exception as e:
        print(e)

    Konntest du den 'bmp280' mal einzeln auslesen?


    Allgemein zum Code: Konstanten schreibt man in GROSSBUCHSTABEN, Variablen und Funktionen klein_mit_unterstrich. Dabei sollte man keine Abkürzungen verwenden sondern sprechende Namen. Das macht den Code viel einfacher zu lesen. Üblicherweise hat ein Python-Programm eine 'main'-Funktion in der der Programmablauf gesteuert wird. Allgemein verwendet man keine *-Importe. Dadurch holst du dir alle Namen dieses Modul in dein Programm. Das kann zu Namenskonflikten und unübersichtliche Programmen führen.

    Ich kenne beebot nicht, von dem her dient der Code eher als Veranschaulichung was ich mit meinem Text sagen wollte.

    Ungetestet:

    Bitte bei deinem nächsten Versuch die vollständige Fehlermeldung mit posten.

    wenn jamand mir zeigen kann, wie ich die Daten der zwei Sensoren in CSV file speichern

    Schau mal hier:

    https://docs.python.org/3/library/csv.html


    Grüße

    Dennis

    🎧 Mein Auto springt, mein Toaster kocht, es zwickt mich im Genick. Meine Frau ist eingelocht, die Spülmaschine tickt. Meine Telefonapperat brüllt mich seit Tagen an, er ist schon lange abgestellt im Bett liegt Peter Pan. Die Uhr geht falsch, die Haustür singt, mein Spiegel schlägt zurück - Ich werde noch verrückt, was solls ich bin entzückt. Die Badewanne zieht nicht ab ihr glaubt nicht was ich seh' - Sie ist voll Himbeerengelee 🎧

  • Vielen Dank für die gute Erklärung !

    Zu Deiner ersten Frage:

    Konntest du den 'bmp280' mal einzeln auslesen?

    Ja kann ich

    nur print("Pressure= 01.1f hpa" %bmp280.pressure)

    print("Pressure= %0.1f hPa" %bmp280.pressure)


    Bitte bei deinem nächsten Versuch die vollständige Fehlermeldung mit posten.

    Temp=21.3*C Humidity=65.1%

    Pressure= %0.1f hPa

    Status: 404; Code 1303; Message: Requested channel not found!

    wenn ich Deinen Code ausführe, bekomme ich diese Meldung.

    und Wenn ich meinen Code ausführe bekome ich diese Meldung:

    Temp=21.3*C Humidity=66.1%

    Pressure= 1019.4 hPa

    Error while writing to Beebotte

    Hier ist ein Leerzeichen zu viel und anstatt dem % vor 'bmp' muss ein Punkt und ein 'format' sein:

    Ich habe null Ahnung von Programmieren. Aber die aktuellste Bibliothek von BMP280 funktioniert nur mit %... Die ist bei GitHub zu finden.

    hhtps://github.com/adafruit/Adafruit_CircuitPython_BMP280

    und willkommen im Forum.

    Bitte poste deinen Code in Code-Tags (</>) mit den Einrückungen, diese sind für Python sehr wichtig. Sieht dein Code so aus?

    Vielen vielen Dank! in der Zukunft werde ich es besser machen. Mein Code sieht ein bisschen besser aus als das was ich hier gepostet habe....

    vielen Dank für die gute Erklärung

    viele Grüße

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3

  • Bitte bei deinem nächsten Versuch die vollständige Fehlermeldung mit posten.

    Das auf dem obigen Bilde (Bild 1) ist der Code, den Du mir netterweise zur Verfügung gestellt hast.

    Und das auf dem unteren Bild (Bild 2) ist der Code, den ich gepostet habe.


  • Du verwendest 2 Fühler, die im Prinzip das selbe können, aber unterschiedlich ans System gebunden sind, nur der BMP280 kann noch zusätzlich noch den Luftdruck messen.

    Ist dass so gewollt, also 2x Temperatur/Feuchtigkeit und 1x Luftdruck?

    Wenn nein, dann würde ich einen einzigen BME280 verwenden, der Luftdruck, Temperatur und Luftfeuchtigkeit messen kann!

    So ein BME280 ist z.B. in meinem Selbstbau Außentemperatursensor für meine Raspberrymatic drin.

  • Ist dass so gewollt, also 2x Temperatur/Feuchtigkeit und 1x Luftdruck?

    Eigentlich nicht. Bin in der Ausbildung als Elektroniker und mein Lehrer meinte, dass ich die zwei Sensoren verwenden soll. Aber wenn Ich mir einen BME280 bestellen würde, würdest Du bitte mir Deinen Code zur Verfügung stellen. Ich werde Dir sehr dankbar sein. Da ich null Ahnung von Python und Sensoren habe, wäre Deine Dokumentation eine sehr nützliche Grundlage für mich.

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3

  • Grüße,

    Ich will anhand DHT22 und BMP280 die Temperatur, die Luftfeuchtigkeit sowie den Luftdruck durch Beebotte überwachen.

    Sind beide Sensoren am RPi angeschlossen?


    Woher weißt du welche Werte von welchem Sensor stammen?



    Wobei ich mir nicht sicher bin ob das so funktionieren wird. Musste mal testen.


    Benutze am besten f-Strings. Python f-string tutorial


    Wenn du deine Daten versenden möchtest musst du laut Beebotte entweder: deinen API KEY + Secret_Key + Host angeben

    Python
    from beebotte import *
    
    _accesskey  = 'YOUR_API_KEY'
    _secretkey  = 'YOUR_SECRET_KEY'
    _hostname   = 'api.beebotte.com'
    bbt = BBT( _accesskey, _secretkey, hostname = _hostname)

    oder du nutzt eine Channeltoken:

    Python
    ### Alternatively you can authenticate using the channel token
    _token      = 'YOUR_CHANNEL_TOKEN'
    bbt = BBT(token = _token, hostname = _hostname)


    Der Grund warum du einen Error beim schreiben bekommst ist das du:

    Python
    temp_resource.write(temperature)

    geschrieben hast.


    BBT weiß so aber nichts von deinen Werten.

    zum Schreiben nutzt du :

    Code
    bbt.write("channel1", "resource1", "Hello World")

    Wobei das resource deine Daten sind. Also Temp., Luftfeuchte usw.


    In dem bbt. sind deine, ich sag mal, Anmeldedaten für BBT enthalten.



    Edit:

    Github BBT

    Adafruit BMP280 RPi Python

    Adafruit DHT RPi Python

    Edited 4 times, last by keepfear ().

  • Sind beide Sensoren am RPi angeschlossen?


    Woher weißt du welche Werte von welchem Sensor stammen?

    Ja beide Sensoren sind am RPi angeschlossen. Ich kann nur die Werte von DHT22 zum Beebotte senden. Nur die Werte von BMP280 kann ich leider nicht Beebotte senden.

    Mit dem folgenden Code kann ich nur die Daten von DHT22 an Beebotte senden und dabei erhalte ich diese Fehlrmeldung:

    Code
    "Error while writing to Beebotte"

    Weil die Werte aus bmp280 nicht an Beebotte gesendet wird. Zur bessere Übersicht mache ich ein Screenschot

    Wenn ich die Quelle von Luftdruck auf "pressure " stelle, steht da 51 years go anstatt 67.60 2 days ago

    Die obigen Abbildungen sind das Resultat von diesem Code

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3

  • Wobei ich mir nicht sicher bin ob das so funktionieren wird. Musste mal testen.


    Benutze am besten f-Strings. Python f-string tutorial

    Wenn ich Deinen Code ausführe .

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3

  • Wenn ich den Code ausführe , erhalte ich folgende Fehlermeldung;

    Code
    File "test.py", line 52
    print(f"DHT-Sensor:{temperature_c} °C, {temperature_f} F, Luftfeuchte:{humidity} %")
    ^
    SyntaxError: invalid syntax


    Line 52:

    Python
     print(f"DHT-Sensor:{temperature_c} °C, {temperature_f} F, Luftfeuchte:{humidity} %")

    ;) Der Meister war auch mal Anfänger, er hatte auch von 0 angefangen <3