Projekt: Raumklima mit BME680 OLED und ThingSpeak

Hallo, ich bin gerade mit einem neuen Projekt mit dem BME680 Grove-Board beschäftigt.
Über das Board werden Temp, Feuchte und Luftdruck gemessen. Diese Werte werden auf dem OLED angezeigt und mittels eines WLan-Boards an ThingSpeak zur Visualisierung geschickt.
Funktioniert grundsätzlich schon. Grundsätzlich heißt, dass ich Werte sehe und auch die Darstellung auf ThingSpeak läuft.
Problem: Die Werte für Temp und Luftfeuchte stimmen mit meinen Werten der anderen Wetterstation sehr gut überein (genauer als mit einem DHT20). Nur der Wert für den Luftdruck ist deutlich zu hoch. Zu erwarten sind 1010 hPa und angezeigt werden immer Werte um 1450 hPa.
Meine Stromversorgung läuft über USB 5V 2A Netzteil.
Weiteres Problem ist noch, dass beim ersten Einschalten die Werte auch für Temp und Feuchte erst deutlich zu hoch sind und erst beim zweiten Auslesen dann richtig sind. Also so eine Art „Anlaufschwierigkeit“, wie ich sie immer morgens beim Aufstehen habe. :sweat_smile:

Hallo Ulli,
Die Ungenauigkeit könnte daran liegen, dass bei der Erweiterung die Berechnung des Luftdruckes nicht kalibriert wird, d.h. es wird nicht die Sensorabweichung durch Temperatur und Feuchtigkeit ausgeglichen. Manche Erweiterungen tun dies, es gibt auch Sensoren die dies scon intern kompensieren.
Sorry,

Michael

Hm, tut sie doch. Dann ist irgendwo ein kleiner Fehler …

Hallo Michael,
in der Erweiterung gibt es einen Block, mit dem man optional einen „set temperature calibration“ Wert eingeben kann. Oder eine Formel, was ja mehr Sinn macht. Sonst müsste man ja jeden morgen nach dem Frühstück einen neuen Wert eingeben.
Die Frage ist nun nur, wie diese Formel (temperaturabhängige Kalibrierung) aussehen soll. Ich werde mal googlen oder die Firma anmailen. Vielleicht kennt sich da jemand aus. Ich hatte mir eine neue Variable erzeugt, der ich den Abweichungswert erst einmal täglich einstelle (sehr unwissenschaftlich, aber schafft einen neuen Mitarbeiterplatz :sweat_smile: )
VG ULLI

Ich habe nun eine Rückmeldung der Firma BOTLAND erhalten. Die sagen, dass der Sensorwert für den Luftdruck werkseitig kalibriert sein sollte. Wenn dann nach einer gewissen „Einbrennzeit“ (30 Min bis max 2 Stdn durch googlen erfahren) die vorgegebene Toleranz nicht eingehalten wird, ist er defekt.
Mit meinem BME280 hatte ich solche Probleme noch nie gehabt.

Für den 280 gibt es auch ein Paket.

Ich habe jetzt einmal das seeed grove BME680 Board abgezogen und auf Wunsch des Händlers zur Kontrolle an BerryBase geschickt. Bin gespannt, was die rausfinden.
Aktuell läuft nun das Projekt (etwas abgeändert) in einer BME280-Version mit ThingSpeak.
Hier sind die Werte für Luftdruck super, Luftfeuchte hat rund 8% Abweichung und Temperatur ist fast gleich (Abweichung unter 3%). Ich habe ja die Werte auch gerundet. Nachkommastellen machen bei der Genauigkeit keinen Sinn.

Danke Michael für die Erweiterungspakete!! :smile:

1 „Gefällt mir“

Hallo Michael,
gerade eben ist von BerryBase Sertronics ein Ersatz-Sensor angekommen. Natürlich habe ich den gleich angeschlossen.
The same procedure as every old try !! :grimacing:

Da meine Leidensgrenze erreicht ist, kommt der Sensor mit Vermerk in die Kiste und ich steige wieder auf den alten bewährten BME280 (ohne grove) um.
VG Ulli

Ich habe jetzt doch noch einen BME680 (ohne grove) bei Aliexp bestellt und werde diesen dann an der Pinleiste testen. Mal sehen, ob der dann funktioniert.
VG ULLI

1 „Gefällt mir“

Hallo, nun ist endlich der BME680 ohne grove eingetroffen und ich habe ihn eingebaut und per Jumper-Kabel mit der PIN-Leiste an C18 und C19 verbunden. Als Programm verwende ich BME680-Klima--ThingSpeak .
Überrascht bin ich nur über das Ergebnis: Für alle 3 Werte zeigt das Display nur 0.
Gleiches auch in ThingSpeak.

Das überrascht mich schon. Keine Idee.
VG ULLI

Ich habe nun auch mal den BME680 Sensor über ein Grove-Kabel mit einem PIN-Ende direkt mit A0 verbunden.
Gleiches Ergebnis.
Um den Sensor zu testen habe ich eine Schaltung mit Arduino UNO , OLED und dem BME680 Sensor aufgebaut. Funktioniert optimal und die Daten werden richtig am OLED angezeigt. Der Sensor ist also ok.
VG ULLI

Hallo Ulli,

in der Erweiterung ist die I2C Adresse des Sensors:

BME680_I2C_ADDR = 0x76

Scheint so, dass der von Dir verwendete Sensor default auf 0x77 läuft.

Ich habe jetzt die Spec Deines Sensors nicht, aber beim Adafruit Modul geht das im I2C Betrieb so:

By default, the i2c address is 0x77. If you add a jumper from SDO to GND, the address will change to 0x76.

Probier das doch mal, einfach den SDO des Sensors auf Masse.

Gruß Raik

Hallo Raik,
vielen Dank für Deinen Tip.
ich habe nun eine Verbindung zwischen SD0 und GND per Jumper hergestellt.
Schon zeigt das OLED Display Sensor-Werte.
Temperatur und Luftfeuchte sieht relativ gut aus. Im Vergleich zu meiner anderen Wetterstation auf dem Schreibtisch sind diese beiden Werte schon sehr nah dran.
Nur das Problem des Luftdrucks bleibt: Der weicht um über 250 hPa ab. Das war genau der Grund, warum ich vom Grove-Sensor auf den Arduino-BME680 in der Calliope-Schaltung gewechselt bin. Bei dem Grove-BME680 Modul und dem Arduino-BME680 sind die Luftdruckwerte bei der Calliope-Schaltung bei beiden extrem zu hoch.

Bei dem Aufbau mit Arduino (s.o.) sind alle Werte fast genau auf dem Wert der Vergleichsstation. Abweichung nur ca. 2 hPa bzw. ca. 4% bei Luftfeuchte.

Folglich liegt die Abweichung des Grove-Moduls beim Luftdruck nicht an der Bauform. Da muss noch etwas anderes sein, das wohl mit dem Calliope zu tun hat.
Was auch immer?!?
VG ULLI