Skip to content
tobiasfaust edited this page Nov 2, 2018 · 30 revisions

Welcome to the ESP8266_PumpControl wiki!

Bewässerungssteuerung für ein Hauswasserwerk sowie automatisierter Umschaltung bei leerer Zisterne auf Trinkwasser

Entwicklung abgeschlossen. Bugs bitte als Issue melden

Features

  • Steuerung beliebig viele Ventile/Relais über Kaskadierung von PCF8574 Controllern
  • kontinuierliche Messung des Füllstandes einer Zisterne per Ultraschall
  • Anzeige des prozentualen Füllstandes über ein OLED
  • pushen des Füllstandes per MQTT
  • Unterstützung einer automatisierten Umschaltung auf eine alternative Wasserzufuhr (zb. Trinkwasser) bei leerer Zisterne
  • Einstellung einer maximalen, gleichzeitigen Bewässerung je nach maximal möglicher Fördermenge
  • selbständiges Schließen der Ventile nach Erreichen der Öffnungsdauer (on-for-timer)
  • Steuerung vollstaändig per MQTT

Einstellungen

Nach dem Flashen der Firmware startet der ESP im AccessPontModus mit dem AccesspointNamen: AutoConnectAP und dem Passwort: password

Nach Connect befindet sich der Login Screen unter: http://192.168.4.1 zur Auswahl des WLAN Netzwerkes und des WLAN Schlüssels. Siehe auch Referenz zum WiFiManager (https://github.com/tzapu/WiFiManager)

Nach erfolgreichem Verbinden im WLAN Netzwerk sind folgende Einstellungen möglich:

Basis Konfiguration

Auf dieser Seite werden alle Basis-Einstellungen eingestellt.

LfdNr Einstellung Bsp. Value Beschreibung
1 Gerätename PumpControl Eindeutiger Name dieses Devices. Dieses ist auch gleichzeitig das erste Identitätsmerkmal im MQTT
2 MQTT Host 192.178.1.10 IP-Adresse des MQTT Servers
3 MQTT Port 1883 Port Nummer des MQTT Servers
4 Pin SDA 0 GPIO des Pin, der für I2C SDA genutzt wird
5 Pin SCL 4 GPIO des Pin, der für I2C SCL genutzt wird
6 Pin HC-SR04 Trigger 12 Pin des ESP auf dem das TriggerSignal für den HC-SR04 liegt
7 Pin HC-SR04 Echo 13 Pin des ESP auf dem das EchoSignal für den HC-SR04 liegt
8 Adresse OLED1306 3C i2c Adresse des OLED 1306 in hex (ohne 0x), 3C = 0x3C
9 externes Javascript Hier kann ein externes Javascript-File angegeben werden welches beim Web-Konfigurationsaufruf geladen wird. Default: https://raw.githubusercontent.com/tobiasfaust/ESP8266_PumpControl/master/javascript.js
10 externes CSS Hier kann ein externes CSS-File angegeben werden welches beim Web-Konfigurationsaufruf geladen wird. Default: https://raw.githubusercontent.com/tobiasfaust/ESP8266_PumpControl/master/style.css

Sensor Konfiguration

Auf dieser Seite wird der Sensor HC-SR04 korrekt eingestellt und auf den Regenwasserspeicher kalibiert.

LfdNr Name Bsp. Value Beschreibung
1 Messintervall 30 Messintervall des Abstandsensors HC-SR04 in Sekunden
1 Abstand Sensor max 110 Maximaler Abstand vom Sensor zum Boden des Regenspeichers wenn er leer ist.
2 Abstand Sensor min 5 Kleinster Abstand vom Sensor zur Wasseroberfläche wenn der Regenspeichers komplett gefüllt ist. Der Sensormuss mindestens 3 cm Abstand zur Wasseroberfläche haben, ansonsten wird die Messung fehlerhaft

Ventil Konfiguration

Auf dieser Seite werden alle verfügbaren Ventile mit aktiviert/deaktiviert, mit einem MQTT Substring versehen auf welches jedes Ventil individuell regaieren soll sowie die dazugehörige Ventil-Portadresse des PCF8574 eingestellt

