AirQualityMultiSensor (Temp, Hum, CO2, Voc, Lux, Press, IAQ) SpinOff: BME680

Begonnen von juergs, 09 Februar 2019, 13:36:23

Vorheriges Thema - Nächstes Thema

juergs

Hallo Zusammen,

aus @herrmannj Projekt ergibt sich die Möglichkeit den Airquality-Sensor mit verschiedenen Hardware-Zusammenstellungen zu betreiben.
Um den Original Thread nicht unnötig aufzublähen, habe ich diesen hier mit der Integration des BME680 erstellt.

Im Wesentlichen dreht es sich um die Synergie zweier Projekte "UniversalSensor-BME680" und dem "Raum(-luft)sensor"
und TFT-Erweiterungen. Desweiteren kommt noch eine JavaScript-Graph-WebSeite hinzu.

Herrmanj hat dankenswerterweise die Kommunikations-Ebene mit FHEM mittels ESP8266 UDP und seinen Protokoll-Modulen auf der FHEM-Seite
die Datenübertragung massiv erleichert. Damit spart man sich den "Umweg" über die LaCrosseGateway oder MQTT.

Diese erste Stufe besteht erst mal aus der Zusammenführung der beiden Code-Strecken.
Ich habe für die erste Variante noch eine OLED-ANzeige gewählt, allerdings eine andere LIB-Version, um noch mehr Anzeige-Möglichkeiten nutzen zu können.
Als zukünftige Erweiterung  werde ich noch TFT-Displays (1,8" und/oder 2,4")  mit einführen, wenn der funktionale Hardware-Code steht.

Den Code dazu pflege ich hier: AirQualityMultiSensorESP_VS.

Ist aber noch im Moment noch "in der Entstehung" = nicht lauffähig, also noch etwas Geduld bis zum lauffähigen Code ...  :'(
Die Hardware etc. vorerst noch identisch mit dem "Raum(-luft)sensor". Erweiterungen sind aber in der Planung.  ;)

Prerequisiten:

Hardware:

Wemos D1 oder NodeMCU
BME680-Breakout-Board (OSH) oder besser PeMues-Kombi: BME680+BH1750 Breakout
OLED Display: "0,96 Zoll I2C IIC 12864 128X64 Pixel OLED LCD Display Modul SSD1306 Chip 4 Pin"
TFT_1:  "ST7735 128x160" (Sainsmart) "1.8 SPI TFT LCD Display Module 128x160 Chip ST7735/ILI9341"
TFT_2:  WEMOS TFT 2.4 Touch Shield (hier) 320 × 240 Pixel, TFT-Treiber IC: ILI9341
TFT_3:  ePaper-Hat 2,7 inch, 274x176 Pixel, "Tri-Color 2.7 inch E-Ink Display Module"
Platine von PapaRomeo
MH-Z19 (Ali) + iAQcore (AMS) + BME680 (Reichelt)

Arduino Libraries:

ESP8266(Wemos) TFT_eSPI
BSEC-Installation, siehe z.B. hier: HowTo und hier BSEC-Arduino-library
BME_680_Driver: BoschSensortec
EEPROM-Lib
ESP8266core (WiFi)
MH-Z19-Lib

3D-Druck-Gehäuse:

Todo


Anbei mal der erste Wurf als Programmier-Konzept.

sash.sc

Hallo Jürgen.

Scheint sehr interessant zu sein.
Habe mir im github mal die. Ino Datei angeschaut. Man kann dort ein rfm69cw aktivieren.
Hast du einen Schaltplan wo welcher Sensor und Sender an welchen Prozessor angeschlossen wird?

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

juergs

Hallo Sacha,

ist leider noch etwas verfrüht, aber wenn Du am RFM69CW interessiert bist kannst Du
auch den BME680_LaCrosse_UniversalSensor anschauen. Die Anschaltung dafür steht dort im Code-Header  ;)

ZitatMan kann dort ein rfm69cw aktivieren.
Habe es mal der Vollständigkeit halber mit in den Code genommen, ist aber bei Aktivierung WiFi und UDP eigentlich nicht mehr notwendig.
Außerdem benötigtst Du zum Empfang des Protokolls die LaCrosseGateway in der Version 1.32 mit UniversalSensor.

Hier in diesem Projekt muss ich erst alles Stückweise aufbauen, dann kann ich auch einen Schaltplan dazu liefern ...  ;)

Als erste Orientierung, sie Anhang.
Die Platine von PapaRomeo lässt sich bis auf den TFT-Anschluss 1:1 benutzen.
Für die RFM69CW-Anbindung kannst Du Dich auch an PeMues Nano_LaCrosse_Gateway orientieren.

Grüße,
Jürgen

sash.sc

Danke für deine Infos.

Ein LaCrosse Gateway mit v1. 32 habe ich schon am laufen. Für meine LaCrosse Sensoren.

Aber für einen batteriebetrieb ist das nicht ausgelegt, oder?

Gruß Sascha


Gesendet von meinem SM-T560 mit Tapatalk
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

juergs

