Robins Blog – Technik und Multimedia

Fhem: MQTT – Multichannel Gas Sensor Methan Propan CO NO2 – MiCS-6814

Update: 21.06.2019 fhem script erweitert

Gas-Sensoren für die Messung unterschiedlicher Gase werden immer beliebter. Ich habe schon 2015 mit MQ2- und MQ7 Sensoren herumexperimentiert. Siehe hierzu auch meine Blogbeiträge MQ-2 Sensor und Luftqualitäts-Sensor – ein Vergleich und Gassensor MQ-7 und MQ-2 mit LCD-Display und Arduino Nano von damals. Viele Sensoren messen nur die Summe der Schadstoffe und geben ein Ergebnis nach dem Ampel-Verfahren rot, gelb, grün  zurück. Auch hier habe ich noch einige Sensoren seit Jahren in Gebrauch. Blogbeiträge: Luftqualitäts-Sensor Voltcraft CO 20 / Rehau – ein Erfahrungsbericht und ioBroker: USB-Raumluft-Sensor Daten über MQTT übertragen. Ebenfalls ist der BME 680 zu empfehlen. Ein sehr guter CO2 – Sensor ist dieser: FHem: Luftqualität messen mit dem MH-Z14 / MH-Z19 CO2 sensor und ESPEasy WeMos. Derzeitig mache ich mit dem CCS811-Sensor gute Erfahrungen, welcher eCO2 und TVOC misst, siehe mein Blogbeitrag Revisit: TVOC eCO2 Temperatur Luftfeuchte Luftdruck Luftqualität messen.

Ich habe für Euch einen Sensor ausprobiert, welcher einige bekannte Gase separat aufschlüsselt und anzeigt. Der Sensor heisst MiCS-6814 und beinhaltet neben dem Sensor auch einen ATMEL Chip, welcher die Rechnerrei abnimmt. Der Sensor stammt von der Firma SEEED.

Folgende Gase können gemessen werden.

Carbon monoxide CO 1 – 1000ppm
Nitrogen dioxide NO2 0.05 – 10ppm
Ethanol C2H6OH 10 – 500ppm
Hydrogen H2 1 – 1000ppm
Ammonia NH3 1 – 500ppm
Methane CH4 >1000ppm
Propane C3H8 >1000ppm
Iso-butane C4H10 >1000ppm

Da ich nicht der große Chemiker bin, weiß ich nicht, wofür der eingesetzt wird. Da ich auf dem Land lebe und einige Kilometer eine große Raffinerie ist, werde ich den Sensor mal draußen platzieren und schauen, was für Daten er auswirft. Daten über diesen Sensor gibt beim Hersteller SEEED.

Anbindung an die Hausautomation:

Wie oben schon erwähnt, hat der MiCS-6814 neben dem Sensor auch einen ATMEL-Controller auf dem Board. Dadurch kommen die Daten via SCL und SDA aus dem Modul raus. Es muss vorab keine Firmware auf das Modul geflashed werden, das ist gut.

Am SDA / SCL muss demnach nur noch ein zweiter Mikrocontroller (Nano oder Wemos D1 Mini oder was auch  immer) mit einer Firmware betankt werden, und schon geht die wilde Fahrt los.

Ich habe den Quellcode für einen WeMos D1 genommen, welcher von Stefan aus dem Fhem-Forum kommt. Der Wemos nimmt die Daten vom Sensor auf, formatiert es um im MQTT und sendet es  per WLAN an einem MQTT-Broker. Von da aus kann man via FHEM, ioBroker oder Node-Red die Daten abrufen. Genial finde ich.

Als Beispiel habe ich hier mal die Scripts für Fhem eingefügt.

defmod MiCS6814 MQTT_DEVICE
attr MiCS6814 IODev MyBroker
attr MiCS6814 comment http://wiki.seeedstudio.com/Grove-Multichannel_Gas_Sensor/\
\
Detectable gases\
Carbon monoxide CO 1 – 1000ppm\
Nitrogen dioxide NO2 0.05 – 10ppm\
Ethanol C2H6OH 10 – 500ppm\
Hydrogen H2 1 – 1000ppm\
Ammonia NH3 1 – 500ppm\
Methane CH4 >1000ppm\
Propane C3H8 >1000ppm\
Iso-butane C4H10 >1000ppm\

attr MiCS6814 room 90_Devices,MQTT
attr MiCS6814 subscribeReading_C2H5OH /home/data/C2H5OH
attr MiCS6814 subscribeReading_C3H8 /home/data/C3H8
attr MiCS6814 subscribeReading_C4H10 /home/data/C4H10
attr MiCS6814 subscribeReading_CH4 /home/data/CH4
attr MiCS6814 subscribeReading_CO /home/data/CO
attr MiCS6814 subscribeReading_H2 /home/data/H2
attr MiCS6814 subscribeReading_NH3 /home/data/NH3
attr MiCS6814 subscribeReading_NO2 /home/data/NO2

Als Ausgabe bekommt man das:

READINGS

C2H5OH
0.18
2019-04-27 10:30:36
C3H8
139.44
2019-04-27 10:30:36
C4H10
120.42
2019-04-27 10:30:36
CH4
1.40
2019-04-27 10:30:36
CO
0.84
2019-04-27 10:30:36
H2
0.06
2019-04-27 10:30:36
NH3
0.27
2019-04-27 10:30:35
NO2
0.55
2019-04-27 10:30:36
transmission-state
incoming publish received
2019-04-27 10:30:36

 

Update: CO Werte lt AQI : http://aqicn.org/calculator/de/

defmod MiCS6814_CO_DOIF DOIF ([MiCS6814:state] eq "error") \
(setreading MiCS6814 CO -1,\
setreading MiCS6814 COmg -1,\
setreading MiCS6814 CO -1,\
setreading MiCS6814 CO_ALEXA Der CO Gehalt konnte nicht gemessen werden)\
DOELSEIF (([MiCS6814:CO] > 0) and [MiCS6814:CO] < 4.5) \ (setreading MiCS6814 CO_Literal gut,\ setreading MiCS6814 CO_Literal_ALEXA gut,\ setreading MiCS6814 CO_Literal_No 1) \ DOELSEIF (([MiCS6814:CO] > 4.5) and ([MiCS6814:CO] )< 9.5 )\ (setreading MiCS6814 CO_Literal erhöht,\ setreading MiCS6814 CO_Literal_ALEXA erhöht,\ setreading MiCS6814 CO_Literal_No 2) \ DOELSEIF (([MiCS6814:CO] > 9.5) and ([MiCS6814:CO] )< 12.5)\ (setreading MiCS6814 CO_Literal ungesund für empf,\ setreading MiCS6814 CO_Literal_ALEXA ungesund für empf,\ setreading MiCS6814 CO_Literal_No 3) \ DOELSEIF (([MiCS6814:CO] > 12.5) and ([MiCS6814:CO] )< 15.5 )\ (setreading MiCS6814 CO_Literal ungesund,\ setreading MiCS6814 CO_Literal_ALEXA ungesund,\ setreading MiCS6814 CO_Literal_No 4) \ DOELSEIF (([MiCS6814:CO] > 15.5) and ([MiCS6814:CO] )< 30.5 )\ (setreading MiCS6814 CO_Literal sehr ungesund,\ setreading MiCS6814 CO_Literal_ALEXA sehr ungesund,\ setreading MiCS6814 CO_Literal_No 5)\ DOELSEIF (([MiCS6814:CO] > 30.5) and ([MiCS6814:CO] )< 40.5 )\ (setreading MiCS6814 CO_Literal gefährlich,\ setreading MiCS6814 CO_Literal_ALEXA gefährlich,\ setreading MiCS6814 CO_Literal_No 6)\ DOELSEIF ([MiCS6814:CO] > 40.5) \
(setreading MiCS6814 CO_Literal gesundheitsgefährdend,\
setreading MiCS6814 CO_Literal_ALEXA gesundheitsgefährdend,\
setreading MiCS6814 CO_Literal_No 7)
attr MiCS6814_CO_DOIF room Logik


ebay: MiCS6814

Natürlich könnte man den Sensor auch mobil betreiben und als Ausgabe ein 4 Zeilen LCD benutzen. Dazu müsste man nur die Firmware auf dem Wemos oder Nano umprogrammieren und als Spannungsversorgung eine Powerbank benutzen.

Multichannel Gas Sensor Methan Propan NO2 – MiCS-6814

Update 10.05.2019: Ich habe den Sketch angepasst, sodaß er jetzt ein Webinterface besitzt. AP auswählen, MQTT-Broker, Messzyklus in ms, fertig.

Ebenfalls habe ich den Sketch erweitert, sodaß er neben den Werten in ppm noch zusätzlich die Werte in mg/m3 ausgibt. Ausgabe auch über MQTT. Danke Stefan.

Preis: Der Sensor ist nicht ganz billig und nicht immer lieferbar, ungefähr 45 Euro, gesehen bei eBay (affili-link): MiCS-6814 Kaufen bei Aliexpress (affili-link)- hier Wer den aktuellen Sketch haben möchte, dem kann ich ein WeMos D1 mit dem Sketch für
6,90 euro inkl. Versand schicken.

Bei Fragen, fragen und ab in die Kommentare.

 

Die mobile Version verlassen