Frage: ESP8266, Thermometer, MQ2 mit ESPEasy als vernetzter Rauchmelder?

Begonnen von Dynalon, 18 Juni 2020, 10:01:22

Vorheriges Thema - Nächstes Thema

Dynalon

Hallo alle zusammen,

ich bin eigentlich ein Amateur, der aber mit täglich wachsender Begeisterung jeden Tag sein Heim weiter automatisiert. Momentan stecke ich an einer kleinen Hürde fest, bei der mir Google als auch die Forumsuche hier nicht helfen konnten:

Ich möchte (zusätzlich zu den normalen, gesetzlich vorgeschriebenen Rauchmeldern) selbst"gemachte" Geräte als Rauchmelder einsetzen, da sich unser kleines Häuschen incl Keller und einem Schlafzimmer auf dem Dachboden auf 4 Stockwerke verteilt. Denn wenn in meinem Bastelkeller der 3d Drucker  in Flammen steht, höre ich das im 2.OG im Schlafzimmer garantiert nicht wenn da unten der Rauchmelder los legt.

Mein bisheriges Setup:

ESP D1 Mini (mit installiertem ESPEasy)
MQ2 Rauchsensor
Thermometer DS18b20

ESP Easy Git Build:   mega-20191208
ESP Easy ist ins WLAN eingebunden, in FHEM integriert usw.
Thermometer läuft und sendet brav alle 20sec den aktuellen Wert an FHEM. (Yeah!)

Jetzt zu meinem Problem:
MQ2 habe ich per Analog Out, Ground und 5V verbunden, wie hier beschrieben:

https://www.youtube.com/watch?v=w-C9ldFkrtM

Allerdings möchte ich alle meine ESP Sensoren über ESP Easy einbinden (wer blickt schon durch, wenn ich in 2 Jahren hier 10-20 ESP nodes verbaut habe und jeder mittels einer anderen Methode konfiguriert  wird)

Leider kann man aber im ESP Easy den Rauchsensor nicht so schön einfach auswählen wie das Thermometer (wird zumindest in meiner Version nicht aufgeführt). Es gibt neben zig Devices (Environment, Dust, Gases,...) allein 3 verschiedene Analoge Inputs (ADS1115, PCF8591 und Analog internal), dazu weitere Werte wie I2C, Gain, Input Multiplexer,...

Im Prinzip möchte ich einfach eine Zahl ausgespuckt bekommen, die sich bei Rauchbildung (nach oben oder unten) ändert.
Dann kann ich im FHEM einen Grenzwert festlegen, der bei Über- (oder Unterschreitung) meine im Haus installierten Homematic Speaker aktiviert.
Alternativ nehme ich gerne auch eine andere Version von ESP Easy - flashen hab ich ja zumindest schon gelernt.  ;D

Was auch großartig wäre: Gibt es irgendwo ein Kompendium wie man die ganzen Sensoren (Bewegungsmelder, Ultraschall, Licht, Regen, Magnet,...) in ESP Easy einrichtet? Momentan bin ich für jeden Schnipsel stundenlang am Googeln, bestimmt hat doch schon jemand mal eine Übersicht erstellt, die ich nur nicht gefunden habe. Gibt ja allein für FHEM sooo viele Seiten, da existiert doch bestimmt auch was für ESP Easy...?

Vielen Dank schonmal!!!

frober

Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Dynalon

Hallo Frober,

vielen Dank für den Link! Das hilft mir schon bei einigen anderen Projekten, deren Fragen ich noch gar nicht gestellt habe (man will sich ja nicht unbeliebt machen, indem man gleich das ganze Forum mit dutzenden neuen Fragen belästigt).

Bin jetzt nicht ganz sicher, ob ich das mit dem Rauchmelder richtig eingestellt habe (habe Analog Input - Internal genommen und nur das Oversampling deaktiviert), jedoch steht er normal bei etwa 200-250 und steigt beim Räucherstäbchentest auf über 500...

Klingt ja schonmal ganz gut. Werde das die nächsten Tage mal mit einem verrauchten Druckraum probieren. Wenn es läuft, baue ich ihn direkt ein.  ;)

Viele Grüße,

Dynalon

frober

Ansonsten evtl. Spannungsteiler, ESP kann nur 3.3V, ich kenne jedoch deinen Sensor nicht.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Dynalon

