Projekt: Raum(-luft)sensor (Temp, Hum, Co2, VOC, LUX)

Begonnen von herrmannj, 21 Januar 2019, 00:24:44

Vorheriges Thema - Nächstes Thema

herrmannj

#255
nach einigen Minuten starren auf deine charts, ich glaube das mit der Hum für tVOC Korrektur ist echt so, man sieht das zwischen 11:00 und 13:00 schön. Die Luftfeuchte steigt (hast vmtl gelüftet oder so), der IAQ-C geht stärker nach oben und der BME steigt langsamer weil die BSEC den Effekt der Luftfeuchte rausrechnen. Da kann man auch schön die Dimension, oder besser den Faktor sehen, also den Einfluss von 1% Luftfeuchte auf die genauen ppm.

Das Wasser in der Luft wird genau wie Gas behandelt (was es bei 320° defakto auch ist) aber es sind eben deutlich mehr Wasser als GAS Moleküle da. Allerdings reagiert es auf (mit) dem Sensor dann schwächer. Genau dafür ist Dein chart echt gold wert...

Edit:

Schätzung aus Deinem Chart 11:30: 17° / 60%rH:
Das wären 8.68g/m³ Wasser. Bei 1293g/m³ Luft sind das ~6700ppm Wasser von denen aber nur ~200ppm in den Wert einzufließen scheinen (Vergleich und Schätzung der Werte IAQ vs BME im Chart).

Die Rechnung ist natürlich nicht vollständig (sogar falsch) weil weder der IAQ-C noch der BME bei 0%rH seine Nullung auf clean Air bekommen hat. Der Anstieg vor / um 11:30 scheint ja von 50%rH auf 60%rH zu sein. 50% bei 17° (genauer sehe ichs nicht) wären 7.23g, das wären 1.45g Differenz also ca 1000ppm Wasser welche die BSEC lib mit ca 1/3..1/5 (deutliches plus minus) auf den VOC anrechnet. Hat man schon mal eine Hausnummer auch wenn noch und vorerst nur eine Theorie ist...

juergs

ZitatHättest Du einen Wemos und einen BME680 "über" um ihn in Deinem "cluster" mitlaufen zu lassen wenn ich Dir entweder ino oder binary schicke ? Da hat man ja wirklich einen schönen Vergleich. ...

Klar....  ;) :) ;D

Starsurfer

Ich war auch fleißig. Habe es jetzt hinbekommen einen 1.8 TFT anzuschließen, allerdings leider nur am Nodemcu. Habe ich am Wemos nicht hin bekommen, ist mir aber eigentlich immer noch nen bisschen zu klein.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

juergs

#258
Hallo Starsurfer,

schön, mit Uhr. Details?

Mit dem Wemos kann ich Dir vielleicht weiterhelfen:
Hier wir es ebenfalls eingesetzt: https://forum.fhem.de/index.php/topic,95498.0.html
Mit Bezugsquelle und Beschaltung, ist aber nicht das Sainsmart, hat aber noch die Hintergrund-LED (BL) herausgeführt. ;) :)
wemos D1 ---------- TFT Display
D0--------------------1-RST
D1--------------------2-CS
D2--------------------3-D/C
D5--------------------5-CLK
D6--------------------7-BL
D7--------------------4-DIN
3.3V------------------6-VCC
GND------------------8-GND


Ist das Sainsmart-Display 1.8" mit SPI-Interface.
Funktioniert bei mir ... und hoffe die halten länger als die OLEDs...  ;)

Anmerkung:
Der RES-Pin des Displays kann auch mit dem RES-Ausgang des Wemos verbunden werden.
/edit:
ZitatDas Problem ist, das diese Display alle unterschiedliche Pin Bezeichnungen haben
Nein, da der gleiche Controller dahintersteckt ist die Funktion vorgegeben:
SDA (MOSI) + SCK + A0 (=RS/DC)  + CS + RES + LED(=BL) + VCC + GND

Starsurfer

#259
Das Problem ist, das diese Display alle unterschiedliche Pin Bezeichnungen haben. Das auf dem Bild hier, habe ich nach dieser Anleitung eingerichtet. Die stammt aus den Beispielen der Bibliothek TFT_eSPI.
Später soll das mal eine NTP Uhr werden mit Winter/Sommerzeit.

Aber ich werde nachher vielleicht noch einen neuen Thread aufmachen, wo wir verschieden Display testen können,

Besteht eigentlich die Möglichkeit, etwas an den ESP über FHEM zu senden?
Ich würde z.B. die Aussentemp irgendwie da hin bekommen, geht das? 
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

herrmannj

Zitat von: Starsurfer am 10 Februar 2019, 14:08:27
Besteht eigentlich die Möglichkeit, etwas an den ESP über FHEM zu senden?
Ich würde z.B. die Aussentemp irgendwie da hin bekommen, geht das?
SLink selber ist so aufgebaut das die Sensoren nicht mit einem FHEM Server verheiratet werden. Die senden und FHEM hört zu, eben auch mehrere Instanzen.
Im Sketch ist unten ein auskommentierter Block, der stammt aus einem S0 Sensor und da kann man Kalibrierungswerte senden. Für den Raumsensor baue ich das auch ein damit man Temp und Hum kalibrieren kann.

