Autor Thema: Funksensor mit Bosch sensortec BME680 / Luftgüte  (Gelesen 39017 mal)

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #15 am: 29 Oktober 2017, 20:01:52 »
Die precompiled Libs wären z.B. für den STM32 (STM32F103CB) aus dem MapleCul möglicherweise geeignet ...
Dann wäre ein Umschwenken auf den Maple wohl sinnvoll ...
« Letzte Änderung: 29 Oktober 2017, 20:07:03 von juergs »

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2970
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #16 am: 29 Oktober 2017, 20:23:43 »
Dann wäre ein Umschwenken auf den Maple wohl sinnvoll ...
Für das LaCrosseGateway definitiv nicht. Aber eventuell um Referenzwerte zu produzieren.

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #17 am: 29 Oktober 2017, 21:09:45 »
Der erste Plot-Output mit Raw- und gleitendem Mittelwert.

https://www.umweltbundesamt.de/sites/default/files/medien/pdfs/kohlendioxid_2008.pdf

Apropos Chinesen: Modul-Luft-Air-Quality-Staub-Sensor-LCD-Anzeige-Monitor

Kommentar:
Zitat
Im Alltag ist der CO2 Wert in einem Wohnraum meist im roten Bereich, ohne sich Sorgen machen zu müssen, sprich die Skala ist sehr streng ausgelegt).
AIQ-Index: https://en.wikipedia.org/wiki/Air_quality_index

https://forum.mysensors.org/topic/7788/bosch-bme680-sensor
« Letzte Änderung: 29 Oktober 2017, 22:20:43 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #18 am: 30 Oktober 2017, 11:12:43 »
@HCS: Einbindung precompiled libs
Zitat
The last step we need to do is to ensure that the pre-build `libalgobsec.a` library is linked when we compile our project. Unfortunately, this process is somewhat tricky when it comes to Arduino IDE. We first need to find where the board support package for our board is installed.
On Windows, this could be for example in `<USER_HOME>\AppData\Local\Arduino15\packages\esp8266\hardware` or in `<ARDUINO_ROOT>\hardware`. Once we found the location, we need to perform the following steps. Please keep in mind that the target paths might differ slightly depending on the ESP8266 package version you are using.

1. We need to copy the file `binaries\staticlib\ESP8266\libalgobsec.a` from the BSEC package into the `hardware\esp8266\2.3.0\tools\sdk\lib` folder.
2. The linker file found at `hardware\esp8266\2.3.0\tools\sdk\ld\eagle.app.v6.common.ld` needs to be modifed by inserting the line `*libalgobsec.a:(.literal .text .literal.* .text.*)` after the line `*libm.a:(.literal .text .literal.* .text.*)`.
3. Finally, we need to change the linker argument, telling the linker to include BSEC. This is achieved by adding the argument `-lalgobsec` to the line `compiler.c.elf.libs=-lm -lgcc ...` found in `hardware\esp8266\2.3.0\platform.txt`.

Dann sollte eine Vergleichs-Variante mit dem ESP8266  möglich sein.  :)
« Letzte Änderung: 30 Oktober 2017, 13:14:46 von juergs »

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2970
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #19 am: 30 Oktober 2017, 15:04:19 »
Dann sollte eine Vergleichs-Variante mit dem ESP8266 möglich sein
Ja, ich habe den BSEC gestern Abend auf dem 8266 zum laufen bekommen.
Und gleich festgestellt, dass meine Widerstandsberechnung auch nicht stimmt.
Aber damit kann man evtl. Vergleiche anstellen, wie sich die IAQ bezüglich Widerstand und rH verhält.
Habe sie noch erweitert, um den Widerstand mit auszugeben (Gas:).
Es dauert einige Minuten, bis die BSEC anfängt, eine IAQ zu liefern.

