Funksensor mit Bosch sensortec BME680 / Luftgüte

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

Vorheriges Thema - Nächstes Thema

HCS

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  ;).
Anbei erst mal eine BSEC basierte Test-Firmware, die Deinen Wünschen entspricht.
Gibt alle 60 Sekunden eine Messung raus.
Ist jetzt wieder 57600 baud.
Format ist nun so:
TS: 60 T: 33.6 H: 28.0 P: 995.9 Gas: 2460 IAQ: 0
TS: 120 T: 33.3 H: 28.4 P: 995.9 Gas: 2474 IAQ: 0
TS: 180 T: 33.3 H: 28.4 P: 995.9 Gas: 2502 IAQ: 0
TS: 240 T: 33.8 H: 27.7 P: 995.9 Gas: 2524 IAQ: 0
TS: 300 T: 34.2 H: 27.2 P: 995.9 Gas: 2546 IAQ: 0
TS: 360 T: 34.1 H: 27.2 P: 995.8 Gas: 2561 IAQ: 28
TS: 420 T: 34.1 H: 27.2 P: 995.8 Gas: 2576 IAQ: 25
TS: 480 T: 34.1 H: 27.1 P: 995.8 Gas: 2589 IAQ: 24
TS: 540 T: 34.2 H: 27.0 P: 995.8 Gas: 2607 IAQ: 25
TS: 600 T: 34.1 H: 27.2 P: 995.9 Gas: 2615 IAQ: 25
TS: 660 T: 34.2 H: 27.0 P: 995.9 Gas: 2628 IAQ: 30
TS: 720 T: 34.0 H: 27.2 P: 995.9 Gas: 2644 IAQ: 25


TS: Sekunden seit Start
T: Temperatur in °C
H: Feuchte
P: Druck (nicht auf NN normalisiert)
Gas: Widerstand vom Gas-Sensor
IAQ: von BSEC gelieferte IAQ

Die Lib, die ich gerade für das LGW baue, liefert andere Werte als die BSEC, wird wohl doch noch etwas dauern, bis das passt.

juergs

... dann bin ich mal gespannt, wann es wieder verfügbare Breakboards gibt.  :-\

juergs

#62
Zitat von: juergs am 01 November 2017, 21:43:00
... dann bin ich mal gespannt, wann es wieder verfügbare Breakboards gibt.  :-\

Bei Amazon.de gibt es noch verfügbare Blue-Dot-Boards  ! (Heute Mittag 14, jetzt noch 10) ....
Allerdings kosten die deutlich mehr, als die von Watterott...

juergs

#63
Ich habe mich dazu entschlossen meinen AMS-iAQ-Core  wieder zu beleben und parallel zum BME680 zu betreiben (Infos). Der iAQ-core besitzt einen sog. Prediction-Wert der nach der AMS-internen Formel den IAQ-Wert wiederspiegeln soll und ebenfalls einen Widerstandswert ausgeben, der mit dem CO2-Gehalt korreliert. Somit hätten wir eine  "Referenz" zu den BME-Werten. (Beispielcode)

Quasi zeitgleich hat AMS auch ihren CCS811 herausgebracht, der etwa zum gleichen Preis des BME alleine den CO2-Wert misst. Also ohne T/HUM/P-Messung. Lesenswert der Abschnitt über "CO2 equivalent units".
Deshalb ist der BME natürlich unschlagbar.  Aber der Chip wäre ebenfalls eine Betrachtung wert ( + BME280  ;) ).

ZitatBut before I show you the few readings that I took, there's so
mething I want to point out. You may have noticed in the comments of
the code above that this sensor requires a 48-hour "burn in" period when it's first installed. Beyond that, every time the sensor
is powered on, it requires 20 minutes of "run-in" before the
readings are considered usable. At the time that these pictures were
taken, the sensor had only burned in for about 15 hours so the readings aren't necessarily accurate