Leider weiß ich selbst nicht so genau was ich tue.  ;)

Also ich habe ihn an den 5V Anschluss von meinem D1mini gehängt. Da dieser per USB versorgt wird, vermute ich, dass die 5V da einfach zu diesem Pin durchgeschleust werden, ohne über den eigentlichen ESP8266 zu laufen. Und zumindest die Verkabelung hatte ich ja schon bei diversen Google Beiträgen so gesehen.

Wie gesagt, ich werde einfach mal testen, wie er sich unter "realitätsnahen" Bedingungen schlägt. Letztendlich muß ich ja nur einen Grenzwert im FHEM definieren, der "Luft ist ok" von "Rauch im Druckraum" trennt. Sieht auf jeden Fall den Werten nach schonmal gut aus.

frober

Da wäre ich vorsichtig!
Soweit ich das sehe brauchst du einen Spannungsteiler/Pegelwandler.

Es gibt mWn ESP die von der Beschaltung her, 5V vertagen, aber nicht alle!

Da würde ich Mal nach deinem ESP-Board goog....
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Dynalon

Hi,

habe es gerade nachgeschlagen.

Hier das Datasheet:
Microcontroller   ESP-8266EX
Betriebsspannung   3.3V
Eingangsspannung (USB)   5V
Digital E/A Pins   11
Analog Eingangs Pins   1(Max input: 3.2V)
Flash Memory   4M bytes
Clock Speed   80MHz/160MHz
CPU   32-bit
Länge   34.2mm
Breite   25.6mm
Gewicht   10g
Stromverbrauch Normalbetrieb   70 mA
Stromverbrauch Schlafmodus   0,17 mA

Ist also alles im Grünen Bereich. Hat auch schon die ersten 2 Std Test überstanden.
Hätte mich aber auch sehr gewundert, wenn ein Gerät mit MicroUSB Anschluss nicht mit 5V laufen dürfte. Kenne zwar mittlerweile TFTs, die ohne QC mit 12V (und einem extra 12V TypC Netzeil) laufen, aber nach unten ist mir das beim USB Standard bisher noch nie passiert...

frober

Eben nicht!

Der ESP wird über USB mit 5V versorgt. Ein Spannungsregler regelt auf 3.3V herunter.

Soweit okay.

Dein Sensor bekommt 5V und gibt wahrscheinlich bei max Wert 5V analog zurück.

Der ESP verträgt laut Datenblatt nur 3.2V.
Er toleriert evt. 5V, kann aber schief gehen ( defekt), ob er die 5V analog ( also Max.Wert) messen kann, glaube ich eher nicht.
Probiere welchen max. Wert der ESP anzeigt.

ZitatAnalog Eingangs Pins   1(Max input: 3.2V)
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Dynalon

Okay,

gut das Du mir das erklärst. Wollte noch ein paar baugleiche Sensoren basteln und im Haus verteilen. Wär blöd, wenn die mir dann reihenweise ausfallen.

Nur wie misst man so etwas? Hab zwar ein Multimeter da, doch den Sensor in ein Kistchen mit ein paar Räucherkerzen stecken (damit er möglichst maximal auslöst) und dann die Spannung am analogen Output messen kann ja nicht genau sein...
Der maximale Wert den er gestern im ESP Easy ausgespuckt hat, war ca. 523 - aber ohne Einheit, gibt also wahrscheinlich keinen Rückschluss auf die Tatsächliche Spannung (sofern ich nicht den Faktor zwischen diesem Wert und der realen Spannung kenne). Laut Google soll der MQ2 Werte bis ca. 1000 ausgeben können.

Hast Du einen Tipp für mich, welchen Spannungsteiler ich verwenden sollte? Wie wäre beispielsweise so einer geeignet?
https://www.amazon.de/MissBirdler-Spannungsregler-Step-Down-Arduino-Breadboard/dp/B07GNNFWFV
Muß leider ehrlich sagen, dass zwar ein paar Grundlagen wie das ohmsche Gesetz verstehe, aber leider in der Oberstufe Physik abwählen musste und seitdem keine erwähnenswerten Berührungspunkte mehr in diesem Bereich hatte. Bisher klappte alles über Plug and Play oder Trial and Error (Glücklicherweise mehr ersteres als zweites).