Sieht dann so aus:
[459268.00] T: 20.69| rH: 53.80| IAQ: 37.18 (3)| Gas: 1705.81
[462268.00] T: 20.70| rH: 54.05| IAQ: 47.76 (3)| Gas: 1686.11
[465268.00] T: 20.69| rH: 54.24| IAQ: 57.98 (3)| Gas: 1668.97
[468268.00] T: 20.68| rH: 54.41| IAQ: 64.52 (3)| Gas: 1657.38
[471268.00] T: 20.69| rH: 54.50| IAQ: 69.20 (3)| Gas: 1649.06
[474269.00] T: 20.68| rH: 54.60| IAQ: 71.25 (3)| Gas: 1644.93
[477269.00] T: 20.67| rH: 54.70| IAQ: 77.16 (3)| Gas: 1635.71
[480269.00] T: 20.65| rH: 54.86| IAQ: 78.94 (3)| Gas: 1632.66
[483269.00] T: 20.66| rH: 54.88| IAQ: 84.28 (3)| Gas: 1623.58
[486269.00] T: 20.65| rH: 54.95| IAQ: 85.60 (3)| Gas: 1621.58
[489269.00] T: 20.63| rH: 55.04| IAQ: 88.93 (3)| Gas: 1616.59
[492269.00] T: 20.62| rH: 55.11| IAQ: 89.28 (3)| Gas: 1615.59
[495269.00] T: 20.84| rH: 55.60| IAQ: 250.00 (3)| Gas: 909.62
[498269.00] T: 21.12| rH: 57.56| IAQ: 388.20 (3)| Gas: 606.41
[501269.00] T: 21.36| rH: 58.37| IAQ: 437.31 (3)| Gas: 521.63
[504269.00] T: 21.53| rH: 59.59| IAQ: 476.07 (3)| Gas: 461.52
[507269.00] T: 21.45| rH: 60.56| IAQ: 492.55 (3)| Gas: 439.29
[510270.00] T: 21.56| rH: 59.64| IAQ: 500.00 (3)| Gas: 427.84
[513270.00] T: 21.46| rH: 58.98| IAQ: 500.00 (3)| Gas: 423.98
[516270.00] T: 21.36| rH: 57.85| IAQ: 500.00 (3)| Gas: 426.18
[519270.00] T: 21.23| rH: 57.01| IAQ: 500.00 (3)| Gas: 431.21

Ich habe den Sensor mal heftig eingenebelt, um eine Reaktion hervorzurufen.

Anbei die firmware, damit könnt ihr selbst mal testen.

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #20 am: 30 Oktober 2017, 15:17:38 »
Hallo HCS, super!

4 Tage "BurnIn"-Zeit für den Sensor sind zu veranschlagen.  :D

Zitat
The IAQ scale ranges from 0 (clean air) to 500 (heavily polluted air). During operation, the algorithms automatically calibrate
and adapt themselves to the typical environments where the sensor is operated (e.g., home, workplace, inside a car, etc.).
This automatic background calibration ensures that users experience consistent IAQ performance. The calibration process
considers the recent measurement history (typ. up to four days) to ensure that IAQ ~ 25 corresponds to “typical good” air
and IAQ ~ 250 indicates “typical polluted” air.

Zitat
Es dauert einige Minuten, bis die BSEC anfängt, eine IAQ zu liefern.
Ja, wegen Ringpuffer ...


« Letzte Änderung: 30 Oktober 2017, 15:22:43 von juergs »

Offline PeMue

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4347
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #21 am: 30 Oktober 2017, 15:45:23 »
So, habe die BIN geflasht und an den Raspberry Pi rangehängt. Diesmal ist die Baudrate 115200 baud  ;), d.h. der Code lautet:
sudo stty -F /dev/ttyUSB1 115200
sudo cat /dev/ttyUSB1 > /tmp/bme680.txt &

dann kommt (ohne das > ...) Folgendes raus:
[126249.00] T: 28.88| rH: 31.40| IAQ: 0.00 (0)| Gas: 68330.16
[129249.00] T: 28.85| rH: 31.46| IAQ: 0.00 (0)| Gas: 68497.20
[132249.00] T: 28.81| rH: 31.55| IAQ: 0.00 (0)| Gas: 69287.61

Gruß PeMue

Edit:
Lüften scheint echt zu helfen (IAQ zwischen 1 700 000 und 2 400 000)  ;D bzw. vorher kurz dagegengeblasen. Ich sollte den Raspberry Pi vielleicht mal im Schlafzimer aufstellen  ???

« Letzte Änderung: 30 Oktober 2017, 16:43:07 von PeMue »
1x FB7170 (29.04.88) 5.7 1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F)
1x RPi BV2LCDCSM 1.63 5.7 2xMAX HKT, 1xMAX RT, V200KW1
1xFB 7490 (113.06.05) 5.7 1xCUL V3 1.63 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 1xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU 1xRFXtrx 90 1xWT440H 1xCM160 3xTFA30.3150 5xFA21

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2970
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #22 am: 30 Oktober 2017, 17:40:57 »
Diesmal ist die Baudrate 115200 baud
Das habe ich vergessen zu sagen ...  :)

Lüften scheint echt zu helfen
Das hätte ich dir auch ohne BME680 sagen können  ;D ;D ;D

Der Kalibrierungsprozess von vier Tagen ist mir noch etwas suspekt. Das kann ja die Werte der vier Tage nur im RAM haben. Bedeutet das, dass, wenn man die Spannugsversorgung getrennt hatte, eneut vier Tage Kalibrierung erforderlich sind?
Lotet der algo vier Tage lang die obere und untere Grenze aus?

Eventuell sollten wir versuchen herauszubekommen, welcher Widerstandswert wieviel ppm Schadstoff entspricht und dann unsere eigenen Schlüsse ziehen.
Die libalgobsec.a und das irre framework von Bosch scheiden für das LGW eh aus.

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #23 am: 30 Oktober 2017, 18:37:07 »
... herauszubekommen, welcher Widerstandswert wieviel ppm Schadstoff entspricht und dann unsere eigenen Schlüsse ziehen.
Die libalgobsec.a und das irre framework von Bosch scheiden für das LGW eh aus.

