Funksensor mit Bosch sensortec BME680 / Luftgüte

Begonnen von juergs, 28 Oktober 2017, 18:05:43

Vorheriges Thema - Nächstes Thema

juergs

#45
Die Prüfung der Linker-Konfiguration ergab: OK!

Zum Testen, ob es systematisch mit dem ESP unter 3V3 funktioniert kompilierte ich den Sketch ohne BSEC-Aufrufe.

... und siehe da, vermutlich reicht der LDO-Output bei 3V3 nicht ganz aus? 

Verträgt es der ESP-Port, wenn der Pullup mit 4K7 gegen 5V statt 3V3 betrieben wird? Wenn das Breakoutboard mit 5V versorgt würde?

Checken werde ich auch noch, ob es an meinem Steckbrettaufbau mit evtl. zu langen Leitungen liegt ...

https://ba0sh1.com/blog/2016/08/03/is-esp8266-io-really-5v-tolerant/

juergs

#46
Es ist nicht die Hardware:

Opening port
Port open
Succeeded!
Configuring Forced Mode...Succeeded!
Temperature(degC),Relative_Humidity(%),Pressure(hPa),Gas_Resistance(Ohms), Gas_Resistance_Average (Ohms)
22.68,42.94,1015.71,0,0
22.78,42.96,1015.53,117709,19618
22.66,42.78,1015.75,118207,39319
22.56,42.73,1015.97,117875,58965
22.48,42.74,1016.09,117379,78528

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vf6d232f1
~ld
BME Initialization...Succeeded!
Configuring Forced Mode...Succeeded!
Temperature(degC),Relative_Humidity(%),Pressure(hPa),Gas_Resistance(Ohms), Gas_Resistance_Average (Ohms)
22.13,43.16,1016.66,0,0
22.27,43.21,1016.38,94072,15679
22.26,43.13,1016.42,98529,32100
22.25,43.09,1016.44,103077,49280
22.24,43.04,1016.46,105946,66937


Vielleicht hilft das hier https://forum.fhem.de/index.php?topic=44603.0
Crash Diagnose
esp8266-nodemcu-v1-0-and-wdt-resets


HCS

Zitat von: juergs am 01 November 2017, 07:47:28
Verträgt es der ESP-Port, wenn der Pullup mit 4K7 gegen 5V statt 3V3 betrieben wird? Wenn das Breakoutboard mit 5V versorgt würde?
Das würde ich nicht tun.

juergs

Der TS9011-LDO ist gut genug.
Bei der geringen Belastung durch den Sensor regelt der LDO sehr gut aus.

juergs

#49
Der Prototyp mit 433 MHz Lacrosse Protokoll ist fertig.

Der Sender wird an D13 angeschlossen, wenn D10 gegen GND gejumpert wird dann zeigt der Serial-Output auch ein Timestamp an.
Der CO2-Wert pegelt sich bei mir um die 120.000 ein, deshalb teile ich dur 10.000 um in den übertragbaren Wertebereich zu kommen.

Die Datenübermittling wird per Interrupt alle 30 Sekunden übertragen, da sich heraus gestellt hat, dass der Sensor häufiger abgefragt werden muss,
wohl um seine Betriebstemperatur zu stablisieren...     

Der Sensor baut zwei Devices auf:
ID 100 - Kanal 1: Temperatur
             Kanal 2: Luftfeuchte
ID 101-  Kanal 1: CO2 Widerstand als Roh-Sensor-Wert
             Kanal 2: als gemittelter Sensorwert.

Die Werte für Temperatur, Luftfeuchte sind nicht gemittelt. Den Luftdruck habe ich erst mal in favor
der CO2-Ausgabe geopfert. In Zukunft wird sich aber der gemittelte Wert eher anbieten.
Dann werde ich den Luftdruck mit übertragen.

Das ist mal die erste Variante mit einem Nano, bis ich den WDT-Fehler beim ESP gefunden habe.

Evtl. lassen sich dann auch die Relation Richtung IAQ und ppm finden ...

Viel Spaß beim Testen.
Jürgen

juergs

Der Einfluss der Senderoutine macht sich bemerkbar!
... da ich während des Interrupts (quasi asynchron) auch direkt  den Sensor auslese.
Das lässt sich aber einfach beheben ... in der nächste Version.  ;)

Jürgen

hdgucken

Zitat von: juergs am 01 November 2017, 14:08:27
Der Prototyp mit 433 MHz Lacrosse Protokoll ist fertig.
das hört sich sehr interessant an ! Habe selbst auch einige LaCrosse Sensoren aufgebaut,
einen mit zwei Kanälen (2xDS18B20) und mehrere mit einem Kanal (DHT22). Das ganze auf Basis
des ATTiny84 + RFM69CW auf 868,3MHz, laufen sehr zuverlässig.
Für den BME680 bietet sich ja da eher das KeyValueProtokoll an, da kann man alle Werte auf einmal übertragen,
inklusive z.B. Batteriespannung  8)

juergs

Hallo hdgucken,

die Varianten:


  • des ATTiny84 + RFM69CW auf 868,3MHz  (davon habe ich die 433 OOK-Varianten  ;) )
  • Für den BME680 bietet sich ja da eher das KeyValueProtokoll an, da kann man alle Werte auf einmal übertragen.