ZitatAber für einen batteriebetrieb ist das nicht ausgelegt, oder?
Nein, mit dem ESP mit WLAN nicht wirklich ...  :(

PeMue

Zitat von: sash.sc am 10 Februar 2019, 15:53:30
Aber für einen batteriebetrieb ist das nicht ausgelegt, oder?
Nein, aber wie wäre das mit einem Atmel644P und dem Homematic Protokoll? Ich denke da an die HB-UNI-644 als Testplatine und langfristig an ein Upgrade von Dirk's Innensensor.

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

sash.sc

Ich muss mal schauen. Hier im Forum gibt es ja auch sogar wie einen universal Sensor auf hm Basis. Ist aber nicht der aus dem Wiki....

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

juergs

Hallo Peter,
danke für das Beisteuern von neuen Ideen ...
Atmel 644 kein Problem. Homematic setze ich (noch) nicht ein.
https://wiki.fhem.de/wiki/Universalsensor#Innensensor
muss ich mir auch mal genauer anschauen ... (Thema: Batterie-Betrieb)

HM wäre dann CC1101 @868MHz ?
Was für eine Gateway, CUL?

/edit: https://github.com/alexreinert/PCB#hb-uni-644-rev-2 sieht interessant aus.
Muß ich mal genauer untersuchen ...

Für WLAn ist der ESP aber schon eher die erste Wahl, kann mir aber auch sowas wie ein reiner WLAN-Protokoll-Prozessor (C3-PO)
mit serieller Anbindung und DeepSleep vorstellen ...   ;D

Grüße,
Jürgen

sash.sc

Ja, HM ist ein cc1101 mit 868Mhz. Als Gateway ein cul.

Ich muss sagen, dass bis dato HM und LaCrosse am besten laufen.
ESP8266 auch sehr gut, da sehr flexibel.
Aber da kommt dann auch der Gedanke an Mysensors! Die arbeiten viel mit den rfm69.

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

juergs

Ok, bei schon bestehender HM-Infrastruktur macht es natürlich Sinn den BME680 dort noch mit einzubinden zu wollen.
Da spricht meiner Meinung nach aber nichts dagegen, das mittels Anbindung über das QY-MCUBME680V1 serielle Interface
einfach an einen Node mit dem Arduino-Nano mit CC1101und ASKSin-Integration anzubinden?
Dann ist das BSEC-Gedöns nicht mit dem Atmel644 erforderlich => neues Projekt!

Fanavity

Würde mich freuen, wenn es ein Projekt auf Homematic basis geben wird :) sowas in die Richtung fehlt noch :)

Starsurfer

Ich klinke mich hier auch Mal ein. Bei mir läuft das ganze momentan mit einem BME280, Max40009, Mh-z19 und TFT.
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


Starsurfer

Ist dass das oben verlinkten? Bin auf das Endergebnis gespannt.
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

Habe die Daten oben mit eingetragen.

Muss noch die freien Pins berücksichtigen, ein Schaltungslayout dazu habe ich noch nicht gefunden ...
Der Touch benötigt auch noch Pins. XPT2046_Touchscreen. Funktioniert, allerdings ohne setRotation.

Starsurfer

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

Für eine Aufrüstung des Maples wäre das hier geeignet: https://www.seeedstudio.com/Air602-WiFi-Development-Board-p-3140.html.
Dann wäre der Nachteil des fehlenden WLANs hinfällig.

Gehäuse: Idee

juergs

Erst mal das Pinout des TFT-Displays bestimmen...
Darauf kann man aufbauen ...
Wobei TS_IRQ und TS_Busy nicht zum Wemos durchmessbar sind ...

/edit: TS_IRQ auf 255 setzen!

Starsurfer

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

Hallo Starsurfer,
auch eine Idee, habe auch noch ein paar parallele Display-5V-Shields herumliegen ....

aber das Beste:
ZitatI will release the source code later. Currently I have no time. Please, don't hurry up me :)
;D

Starsurfer

Ich habe hier auch noch 3 STK 4.3" TFT mit shield liegen, zum wegschmeißen eigentlich zu teuer. Also muss ich mir da irgendwas für überlegen.
Habe mir jetzt erstmal einen zweiten mh-z bestellt. Ich glaube den bme680 lasse ich erstmal weg.
Bist du mit dem lolin TFT schon weiter, sind da genug Pins frei?
Gruß Sascha
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

ZitatBist du mit dem lolin TFT schon weiter

Bin gerade dabei. Allerdings möchte ich erst ein 3D-Druck-Gehäuse dazu konzipieren,
damit der Aufbau von vorne herein dazu passt.  ;)

Pins wären allerdings nur noch 2 frei. Das könnte noch für zwei Buttons zum Umschalten der Displayanzeige
passen. Ein Rotary-Encoder wäre aber auch nicht schlecht.

Der MH-Z19 ist mir eigentlich zu teuer, der BME680 tut es auch fast gleichwertig, mit etwas mehr Aufwand ...

Starsurfer

Wie "genau" ist den der 680 bei Temperatur und Luftfeuchtigkeit?
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

