AZ-Delivery bietet mit AZ-Envy ein sehr preiswertes Sensorboard an, mit dem durch einen Sensirion SHT30 Temperatur- und Luftfeuchtigkeit und durch einen MQ-2 eine Gasgemisch aus Methan, Butan, LPG und Rauch erfasst werden kann.
Der MQ-2 Sensor ist ein Mitglied der umfangreichen MQ-Serie, die unterschiedliche Gasgemische detektieren kann. Die folgende Tabelle, entnommen aus https://www.mysensors.org/build/gas, zeigt die Familie der MQ-Sensoren und die detektierten Subtanzen.
Sensor | Detects | Heater Voltage |
---|---|---|
MQ-2 | Methane, Butane, LPG, smoke | 5V |
MQ-3 | Alcohol, Ethanol, smoke | 5V |
MQ-4 | Methane, CNG Gas | 5V |
MQ-5 | Natural gas, LPG | 5V |
MQ-6 | LPG, butane gas | 5V |
MQ-7 | Carbon Monoxide | Alternating 5V and 1.4V |
MQ-8 | Hydrogen Gas | 5V |
MQ-9 | Carbon Monoxide, flammable gasses. | Alternating 5V and 1.4V |
MQ131 | Ozone | 6V |
MQ135 | Air Quality (Benzene, Alcohol, smoke) | 5V |
MQ136 | Hydrogen Sulfide gas | 5V |
MQ137 | Ammonia | 5V |
MQ138 | Benzene, Toluene, Alcohol, Acetone, Propane, Formaldehyde gas, Hydrogen | 5V |
MQ214 | Methane, Natural gas | 6V |
MQ216 | Natural gas, Coal gas | 5V |
MQ303A | Alcohol, Ethanol, smoke | 0.9V |
MQ306A | LPG, butane gas | 0.9V |
MQ307A | Carbon Monoxide | Alternating 0.2V and 0.9V. |
MQ309A | Carbon Monoxide, flammable gasses | Alternating 0.2V and 0.9V |
MG811 | Carbon Dioxide (CO2) | 6V |
AQ-104 | Air quality | – |
Wie die vorstehende Tabelle zeigt, messen die MQ-Sensoren verschiedene Gasarten gleichzeitig. Die in den Datenblättern enthaltenen Formeln stellen aber allenfalls Näherungen dar. Über eine Kalibrierung ist es möglich, genauere Sensordaten zu erhalten.
In Abschnitt 5.7 meines Arduino Handbuchs habe ich die Messung der Luftqualität mit einem Sensor MQ-135 beschrieben und auch da bereits auf die ggf. erforderliche Kalibrierung hingewiesen. Für die im Datenblatt gezeigte Empfindlichkeitscharakteristik hatte Davide Girondi mittels nichtlinearer Regression die formelmäßige Grundlage für die CO2-Messung für das im Programmbeispiel Uno_MQ135.ino umgesetzte Verfahren erstellt. Wenn Sie tiefer einsteigen wollen, dann sollten Sie seine Posts studieren:
– http://davidegironi.blogspot.com/2017/05/mq-gas-sensor-correlationfunction.html
– http://davidegironi.blogspot.com/2014/01/cheap-co2-meter-usingmq135-sensor-with.html
Im Beitrag Acquisition and Calibration Interface for Gas Sensors stellen die Autoren eine Methode zur Kalibrierung von Gassensoren mit LabView vor. Ein grundlegendes Problem besteht allerdings darin, dass durch jeden dieser Sensoren verschiedene Gasarten gleichzeitig detektiert werden. Wenn eine Probe zwei oder mehr der zu detektierenden Gase aussendet, dann können die Ergebnisse nicht eindeutig sein. Um dieses Problem zu lösen, muss die gemessene Substanz bekannt sein!
Das von Niklas Heinzel entworfene Sensorboard weist neben den beiden Sensoren SHT3 und MQ-2 ein ESP8266-12F Modul auf, welches zum Einen beide Sensoren ausliest, die Daten aufbereitet und gleichzeitig eine WiFi-Verbindung aufbauen kann.


