waterpi 2
1 Intention
Den eigenen Garten mit mehreren Sprengern oder Schläuchen zu bewässern soll automatisiert werden. Kein manuelles Wasser andrehen (oder Pumpe einschalten), Sprenger nacheinander schalten, bloß nicht vergessen auch wieder auszuschalten.
Die Idee ist alt, hier geht es vielmehr um die Fortsetzung bzw. Aktualisierung des 2021 dokumentierten waterpi (1).
1.1 Verbesserungen:
- Es gibt Benutzeroberfläche, die zugangsgeschützt per LAN oder WLAN erreichbar ist. Hier wird der aktuelle Status ausgegeben, und darüber lässt sich auch manuell „übersteuern“.
- Die ganze Zeitsteuerung läuft komplett in Java, vom Betriebssystem wird bloß noch eine stabile Uhrzeit benötigt. Und natürlich noch die Schnittstelle zu den Magnetventilen mit GPIO mit.
- Steuerung des Relais geschieht mit dem beim Raspberry Pi OS direkt enthaltenen pigpiod, da wiringpi umständlicher einzurichten ist.
1.2 Ausblick
Ein freies Relais kann ggf. später genutzt werden um dämmerungsberechnet die Außenbeleuchtung zu steuern
2 Umsetzung
- Raspberry Pi Lite herunterladen von raspberrypi.com
- auf eine SD-Karte >= 4GB aufspielen, in den Pi stecken und mit Strom versorgen. (Hierzu gibt es genug Dokumentation im Internet, dass muss hier nicht wiederholt werden).
- Installation-Assistent durchgehen für
- Sprache und Tastatur
- Username und Passwort
2.1 WLAN-Einrichtung
WLAN nutzen wir hier nur als Client, damit darüber die lokale Uhrzeit
synchronisiert werden kann. Der Waterpi
bleibt ansonsten (vor allem aus dem
Internet) im Standard unerreichbar!
sudo raspi-config
- System Options -> Wireless LAN
- Land auf Deutschland setzen
- WLAN setzen (hier: natürlich das hervorragende hannover.freifunk.net)
- Speichern und beenden
2.2 pigpiod für (GPIO)
GPIO-Steuerung ist per default dabei, muss bloß noch aktiviert werden:
sudo system-ctl enable --now pigpiod
2.3 Relais verkabeln
2.3.1 am Relais
Das 8-Kanal-Relais (bspw. von makershop.de) benötigt 5V, pro Ausgang ein GPIO und GND verkabelt. Die Dokumentation ist obig verlinkt.
2.3.2 am Raspberry Pi
Hier ist die Belegung zu sehen: elektronik-kompendium.de
Zu beachten ist, dass wir nicht direkt GPIO 1 - 8 für die Ausgänge am Relais 1-8 nutzen können, da GPIO 1 als "User" nicht direkt verwendet werden darf. Wir verkabeln also wie folgt.
Pi | Relais | genutzt für |
---|---|---|
GND | GND | |
GPIO 2 | 1 | Pumpe |
GPIO 3 | 2 | Ventil 1 |
GPIO 4 | 3 | Ventil 2 |
GPIO 5 | 4 | Ventil 3 |
GPIO 6 | 5 | Ventil 4 |
GPIO 7 | 6 | Ventil 5 |
GPIO 8 | 7 | Ventil 6 |
GPIO 9 | 8 | frei |
5V | 5V |
2.4 Java
sudo apt-get install openjdk-17-jre
2.5 Hinweis
Die Bedeutung der Werte in der Schnittstelle sind so implementiert:
Wert | Bedeutung |
0 | Pumpe und Ventile sind alle aus |
1 | Pumpe und nur Ventil 1 ist an |
2 | Pumpe und nur Ventil 2 ist an |
x | Pumpe und nur Ventil . ist an |
7 | Pumpe und nur Ventil 7 ist an |
8 | Pumpe und nur Ventil 8 ist an |
2.6 waterpi
Datei übertragen auf
/home/user/waterpi.jar
2.7 Autostart
crontab -e
und ergänzen
@reboot cd /home/user; java -jar waterpi.jar