Für ständige Updates von externen Werten, so wie die Temperatur bei Dir würde ich aber eher MQTT nehmen, da gibt es ja libs.

herrmannj

Kurze Statusmeldung

@Papa
die Platinen sehen gut aus (richtig). Wenn ich bedenke das Du das alles von Hand geroutet hast: respekt!!! Ich habe noch nie welche bestellt, muss ich was beachten ? Ich vermute ich benötige auch die files..
Der DHT pin wäre jetzt frei falls Du noch den Geigerzähler möchtest ...

Der Schaltplan ist aktualisiert, im Anhang.

Der BME680 hat mir echt noch einiges abverlangt. Insbesondere die Korrekturen für Temp und Hum hatten es nochmal in sich. Das sieht jetzt aber alles sehr gut aus. Der sketch läuft aktuell lokal, die fhem module müssen nachgezogen werden: folgt asap.

vg
joerg

juergs

#262
Hallo Jörg,
dass der BME680 nicht einfach ist war schon klar. Bin mal gespannt, wie sich die Kompensation mit Feuchte und Temperatur anfühlt.

Bei Deinem Schaltplan war mir noch aufgefallen dass die 2 Pullups für den I2C-Bus fehlen. Könnte aber auch sein, dass die in einem
Sensormodul verbaut sein könnten...

Bei dem MH-Z19B wäre noch meine Frage, weil er unter TTL-Pegel (5V) läuft, RX+TX auch TTL-Pegel haben?
Müsste man da nocht ein R-Netzwerk vorsehen, um die 5V-Toleranz des ESP nicht zu strapazieren?
Oder hat er doch 3V3-Pegel am Ausgang?

Hast Du Dich für Display = Nextion entschieden?

Grüße,
Jürgen   

herrmannj

stimmt, die pullups fehlen. Laut Datenblatt sollten die, geht aber auch ohne. Auf der Platine von Papa sind sie vorgesehen

Der MH-Z19 hat 3.3V am Interface
Product Model MH-Z19B
Target Gas CO2
Working voltage 4.5 ~ 5.5 V DC
Average current < 60mA (@5V)
Peak current 150mA (@5V)
Interface level 3.3 V(Compatible with 5V) [/u
]
https://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf

herrmannj

Display: geht ja beides. Für die normalen Raumsensoren wollte ich erstmal bei oled bleiben. Insgesamt haben wir ja so eine Art Baukasten mit verschiedenen Optionen. Später wollte ich eine zweite Variante mit Nextion machen, dazu muss man im sketch halt den Display Teil austauschen.

juergs


herrmannj

Ich habe das noch nicht probiert aber die Steckerleiste die Papa für Starsurfer eingesetzt hat sollte perfekt reichen.

herrmannj

#267
update:

im git https://github.com/herrmannj/AirQuality

esp/iaq_wmos_oled_ams.ino:
aktualisierter sketch, angepasst auf wemos und bme280,bme680,IAQ Core C, MH-Z19B. (Display, LDR, LED ist hier nicht drin)

Im Kopf des sketch sind defs die man auskommentieren kann wenn man die device nicht verwendet. Die Zahlen dahinter sind die i2c Adressen, im Zweifel bitte anpassen weil die je nach break out board anders sind:
#define USE_BME280 0x76
#define USE_BME680 0x77
#define USE_IAQCOREC
#define USE_MHZ19B

FHEM/00_SLink.pm
FHEM/10_SLinkIAQC.pm
müssen auch eingespielt werden.

Das FHEM Modul ist auf die Version des sketches angepasst und primär um zu testen (daher auch einige zusätzliche debug). Es werden zb temp readings für den BME280 _und_ den BME680 erzeugt (mit prefix). In der Praxis wird man natürlich entweder den einen oder den anderen, kaum beide nehmen.

Im Modul wird, unter anderem, auch Taupunkt(°C) und die absolute Feuchte(g/m³) angezeigt da es ja perspektivisch auch um die Lüftungsuntersützung geht. Screenshot im Anhang

Ergänzung:
für die Berrechnung der VOC sind eine einigermaßen richtige Temperatur und Luftfeuchte (Messung) wichtig. Im sketch in den Zeilen 49/50 sind Korrekturwerte, derzeit hardkodiert (zukünftig per fhem zu setzen). Die wirken jetzt auf den BME280 und den BME680, im Zweifel also den BME680 mit Hilfe eines vertrauenswürdigen Thermometers kalibrieren. Der BME680 muss "lernen" was saubere Luft ist, benötigt also im Betrieb mindestens einmal einen gelüfteten Raum. Bei einem reset vergisst er das aktuell wieder.

juergs

#268
Hallo Jörg,

vielen Dank fürs Teilen. Das sieht ja richtig gut aus!
Werde es gerne aufbauen und bei mir, wie besprochen zum Vergleich mitlaufen lassen ...  :D

Grüße,
Jürgen

Starsurfer

Vielen Dank, werde es die Tage auch mal testen. Muss aber erst einen bme680 bestellen.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com