In dieser Schaltung wird CH_PD -Eingang zur Aktivierung des Moduls verwendet.
Wenn CH_PD -Eingang nicht angeschlossen ist, hat er Zustand Low und das ESP8266 ist deaktiviert. CH_PD -Eingang ist hochohmig und es genügt ein geringer Strom um den auf High zu bringen und den ESP8266-Modul zu aktivieren.
Der ohmsche Widerstand des Leitungswassers genügt um den CH_PD -Eingang auf High zu ziehen.
Nach dem das ausgetretene Wasser das ESP8266-Modul aktiviert hat, verbindet sich der ESP-01 Modul mit Hausnetzwerk und versendet ein Nachricht über Wasseralarm an den Pushingbox-Dienst. Es wird Twitter-Meldung als weltweiter Alarm abgesetzt.
Danach geht der ESP8266 in Sleep-Modus.
Bei längerem Wassermelder Sensorkabel (mehr als 20cm) sollte man noch 2-Bauteile in die Schaltung einführen. Das sagt mir mein elektrotechnisches Gefühl.
Ein 1MOhm Widerstand und 100nF Kondensator zwischen CH_PD -Eingang und GND.
Das sollte den Spannungspegel auf dem hochohmigen Eingang stabilisieren.
Sonst arbeitet lange Wassersensor Leitung als Antenne und schaltet kurz den Modul an und aus. Dass bewirkt zwar keine Fehlalarm, aber erhöht den Stromverbrauch im Ruhezustand.
Nachteil dieser Schaltung ist, dass der Batterie Zustand nur während des Wasseralarms mitgeteilt wird. Daher empfehle ich 1-mal im Jahr ein Testalarm auszulösen und die Batteriespannung im Twitter oder Email abzulesen.
Des Weiteren sollte der Funk Wasser Melder etwas höher der wasserzugänglicher Fläche platziert werden. Nur der Wassersensor sollte an dem Boden liegen. Und natürlich sollte der Heimnetzwerk WLAN an dem zu überwachendem Ort vorhanden sein.
Es ist wichtig nicht zu vergessen die rote LED abzulöten.
Die rote LED kann nicht durch Software abgeschaltet werden, weil die direkt über Vorwiderstand an Stromversorgung angeschlossen ist.
Ich habe ganz barbarisch diese LED mit Elektronik-Seitenschneider abgerissen.
Theoretische Batterielaufzeit: Alkali-Mangan Batterie des Formfaktors AAA hat typ. Kapazität 1,2Ah.
Der ESP8266-Modul in Sleep-Modus bzw. disabled verbraucht 16uA (0,016mA oder 0,000016A). Das habe ich selbst mit einem Multimeter gemessen.
Berechnung: 1,2Ah/0,000016A=75000h. 75000h/24= 3125 Tage. 3125Tage/365Tage= 8 Jahre.
Im aktivierten Zustand verbraucht das ESP-01 Modul 80mA. Das Verbindungsaufbau und der Versand einer Nachricht an den PushingBox dauern etwa 2 bis 3 Sekunden.
Manchmal nach dem Anschließen des ESP-01 Moduls an die Batterie, hat die blaue LED leicht geschimmert. In diesem Zustand verbraucht das ESP-01 Modul 1mA. Das ist natürlich für die Batterielebensdauer schlecht.
Wenn sie sehen, dass blaue LED Schimmert, dann schließen Sie die Kontakte das Wassersensors kurz zusammen, das bewirkt das der ESP-01 Modul richtig in "disabled" Zustand kommt.
Als Wassersensor schlage ich vor Standard Steckerleiste RM2,54 vergoldet zu benutzen.
Die ist veredelt und somit gegen Korrosion geschützt. Die Seite wo der Kabel angelötet ist, habe ich mit Heißkleber ummantelt. Heißkleber dient ebenfalls zum Korrosionsschutz der Lötstellen und bildet einfache Zugentlastung.
Zu Korrosionsschutz (in Feuchten Räumen) kann die ganze Schaltung mit einem Lack besprüht werden. Man kann Nagellack, Autolack oder sonstiges Lack nehmen.
RX/TX mit einem Jumper Brücken. Stromversorgung anlegen. ESP8266 startet im Access Point Modus.
Mit einem WLAN fähigem Gerät das WLAN Netzwerk „Wassermelder Setup“ auswählen und mit dem Passwort „tiramisu“ anmelden.
Dann starten Sie ein Internetbrowser und geben Sie in Adressleiste 192.168.168.30 ein.
Wenn die Quellcode mit der Option #define DNS kompiliert wurde, dann wird beliebige Domen zum Setupseite führen.
Es öffnet sich ein Formular mit Eingabefeldern für SSID, WLAN–Passwort und URL.
Nach dem Absenden des Formulars erhalten Sie Meldung „Gespeichert“. Beim erneuten Aufruf vom 192.168.168.30, werden eingestellten Daten angezeigt.
WLAN-Passwort wird dabei mit Sternchen ersetzt.
Im Eingabefeld „URL“ geben sie „http://api.pushingbox.com/pushingbox?devid=__bekommen_Sie_beim_pushingbox__&“
Im Eingabefeld "Nachricht" tragen Sie den Aufstellort des Wasseralarms.
Kurze Anleitung zum Einstellen von PushingBox und Einstellung des Wasseralarms.
Anmeldung beim PushingBox (Notifications for your Internet of Things devices).
Anmeldung erfolgt über Google Mail Konto.
Danach wählen Sie Menüpunkt „My Services“ , betätigen der Schaltfläche „Add a service“ und legen Ihre E-Mail-Adresse an.
An dieser Stelle ist auch Twitter service Verfügbar.
Als nächstes, wechseln Sie zum „My Scenarios“ geben die Name der Benachrichtigung und Betätigen der Schaltfläche „add“, danach klicken Sie auf die Schaltfläche „Add an Action“. Hier können Sie die angelegte E-Mail auswählen.
Oder Twitter service oder beides. In dem Fall werden Sie per Email und Twitter gleichzeitig benachrichtigt.
Nach dem Betätigen des Buttons „Add an action with this service“ öffnet sich ein Formular.
Der ist so auszufüllen:
Eingabefeld „Subjekt“- Wassereinbruch in: $Nachricht$
Eingabefeld „Body“- Wasser ist in $Nachricht$ ausgetreten. Batteriespannung: $UBatt$, RSSI: $Empfang$
Und Formular absenden.
Kopieren Sie bitte DeviceID in die Zwischenablage. Damit ist Einstellung des PushingBox abgeschlossen.
Übrigens die Wörter zwischen „$“-Zeichen sind die Variablen, die der Funk-Wassermelder als GET-Parameter an den PushingBox –Service übergibt.
Beim Wassermelder Setup im Eingabefeld „URL“ geben sie „http://api.pushingbox.com/pushingbox?devid=vBBA0004505E7079&“
Zwischen „=“ und „&“ Zeichen fügen Sie bitte die DeviceID aus der Zwischenablage.
Download BIN für ESP-01 -Laden der Firmware mit einem Tool über serielle Schnittstelle. Anleitung
(Kompiliert mit Arduino ver. 1.6.12, ESP8266 Bibliothek ver. 2.3.0).
Download Projekt -Sketch für Arduino, es wird Bibliothek Core for ESP8266 WiFi chip benötigt
Ich bekomme manchmal Meldungen das Wasser Erkennung nicht funktioniert. Das liegt meist daran, dass manche ESP8266 Module andere Beschaltung haben. Da ist der CH_PD Eingang bereits auf der Board mit einem pull up Widerstand versehen. So erkennt man ein pull-up-widerstand: messen Sie Widerstand mit einem Multimeter zwischen CH_PD und +3,3V Pin. Wenn gemessene Widerstand mehrere hunderte KiloOhm hat, dann ist alles in Ordnung. Falls sie Messen 10K...20K , Müssen Sie den Widerstand auf der Platine suchen und entfernen (mit dem Seitenschneider durchknipsen reicht auch). Messen Sie mit dem multimeter Widerstand zwischen CH_PD und allen anderen SMD Widerständen auf der Platine. Wenn Sie 0ohm erwischen, dann ist das der Übeltäter der entfernt werden muss.
Die Schaltung mit ESP-07 hat Funktionalität wie oben beschrieben. Jedoch mit 2 zusätzlichen Eigenschaften.
Ich habe festgestellt, das ESP8266 Modul die Batterie Spannung nicht so genau misst. Und zwar, die Abweichung von einem Modul zum anderen Modul anders ist. Wenn man aber für das jeweilige Modul Abweichungen herausfindet, kann man die Batteriespannung sehr genau messen.
Ich habe ein Programm geschrieben die zwei Referenzwerte misst und in EEPROM speichert. Aus diesem zwei Referenz Spannungen werden Korrekturwerte berechnet und bei zukünftigen Messungen angewendet.
So kann man ADC kalibrieren
ESP8266 Modul an ein Labornetzteil anschließen.
Die Spannung auf 3,40 Volt einstellen. Das Labornetzteil muss mindestens 500mA liefern können.
Setup Modus starten, und im Browser "http://_IP_des_ESP8266/adc.php" eingeben.
Jetzt wird aktuelle Spannung angezeigt. Bitte betätigen Sie das Link "Kalibrieren mit 3,4V".
Danach stellen Sie das Labornetzteil auf 2,40 Volt und betätigen Sie das Link "Kalibrieren mit 2,4V".
Ob das Kalibrieren geklappt hat, können Sie überprüfen indem Sie irgendeine andere Spannung im Bereich von 2,2 und 3,6 Volt einstellen und dabei auf das Link "noch mal messen klicken".
Niedrigste Spannung bei der die Module bei mir noch funktioniert haben war 2,2 und 2,3 Volt.
Verwendete Messwert Anpassung
Um tatsächliche Spannung anzuzeigen benötigen wir ein Faktor Digit/V und der Abweichungswert.
Faktor Digit/V = (ADC3,4V_Wert- ADC2,4V_Wert) / (3,4V-2,4V). Faktor ist eine Zahl die 1V darstellt
Messwert_in_Digits / Faktor = Spannungswert in Volt
Abweichungswert= Tatsächliche Spannung (2,4V)- ESP8266_Messwert_in_Volt
Endgültige Formel lautet: Spannungswert in Volt = Messwert_in_Digits / Faktor + Abweichungswert