Hier noch ein Datasheet vom MQ2 (das Board sieht zwar etwas anders aus als bei mir, ist aber die gleiche Typenbezeichnnung. Ach ja, der MQ2 hat auch ein Drehpoti zur Einstellung des Schwellenwerts, wovon ich bisher aber tunlichst die Finger gelassen habe):
https://www.robotshop.com/media/files/pdf/MQ-2-datasheet.pdf

Mir erschließt sich aus dem Datasheet leider nicht sonderlich viel, aber vielleicht kannst Du aus den Grafen die maximale analoge Ausgangsleistung ableiten...

Mal ganz blöd gefragt: Was würde passieren, wenn ich den Sensor mit 3V statt mit 5V betreiben würde? Also den MQ2 einfach mit dem 3V out statt 5V out verbinde? Im schlimmsten fall würde er nicht laufen, aber wenn doch, könnte nichts mehr kaputt gehen, oder? Möglicherweise wäre er weniger genau oder die Werte entsprechend der Spannung niedriger...? Allerdings weiß ich nicht, wie die im Datasheet beschriebene "Heizung" für die Messung notwendig ist. Bei 3V wird er sicher nicht mehr warm. Aber wie gesagt, mir geht es ja nicht um genaue Angaben, sondern nur um einen Schwellenwert je Gerät...

frober

Der analoge Messbereich (RAW) eines Mikrokontrollers geht von 0-1023

Die 5V braucht der Sensor, sonst kann er nicht messen.

Der Spannungsregler aus dem Link ist etwas anderes.

Es genügen 2 Widerstände:

Sensorausgang - 1,8k - 3,3k - Masse
                                       |
                              ESP-Eingang


Der Poti ist für die Empfindlichkeit einzustellen.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Dynalon

So,

ist alles incl der Widerstände verlötet. Vielen Dank nochmal. Derzeit steht der kleine in einem selbstgedruckten Gehäuse auf meinem Schreibtisch für einen Langzeittest.

Abgesehen davon, dass er nicht in den Sleep Modus möchte (hätte ihn alle 2 min messen lassen wollen) und das mittlerweile eingetroffene DS18B20 Thermometer sich trotz vieler Lüftungsschlitze bei 42° eingependelt hat (ist allerdings auch nah am ESP8266 verlötet), scheint nun alles zu laufen. Einbindung in FHEM ist auch schon erfolgt.

Viele Grüße

frober

Na doch nicht so schwer ;)

Sleep Modus beim Rauchmelder   :o
Must du wissen....
Ich würde das nicht machen.

Temp. kannst du mit einem Offset korrigieren.
Ob das in ESP Easy geht weiß ich nicht, notfalls über usereadings.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Dynalon

Hmmm...

das erste Mal in meinem Leben, dass ich einen "Schaltplan" hochlade. Habe die Rauchmelderschaltung unten skizziert.  ;D

Hoffen wir mal, dass der Newbie nichts durcheinander geschmissen hat.

Wie man das DS18B20 anschließt, gibts ja genug Schaltbilder, das erspare ich hier, sonst wirds zu unübersichtlich. Ich bin nach diesem hier vorgegangen: https://www.hackster.io/adachsoft_com/esp8266-temperature-sensors-ds18b20-with-http-server-5509ac

Das mit der Temperatur lasse ich so, würde kein Offset empfehlen, schließlich will ich ja die reale Temperatur, selbst wenn der Rauchmelder mitverantwortlich ist. Er wohnt jetzt übrigens seit mehreren Tagen glücklich in meinem Druckraum und ist seit 49 Stunden auch Dauer-angeschaltet und liegt trotz selbstgemachtem Gehäuse (Messgeräte ragen natürlich raus) bei 37,5°C.

Zum Sleep mode: Ich weiß zwar (noch) nicht wie das funktioniert, aber jeder "normale" Rauchmelder hat einen. Normal wird nur einmal alle 60, 90, oder je nach Modell sogar 180 Sekunden gemessen, sonst müsse man da auch alle 3 Monate die Batterie wechseln. Und mir wäre eine Messung 1x pro Minute auch absolut ausreichend.
Aber eins nach dem anderen. Habe (während ich auf neue MQ2's warte) jetzt erst mal den Ultraschall-Wasserstandsensor für meine Zisterne fertig gestellt. Da scheint auch der Deep Sleep zu funktionieren. Liegt evtl am analogen Output des MQ2...