Der Weihnachtsmann hat mir das neue AZ-Envy Sensorboard gebracht, mit dem ich mich jetzt zwischen den Jahren beschäftigen konnte. Es enthält einen MQ-2 Luftsensor und einen SHT30 Temperatursensor auf einem minimalistischen Board mit ESP8266 12-F. Stromversorgung erfolgt über USB. Leider nur Stromversorgung, denn es ist kein FTDI o.ä. verbaut, nur eine Pinleiste.
Der MQ-2 gibt ein analoges Signal an den ADC, der SHT30 hängt an I2C.
Nach anfänglichen Schwierigkeiten bei der Programmierung konnte ich erfolgreich EASPEasy und auch Tasmota flashen. Hier muss man wissen, das die Pinleiste anders als beschriftet nur GND sowie TX und RX beschaltet hat (also kein VCC), und RX/TX intern schon verstauscht sind, man also seinen FTDI Adapter TX mit TX und RX mit RX verdrahten muss. Außerdem muss man den Flash Button beim Einschalten/Reseten fest drücken, damit das Modul sich flashen lässt.
Bei ESPEasy muss man wissen, das der SHT30 Sensor in den bereitgestellten Binaries nur in der „Testing“ Variante aktiviert ist. Leider gibt es diese Variant vorkompiliert nur in der *_VCC.bin Variante, wo der ADC direkt an VCC programmiert ist und deshalb nicht die Werte des MQ-2 anzeigen kann.
Also habe ich (erstmals!) mal Tasmota probiert. Hier muss man die tasmota_sensor.bin nehmen, da der SHT30 nur damit erkannt wird.
Diese Daten werden an meinen MQTT Server gesendet.
tele/azenvy2/SENSOR = {"Time":"2020-12-29T12:28:08","ANALOG":{"A0":108},"SHT3X-0x44":{"Temperature":35.8,"Humidity":17.9,"DewPoint":7.7},"TempUnit":"C"}
Der MQ-2 Analog Wert ist eher für Alarmierungen bei Schwellwert Überschreitungen (z.B. >1000) als für exakte Messungen Messungen gedacht. Eine ganz gute Einführung in das Thema MQ Sensoren gibt es hier. In der Arduino Library zum Sensor ist aber auch schon eine Umrechnung in ppm enthalten, die könnte man in PHP sicher relativ einfach nachbilden.
Die Messwerte des Temperatur Sensors sind auch verfälscht, weil der Luftsensor im Betrieb aufgeheizt wird und er nut 1cm daneben sitzt. Leider sind weder die VCC als auch die I2C Leitungen nicht nach aussen geführt, so das man ein Display oder einen externen Temperatursensor nur anschliessen kann, wenn man die Kabel direkt an den ESP auf die Kontakte lötet. Das geht mit ein wenig Vorsicht auch ganz gut (nicht so wie ich, der das Board eingespannt hatte und damit den SHT30 abgeschliffen hat )
In den Produkt Downloads gibt es auch eine Datei mit STL Files für ein einfaches Gehäuse. Nach ca. 5h war mein Drucker damit fertig Es mussten eine ganze Reihe Supports aus den Löchern entfernt werden, was nicht so trivial war. Anschliessend passte in den Ausschnitt auch nur einUSB Kabel mit kleinem Steckgergehäuse.
Als nächstes steht die Einbindung in IPS über MQTT an. Bin mir aktuell noch nichrt ganz sicher, ob ich jetzt das Tasmota Modul nehmen kann oder mir mit dem neuen MQTT-Client Modul selber was zusammen bauen muss.
Tommi