waterpi 2

zurück

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
  • 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