Zitat von: Starsurfer am 17 Februar 2019, 09:21:20
Wie "genau" ist den der 680 bei Temperatur und Luftfeuchtigkeit?
Es kommt immer darauf an, wogegen Du die Genauigkeit vergleichst.
Ansprechverhalten und Auflösung sind mehr als ausreichend.
Ca. 0,5 bis 1 Grad Celsius Offset je nach Umgebungsbedingungen.
Eigen- und Platinen-Erwärmung sind sehr relevant, deshalb muss man auch Wert auf ein passendes Gehäuse legen.
Bei der Luftfeuchtigkeit fehlt mir noch mangels Kalibriermöglichkeit  die Einschätzung.
Gefühlt ist die Feuchte 10..20% zu niedrig gegenüber anderen z.B. Lacrosse-Sensoren.

Starsurfer

Ah okay, die Lacrosse habe ich hier auch stehen und benutze sie zur Heizung und Lüftungssteuerung.
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

Der ESP-Wemos-Anfang mit dem "umorganisierten" BME680 ist gemacht ...
Erst mal mit dem ST7735 128x160-Display, weil da die Portierung vom STM32 am einfachsten ist.
Darauf aufbauend kommt dann das 240x320-Display mit Touch dran...
https://github.com/juergs/BME680_TFT_Monitor 

Datenübertragung:

  • UDP
  • RFM69CW (LaCrosse-Protokoll (LGW)
  • CC1101 (HM-ASKsin-Protokoll)

Anzeige

  • keine
  • TFT - 128x160
  • TFT - 240x320
  • OLED - SS1306 (64x128)
  • ePaper

thobastian

Hallo !

Der BME680 interessiert mich auch und ich habe ihn bereits mit einem ESP8266 in Verwendung.
Problem ist nur, VOC und CO2 stehen auf 0.  Hast Du hier schon Erfahrung?
und wann möchtest fertig sein mit Deiner Lösung? Ich bin gespannt auf dein Script.

Gruß
Thomas

juergs

Hallo Thomas,
dieser Thread ist nur die Fortsetzung eines anderen.
Bemühe einfach die Suche in Fhem nach bme680.

Wir haben mehrere Möglichkeiten (mit und ohne BSEC) ausgearbeitet, die sehr gut funktionieren ...

Hier: https://forum.fhem.de/index.php/topic,78619.0.html
oder:  https://forum.fhem.de/index.php/topic,96241.0.html

Wenn Du Deine Version näher beschreibst, kann ich Dir vielleicht weiterhelfen ...


Jürgen

Starsurfer

Moin,
hat zufällig jemand eine Erweiterungsplatine für die Sensoren, die man hinten auf den TFT aufstecken kann?
Schön wäre es, wenn diese neben dem TFT raus steht, so das die Sensoren (BME+MAX) nach vorne zeigen.


Zitat von: juergs am 13 Februar 2019, 20:21:02
Endlich mal ein Display, das einfach so, out-of-the-box funktioniert.  :) 
... Mit Touch und (relativ) günstig  ist, mit ca. 3 Tagen Lieferzeit.
Die Doppelsteckerleiste zum D1mini passt genial dazu ....

http://www.esp8266learning.com/a-quick-look-at-the-wemos-tft-2-4-touch-shield.php#codesyntax_6
https://www.exp-tech.de/displays/lcd/9184/wemos-tft-2.4-touch-shield
Evtl. wäre auch noch das I2C-Shield sinnvoll:
https://www.exp-tech.de/plattformen/wemos/9160/wemos-tft-i2c-connector-shield
Touch:
https://github.com/PaulStoffregen/XPT2046_Touchscreen/blob/master/XPT2046_Touchscreen.h

BME680: http://www.esp8266learning.com/bme680-environment-sensor-and-esp8266-example.php

Schematic:
https://wiki.wemos.cc/_media/products:d1_mini_shields:sch_tft2.4_v1.0.0.pdf

Wiki:
https://wiki.wemos.cc/products:d1_mini_shields:tft_2.4_shield
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


Starsurfer

Hatte an zwei Plexiglasplatten gedacht, die mit Abstandhaltern aneinander geschraubt werden, in Ermangelung eines 3D Druckers.
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

Zitat von: Starsurfer am 23 Juni 2019, 16:49:44
Hatte an zwei Plexiglasplatten gedacht, die mit Abstandhaltern aneinander geschraubt werden, in Ermangelung eines 3D Druckers.

Habe schon ein 3D-Druck-Prototyp in Fusion360 erzeugt, bin aber noch nicht ganz zufrieden damit.
Der Wemos wird mit einem separaten Gehäuseteil aufgesetzt.
Der Fuß ist noch modelliert, um die beste Touch-Position bzw. den passenden Hand-gerechten Neigungswinkel zu bestimmen....
Suche noch für den Ständer eine (bessere) Lösung...
Das Designen in Fusion war übrigens doch etwas schwieriger als gedacht.
Der BME680-Sensor würde in den Fuß integriert, weit weg von Temperatureinflüssen ...

Evtl. fange ich auch nochmal neu und größer an, um den Ständer komplett in das Gehäuse zu integrieren ...