Der microUSB-Anschluss dient nur der Spannungsversorgung über USB. Die Programmierung muss über einen an die Stiftleiste angeschlossenen FT232RL USB zu TTL Serial Adapter erfolgen. Im AZ-Delivery Blog wird das mit dem zusätzlichen Platzbedarf begründet, was mich nicht überzeugt. Eine diesbezügliche Anfrage blieb bislang unbeantwortet. Unabhängig hiervon sollten Sie den Beitrag unbedingt lesen, da sehr detailliert die Inbetriebnahme beschrieben wird.
Mit einem über Femal-Femal-Jumper an RX, TX und GND der Stiftleiste angeschlossenen FT232RL USB zu TTL Serial Adapter habe ich die Inbetriebnahme ohne Probleme vornehmen können. Achtung: RX und TX hier nicht kreuzen! Im folgenden Bild sind die erforderlichen Verbindungen für die Entwicklungsphase gezeigt.

Zur Inbetriebnahme habe ich die Programme ESP8266_AZ-Envy_RawData.ino und ESP8266_AZ-Envy_Data.ino verwendet. Sie finden diese im Repository https://github.com/ckuehnel/Arduino2020/tree/master/ESP8266.

Im Programm ESP8266_AZ-Envy_RawData.ino werden Temperatur und Luftfeuchtigkeit mit dem Sensor SHT30 erfasst und angezeigt. Der Sensor MQ-2 reagiert mit einem veränderten Widerstandswert auf detektiertes Gas. Der Widerstandswert wird über den internen ADC erfasst und als ADC-Count ausgegeben. Die prinzipielle Funktionsweise kann bereits mit diesem Programm getestet werden.

Im Programm ESP8266_AZ-Envy_Data.ino werden Temperatur und Luftfeuchtigkeit wieder mit dem Sensor SHT30 erfasst und angezeigt. Ausgehend von den Kennlinien im Datenblatt des MQ-2 wurde von Sandbox Electronics eine Prozedur für die Bestimmung verschiedener Gase (LPG, CO, Rauch) entwickelt, die Bestandteil der im Programm verwendeten MQ-2 Library ist. Die Tests wurden an frischer Luft durchgeführt, weshalb die Gasbestandteile null sind.
Bei Messungen in einem belasteten Innenraum können die Werte der MQ-2 Sensors dann auch leicht die im folgenden Screenshot gezeigten Werte annehmen.

AZ-Envy weist ein Problem auf, welches in der Anordnung des Sensors SHT30 auf dem Board begründet ist. Der Sensor MQ-2 muss funktionsbedingt beheizt werden, wodurch auch der SHT30 „fremdbeheizt“ wird. Auf dem Board sind schon thermische Isolationsmassnahmen vorgesehen, dennoch ist der Einfluss nicht vollständig zu eliminieren. Das ist bei ähnlichen Boards nicht anders.
Im folgenden Diagramm sind die Abweichungen anhand von drei Messpunkten mal gezeigt. Durch eine lineare Approximation erhält man eine Korrekturmöglichkeit, die auch im Programm verwendet wird. Sicher ist diese Korrekturmassnahme durch weitere Messpunkte zu verbessern, doch das Prinzip wird hier bereits deutlich.

Die Ausgabe der Messwerte über die Console ist eine gute Möglichkeit für die Inbetriebnahme eines Messeinrichtung, um die es sich beim AZ-Envy ja durchaus handelt.
Eine andere Möglichkeit ist die Übergabe der Messwerte an einen Webserver, auf den dann über einen Webclient (Webbrowser) zugegriffen werden kann. Mit dem Programmbeispiel ESP8266_Webserver_AZ-Envy.ino bin ich diesen Weg gegangen. Die folgenden Bilder zeigen die Ausgabe über die Console und die Anzeige der Daten im Webbrowser eines Smartphones.


2021-09-18/CK
Lieber Herr Kühnel, ein schönes Projekt und vor allen Dingen sauber ausgearbeitet die Sensor Tabelle. Im Gegensatz zum Entwickler des AZ-Envy, der aus Wolfsburg zu kommen scheint haben Sie das Problem mit der Temperatur ganz klar erkannt und angesprochen, Dafür vielen Dank. Ich habe den Eindruck das selbst AZ-Delivery nicht ganz glücklich mit dem Board ist, preist es doch selbiges wie sauer Bier ständig an. Ich habe mehrere mit dem Tasmotizer programmiert und habe zwar MQTT Funktionen (m. E. IOT Standard) , aber als Sensor ein „Schätzeisen“ ( Temperatur) ähnlich dem DHT11. Es macht mir immer wieder Freude von Ihnen zu lesen!
LikeGefällt 1 Person
Danke für die netten Worte – das spornt an!
LikeLike