Im Screenshot ist die heutige "Ausbeute" allerdings ohne CO2-Erzeuger und hereingestelltem Fenster ;).
Man sieht auch einige Ausreißer, deren Ursache ich noch erforschen muss. Evtl. können die auch von FHEM weggerechnet werden. Die angezeigten Werte sind alle gleitent gemittelt.

PeMue

#64
Zitat von: HCS am 01 November 2017, 21:33:34
Anbei erst mal eine BSEC basierte Test-Firmware, die Deinen Wünschen entspricht.
Vielen Dank dafür. Mein nanoLGW rennt mit der neuen Software.

Nun müsste man noch soviel Unix/bash können, um mit
date -I bzw. einer entsprechenden Formatierung folgendes davor hängen zu können:
2017-11-02_19:37:03
dann könnte man mit FHEM die Plots machen. Aber ich arbeite dran  ;D

Gruß PeMue

Edit1:
Mit
date '+%Y-%m-%d_%H:%M:%S'
kommt zumindest das Datum im korrekten Format. Jetzt muss das nur noch vorne dran  :-\

Edit2:
Mit
echo `date +%Y-%m-%d_%H:%M:%S`  `vcgencmd measure_volts`
kommt ein Datum vor die Messung:
2017-11-03_23:40:38 volt=1.2000V

aber wenn ich statt dessen folgendes mache
echo `date +%Y-%m-%d_%H:%M:%S` `cat /dev/ttyUSB0`
kommt gar nichts  >:(

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

#65
Ich habe noch mal Richtung AMS - CCS811 geforscht.

Es gibt dieses Breakoutboard  nur mit dem CCS811 bestückt, für ca. 19.95$ und
die Kombi mit CCS811 + BME280 für 29.95$, also eigentlich teurer als der BME680, der insgesamt All-in-One bietet. Geschmackssache,
die Doku dazu ist aber überragend  ;), im Vergleich zum BME.

Betrachtet man die Kombi CCS+BME280, dann ergibt sich das, preislich gesehen, dennoch als eine denkbare Alternative.

Der BME680 erfordert die Einbindung einer precompilierte Lib um die IAQ-Werte berechnet zu erhalten, der CCS geht einen anderen Weg: über Beschreiben von Registern
um die Umwelteinflüsse intern verrechnet mit in die Ausgabe mit einzubeziehen (Finde ich fast attraktiver als der BME). Dh. man kann von einem NTC über einen Dallas-Sensor bis zum BME280
alles mit zur Kompensation mit einzubeziehen. Die Ausgabe erfolgt als [ppm] und [tVOC] (Anmerk.: Total Volatile Org. Compounds).  CCS811_Air_Quality_Breakout_Source

Grüße,
Jürgen

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

juergs

#67
Hallo Jörg,
... interessant + umfangreich ...
Mit SPI-Interface-Nutzung.

Grüße,
Jürgen

HCS

Zitat von: juergs am 03 November 2017, 18:37:37
interessant. Umfangreich ...
Und auch nicht weiter als wir, keine IAQ Berechnung.

JoWiemann

Zitat von: HCS am 03 November 2017, 18:41:48
Und auch nicht weiter als wir, keine IAQ Berechnung.

Die Frage wird sein, ob Bosch die verwendeten Algorithmen jemals open source stellen wird. Irgendwie scheint der Sensor mit der Library von Bosch verheiratet zu sein. Frei nach dem Motto: Die Berechnung hat leider nicht mehr in den Sensor gepasst.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

hdgucken

#70
Zitat von: PeMue am 02 November 2017, 21:12:19

aber wenn ich statt dessen folgendes mache
echo `date +%Y-%m-%d_%H:%M:%S` `cat /dev/ttyUSB0`
kommt gar nichts  >:(
Ich bin auch nicht der Linux-Profi, aber versuch mal folgendes:
echo `date +%Y-%m-%d_%H:%M:%S` > /dev/ttyUSB0
Muss nicht stimmen, aber irgendwie so in der Richtung müsste es gehen
(umleiten von Console nach seriellem Gerät).

P.S.: hab mir noch zwei BlueDot Module von amazon gesichert  ;)