interessieren mich ebenfalls. Der RFM sendet ja FSK. Das K-V-Protokoll seriell übertragen? 

Jürgen


juergs

#53
Könnte aber auch der Einfluss des OOK-Senders auf den AD-Wandler sein, ist direkt hinter dem Breakoutboard angeordnet.
Werde mal den Sender Weiter weg platzieren oder komplett abschirmen....
Dann noch mal checken ...

PeMue

#54
Hallo zusammen,

so ganz komme ich mit den Daten noch nicht klar. Folgende Fragen:
- Das Sendeintervall ist 3 s, stimmt das? Also die Zahl am Anfang / 1000?

Was mir auffällt:
- Der IAQ Wert geht hoch, wenn gekocht wird und geht extrem runter wenn gelüftet wird. Das ist soweit auch richtig. ABER:
- Kurz nach dem Lüften ging der IAQ-Wert wieder extrem hoch. Vielleicht war der Geruch der Gans heute unangenehm  ;D
- Was man machen könnte, ist einfach mal den IAQ Wert mit dem Gaswert korrelieren, ggf. noch unter Berücksichtigung der Temperatur.

@HCS:
Wenn die 3 s korrekt sind, könntest Du bitte eine Firmware bauen mit 60 s oder sogar noch längerer Zeit? Und alle [], | bei der Gelegenheit auch noch weglassen  ;).

Oder habt Ihr ein Programm zur Visualisierung, das mit den Zeichen klarkommt? Ich meine, ich hätte einmal ein Programm zur Visualisierung von Kurven von Batterieladegeräte gehabt, das ganz gut war, da muss ich mal suchen gehen ...

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

#55
Hallo Peter,
der Einfluss des Senders macht sich bei mir bemerkbar.
Auch scheint die Zylkluszeit des Messens ein Faktor zu sein.

Zum Visualisieren benutze ich den TelemetryViewer. Der erwartet durch Leerzeichen getrennte Werte ohne Text.
Ich habe den zusätzlichen DebugText in der seriellen Ausgabe einfach per Jumper abschaltbar gemacht.
Liegt D10, auf Masse dann kommen timestamp und weitere Debugausgaben ...  ;)

Bei dem "komischen" Verhalten des Sensors muss ich noch forschen ...  :(
Allerdings ist die Tendenz immer richtig: Fenster zu - fallend, Fenster auf - steigend.
Man bräuchte zum Kalibrieren ein Vergleichsgerät, welches ggf. IAQ und PPM CO2-Gehalt anzeigt.
Dann Draußen als niedrige (konstante?) Referenz und als obere Referen eine CO2-Quelle. (CO2-Patrone...)

Interessant ist, dass beim Fensteröffnen der Luftdruck bei mir steigt, die Luftfeuchte geht bei trockener Luft dann runter.
Also genau so wie vermutet...  ;) 

ZitatWas man machen könnte, ist einfach mal den IAQ Wert mit dem Gaswert korrelieren, ggf. noch unter Berücksichtigung der Temperatur.
Ja, das ist der Plan ....

Ich schaue mal ob ich das Ganze in der BSEC-Form auf den MiniMaple verdröselt bekomme.
Evtl. funktioniert das ähnlich wie beim ESP, aber ohne WDT-Problem.... 


Die korrigierte und ergänzte SW-Version für den Nano  (ohne BSEC) habe ich diesmal im ersten Post dieses Threads verankert. (V2.1).

HCS

Zitat von: PeMue am 01 November 2017, 17:24:14
Was mir auffällt:
- Der IAQ Wert geht hoch, wenn gekocht wird und geht extrem runter wenn gelüftet wird. Das ist soweit auch richtig. ABER:
- Kurz nach dem Lüften ging der IAQ-Wert wieder extrem hoch. Vielleicht war der Geruch der Gans heute unangenehm  ;D
- Was man machen könnte, ist einfach mal den IAQ Wert mit dem Gaswert korrelieren, ggf. noch unter Berücksichtigung der Temperatur.
Ich bin auchn noch am rätseln. Ich hatte den Fall, dass IAQ heftige Änderungen gemacht hat, der Widerstand aber konstant blieb.
Fende es blöd, das Bosch nicht verrät, was die IAQ-Berechnung eigentlich macht.

Zitat von: PeMue am 01 November 2017, 17:24:14
@HCS: Wenn die 3 s korrekt sind, könntest Du bitte eine Firmware bauen mit 60 s oder sogar noch längerer Zeit? Und alle [], | bei der Gelegenheit auch noch weglassen  ;).
Ich könnte für die Vergleichsfirmware, die auf BSEC basiert, ein Ausgabeformat machen, das ein gplot in FHEM verarbeiten kann.
Ich habe auch fast ein LGW incl. dem kompletten Datenpfad bis ins LaCrosse-Modul rein, gibt es in Kürze im anderen Thread dann.

juergs


HCS


PeMue

Zitat von: HCS am 01 November 2017, 17:53:03
Es gibt 512 Gründe, eins zu bauen.  ;D ;D ;D
Jürgen überlegt schon, wie viele Platinen er haben will  ;D ;D ;D
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser