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.

 

Dieser Beitrag wurde unter Fhem-Hausautomation abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

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

  1. Philipp sagt:

    Hallo Robin,

    ich würde das auch gerne mal ausprobieren. Welche Firmware hast du denn auf den D1 geflasht? Hast du mir Links dazu?

    Danke

    Philipp

  2. Hallo Robin,

    auf der suche nach Meßanordnungen für ein Projekt bei dem verschiedene Arten der Tierhaltung unter dem Aspekt der Gaszusammensetzung im Stall betrachtet werden ollen, bin ich auf Deine Seite gestoßen und bin begeistert von den Möglichkeiten, die mir Deine Applikation hilfreich eröffnen kann. Gerne nehme ich Dein Angebot über ein WeMos D1 mit dem aktuellen Sketch an. allerdings muß ich zugeben, ein absoluter Anfänger im Reich der Mikrokontroller zu sein. Außer einem Arduino „UNo R3 DIL“ und eunem Buch von Franzis habe ich noch nichts. Andererseits ist mir Netzwerktechnik „nicht fremd“. Mir schwebt deshalb vor, zunächst einen Sensor an verschiedenen Stellen im Stall zu platzieren und von Zeit zu Zeit die Ergebnisse der Langzeitmessungen über WLAN auf meinen Laptop zu holen (es wäre unpraktisch z.B. immer unter das Dach klettern zu müssen und eine SD-Karte auszulesen). Die Ergebnisse sollten in Tabellenform und noch besser, wie bei Dir, grafisch angezeigt werden. Wenn alles stabil funktioniert, sollten in mehreren unterschiedlichen Ställen und dort an verschiedenen Positionen Sensoren platziert sein, die mit dem Laptop per WLAN angesprochen werden können. Kannst Du mich mit Deiner Erfahrung unterstützen ?

    Mit freundlichen Grüßen

    Christian

  3. Stefan sagt:

    DANKE @Robin
    Das du den Code noch erweitert hat 😉

    Für „Landluft“ kann man auf jeden Fall den Ammoniak Wert heran ziehen, evtl. noch Methan.

    @Sven
    Säure könnte mit einem ph Meter gehen
    https://www.atlas-scientific.com/_files/_datasheets/_circuit/pH_EZO_datasheet.pdf

    Druck vielleicht mit einem BMP280

    Zu Sauerstoff fällt mir jetzt nichts ein, und Zuckergehalt wird wohl schwierig.

  4. Robin sagt:

    Hallo Sven,

    ich habe vollen Respekt für Euren Berufszweig. Es gibt nichts besseres, als die „echten Brötchen“ vom Bäcker.
    Zum Thema: ich kann dir diesen CO2 Sensor empfehlen. Läuft per WLAN ->
    https://blog.moneybag.de/fhem-luftqualitaet-messen-mit-dem-mh-z14-mh-z19-co2-sensor-und-espeasy-wemos/

    Bei Fragen kannst du mich auch per email erreichen.

    LG
    Robin

  5. Sven sagt:

    Hallo Robin,

    erst einmal vielen Dank für deinen großartigen Blog. Ich bin absuluter „Newbie“ und durch die mutiviert mein Projekt umzusetzen.

    Hast du eine Idee wie ich einen einfachen WLAN oder Bluetooth CO2 Sensor bauen könnte?

    Ich backe Brot und stelle alle Zutaten wie Hefe und Sauerteig selbst her. Ich möchte ein kleinen Kessel bauen in dem verschiedene Sensoren Auskunft über meine Hefe geben.

    Es warten auch noch weitere Sensoren wie Sauerstoff, Druck, Säure und Zuckergehalt auf mich.

    Viele Grüße aus Worpswede

    Sven

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.