LfdNr Aktiv MQTT Substring Port LangBeschreibung
1 Ja/Nein Ventil1 1...254 Aktivierung eines Ventils. Die Angabe des MQTT Substrings schaltet dieses Ventil. Die Portnummer beschreibt den Port eines PCF8274 oder eines ESP8266 internen GPIOs
... ... ... 1...254
16 Ja/Nein Ventil16 1...254 Bis zu 16 Ventie sind aktuell möglich

Folgende MQTT Kommandos sind möglich. Die "Value" Angabe erfolgt in Sekunden.

LfdNr MQTT Kommando Syntax Beispiel
1 on-for-timer <Hostname>/<Substring>/on-for-timer <value> PumpControl/Ventil1/on-for-timer 300

Die Angabe der Portnummer gestaltet sich wie folgt:

Für den PCF8574:

A0 A1 A2 Address Port range
''0'' ''0'' ''0'' 0x20 1 - 8
''1'' ''0'' ''0'' 0x21 9 - 16
''0'' ''1'' ''0'' 0x22 17 - 24
''1'' ''1'' ''0'' 0x23 25 - 32
''0'' ''0'' ''1'' 0x24 33 - 40
''1'' ''0'' ''1'' 0x25 41 - 48
''0'' ''1'' ''1'' 0x26 49 - 56
''1'' ''1'' ''1'' 0x27 57 - 64

Für den PCF8574A:

A0 A1 A2 Address Port range
''0'' ''0'' ''0'' 0x38 65 - 72
''1'' ''0'' ''0'' 0x39 73 - 80
''0'' ''1'' ''0'' 0x3A 81 - 88
''1'' ''1'' ''0'' 0x3B 89 - 96
''0'' ''0'' ''1'' 0x3C 97 - 104
''1'' ''0'' ''1'' 0x3D 105 - 112
''0'' ''1'' ''1'' 0x3E 113 - 120
''1'' ''1'' ''1'' 0x3F 121 - 128

Für die internen ESP8266 GPIO Ports. Die definierten i2c und Sensor Ports sind nicht auswählbar:

GPIO Name Port
0 D3 200
1 D10 201
2 D4 202
3 D9 203
4 D2 204
5 D1 205
12 D6 212
13 D7 213
14 D5 214
15 D8 215
16 D0 216

Automatik Konfiguration

Auf dieser Seite können diverse Automatikfunktionen eingestellt werden. Bei Einstellung "Ventilauswahl" können nur die Ventile ausgewählt werden, die im Reiter "Ventil Konfiguration" konfiguriert worden sind.

LfdNr Aktiv Automatik Name Einstellung LangBeschreibung
1 - Sensor Treshold Min 1...100 Schwellwert in %, ab welchem Wasserstand im Regenspeicher das 3WegeVentil auf Trinkwasserumschalten soll, zb. 26
2 - Sensor Treshold Max 1...100 Schwellwert in %, ab welchem Wasserstand im Regenspeicher das 3WegeVentil zurück auf den Regenspeicher umstellen soll, zb. 30
3 Ja/Nein 3WegeVentil Trinkwasser Bypass Ventilauswahl Beim Erreichen des Sensor Schwellwertes schaltet das 3 WegeVentil um
4 Ja/Nein Ventil Trinkwasser Bypass Ventilauswahl Wenn das 3WegeVentil auf Trinkwasserposition steht, wird bei jedem Ventilschaltvorgang dieses Ventil syncron aktiviert. Damit liegt Trinkwasser nur dann auf der Leitung, wenn wirklich ein Bewässerungsventil aktiviert ist, ansonsten ist die Trinkwasserzufuhr drucklos. Das Ventil wird 3sek vor dem Schließen des letzten Ventils geschlossen um Drucklosigkeit zu gewährleisten
5 - Max. parallel 0..16 Anzahl der maximalen parallel geöffneten Ventile. Die Einstellung hängt von der maximalen Durchflussmenge ab um einen minimalen Betriebsdruck an den Bewässerungsaktoren zu gewährleisten. Auswahl 0 bedeutet = deaktiviert

Beispiel Hardwareaufbau

Clone this wiki locally