Zitat
bsec_codegen_do_steps.o/
bsec_codegen_get_configuration.o/
bsec_codegen_get_state.o/
bsec_codegen_get_version.o/
bsec_codegen_init.o/
bsec_codegen_reset_output.o/
bsec_codegen_rtwutil.o/
bsec_codegen_sensor_control.o/
bsec_codegen_set_configuration.o/
bsec_codegen_set_state.o/
bsec_codegen_update_subscription.o/
bsec_interface.o/
constructor_bsec.o/
convertHumidity.o/
ExpSmoothingBsec.o/
GasHumidityBaselineTracker.o/
GasHumidityPreProcessor.o/
HumidityTemperatureCorrector.o/
normalizeFilterBw.o/
RingBufferBsec.o/
SensorHeatCompensator.o/
SensorStatusTracker.o/
absHum.o/

Da ist Temperatur und Feuchte ebenfalls darin "vermauschelt".
Das wird mathematisch interessant.  ;)

Entäuschend, dass sensortec nur die 32-Bitter im Fokus hat...
« Letzte Änderung: 30 Oktober 2017, 18:39:25 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #24 am: 30 Oktober 2017, 22:13:03 »
Der ESP-Compile ist mir jetzt endlich auch gelungen!
 :D

Liebe Boschler, das wäre auch einfacher zu machen gewesen!

Zitat
Once we are set with our hardware and development environment, we need two pieces of software to get the most out of our BME680 sensor
Das hat mich in die Irre geleitet und hatte die bme680.c + .h aus dem BME680-Driver genommen.
Ist nicht notwendig: die Richtigen Basis-Dateien liegen im "\API"-Verzeichnis des BSEC-Frameworks.

Dann muss ich noch schauen, ob ich mein ESP8266 endlich geflasht bekomme.

@Peter, HCS
Wie  habt Ihr den ESP verbunden?

Grüße
Jürgen
« Letzte Änderung: 31 Oktober 2017, 06:50:13 von juergs »

Offline PeMue

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4347
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #25 am: 30 Oktober 2017, 22:20:49 »
@Peter, HCS
Wie  habt Ihr den ESP verbunden?
Ich habe einen nanoCUL, der aber dieselbe Beschaltung hat wie z.B. der NodeMCU. Dann per USB mit dem NodeMCU Flasher oder dem ESPTool flashen.

Gruß PeMue
1x FB7170 (29.04.88) 5.7 1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F)
1x RPi BV2LCDCSM 1.63 5.7 2xMAX HKT, 1xMAX RT, V200KW1
1xFB 7490 (113.06.05) 5.7 1xCUL V3 1.63 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 1xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU 1xRFXtrx 90 1xWT440H 1xCM160 3xTFA30.3150 5xFA21

Offline hdgucken

  • Full Member
  • ***
  • Beiträge: 149
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #26 am: 31 Oktober 2017, 00:19:27 »
Meiner läuft jetzt schon einige Stunden mit. Fing mit IAQ Werten um 25-30 an ging dann hoch bis 180,
jetzt ist er wieder bei ca. 110. Schwingt sich wohl gerade ein  :)
Bild vom aktuellen Stand:

Offline Markus M.

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2510
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #27 am: 31 Oktober 2017, 03:55:28 »
Beim CO2-Sensor(Velux etc.) genügen 1-2 Zigaretten  ;)

Ich weiss ja nicht was du rauchst, aber der einfachste Weg das Ding auf Anschlag zu bringen, ist den Sensor kurz an der Spiritus-Flasche schnüffeln zu lassen.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1121
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #28 am: 31 Oktober 2017, 06:52:34 »
tutorial-multiple-values-in-the-arduino-ide-serial-plotter

Zitat
When the serial plotter receives a line break, it plots all values on that line as one time step. Each variable need to be seperated by either a comma, tab or a space (might work with other characters as well).

oder TelemetryViewer zum Speichern der Daten als CSV.
Beispiel: Öffnen- und Schließen des Fensters.
« Letzte Änderung: 31 Oktober 2017, 15:55:47 von juergs »

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2970
Antw:Funksensor mit Bosch sensortec BME680 / Luftgüte
« Antwort #29 am: 31 Oktober 2017, 09:09:25 »
Da ist Temperatur und Feuchte ebenfalls darin "vermauschelt".
Das wird mathematisch interessant.  ;)
Mir ist noch unklar, ob Temperatur und Feuchte zur Kompensation oder als Wohlfühlanteil eingerechnet werden.

Jetzt wäre zu klären, was wir eigentlich als Ergebnis wollen. Mir schwebt da eher die reine Schadstoffkonzentration vor.
Einen Wohlfühlwert kann man dann in FHEM immern noch aus VOC, rH und Temperatur berechnen, sofern man will.