Gruss Thomas

juergs

#71
Der AMS-iAQ-core mag gerade mal nicht ...  :'(

juergs

#72
Geht doch, brauch wohl etwas interne "Verweildauer" ...
Nein .... SDA + SCL waren vertauscht (Levelshifter dazwischen) .. ;)

Zitat
CO2 [ppm] , resistance, TVOC

1583,19588,437
1590,19147,439
1590,19147,439
1590,19147,439
1590,19147,439
1590,19147,439
1595,18854,441
1595,18854,441
1595,18854,441
1595,18854,441
1595,18854,441
1598,18708,442
1598,18708,442
1598,18708,442
1598,18708,442
1598,18708,442
1598,18708,442
1600,18562,442
1600,18562,442
1600,18562,442
1600,18562,442
1600,18562,442
1605,18270,443
1605,18270,443
1605,18270,443

Werte sehen schon mal gut und realistisch aus ...  :D

Ich versuche mal den Code auf dem ESP8266 zum Laufen zu bringen ...

PeMue

#73
Hallo Thomas,

Zitat von: hdgucken am 04 November 2017, 10:40:12
echo `date +%Y-%m-%d_%H:%M:%S` > /dev/ttyUSB0
Muss nicht stimmen, aber irgendwie so in der Richtung müsste es gehen
(umleiten von Console nach seriellem Gerät).
nein, so geht es nicht. Das schreibt das Datum auf die serielle Schnittstelle.

Mit folgendem Skript geht es:
#!/bin/sh
# reads data from nanoLGW and adds FHEM readable date in the first column
while read -r line < /dev/ttyUSB1; do
  echo `date +%Y-%m-%d_%H:%M:%S` $line
done

Das unter bme680read.sh speichern, Rechte anpassen und dann so laufen lassen:
./bme680read.sh >> /tmp/bme680-2017-11.log &
Irgendwie will er (trotz sudo) noch nicht, wenn man in /opt/fhem/log speichern will  >:(
Heraus kommt folgender Dateiinhalt:
2017-11-04_20:32:12 TS: 170820 T: 29.9 H: 31.6 P: 982.3 Gas: 139407 IAQ: 93
2017-11-04_20:33:12 TS: 170880 T: 29.9 H: 31.6 P: 982.3 Gas: 138832 IAQ: 94
2017-11-04_20:34:12 TS: 170940 T: 29.8 H: 31.7 P: 982.3 Gas: 139176 IAQ: 93
2017-11-04_20:35:12 TS: 171000 T: 30.0 H: 31.4 P: 982.3 Gas: 138261 IAQ: 94
2017-11-04_20:36:12 TS: 171060 T: 31.3 H: 29.3 P: 982.3 Gas: 137021 IAQ: 98
2017-11-04_20:37:12 TS: 171120 T: 31.3 H: 29.5 P: 982.2 Gas: 136576 IAQ: 101

Sollte mit SVG darstellbar sein  ;)

Gruß Peter

Edit1:
Ersten Plot angehängt, morgen gibt es eine Feier mit >10 Personen im Raum. Mal sehen, was da passiert  ;D
Edit2:
Nächsten Plot angehängt mit ein paar mehr Daten ...
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

#74
Hallo Peter,
das sieht ja schon ganz gut aus ...  :D

Bei mir läuft der iAQ-core ebenfalls, vermutlich macht er gerade seine Burn-In-Phase.
Mal schauen wie er sich weiter verhält...

Die Plausibilität der iAQ-Werte muss ich noch mal mit den Registerwerten vergleichen und prüfen.
Interessant wäre noch darauf eine Temperatur-Kompensation zu legen, bzw. zu erfassen, wie sich das auswirken würde.