WaterPi: Intelligente Fernbewässerung & Überwachung für Zimmerpflanzen
Komponenten und Zubehör
| Raspberry Pi 1 Model B | × | 1 |
| Arduino UNO | × | 1 |
| DHT11 Temperatur- & Feuchtigkeitssensor (4 Pins) | × | 1 |
| YL-69 Bodenfeuchtesensor | × | 1 |
| Wasserstandssensor | × | 1 |
| Standard LCD 16x2 | × | 1 |
| Wasserpumpen-Motor | × | 1 |
| 5V Relais | × | 1 |
| 4xAA Batteriehalter | × | 1 |
Apps und Online-Dienste
- Amazon Web Services AWS IoT
- Amazon Web Services AWS DynamoDB
- Johnny-Five (JavaScript Robotics/IO Framework)
Über dieses Projekt
Einführung
Das System richtet sich an Pflanzenliebhaber, die durch Beruf oder Reisen wenig Zeit für Pflege haben. Regelmäßiges Gießen wird oft vergessen. WaterPi übernimmt die Routine: Überwachung von Temperatur, Luftfeuchte, Bodenfeuchte, ferngesteuertes Gießen, Datenspeicherung in DynamoDB via AWS IoT. Daten werden in Diagrammen visualisiert.
Raspberry Pi führt eine Node.js-Anwendung aus (Johnny-Five Bibliothek) zur Steuerung aller Sensoren und Pumpe. Kommunikation mit AWS via AWS IoT SDK für JavaScript.
Schritt 1: DynamoDB einrichten
- Tabellenname: waterpi_sensor_data
- Partition Key: key (String)
- Sort Key: timestamp (String) hinzufügen
Schritt 2: AWS IoT einrichten
- Thing erstellen: raspi-water-pump
- Policy erstellen: Name pump-policy, Action iot:*, Resource *, Allow.
- Zertifikat erstellen (1-Click), Public Key, Private Key, Zertifikat herunterladen.
- Zertifikat aktivieren, Policy anhängen, Thing anhängen.
- Regel erstellen: Name saveToDynamoDB, Attribute *, Topic Filter sensor/data, Action: „Insert message into a database table“, Table: waterpi_sensor_data, Hash Key: ${topic()}, Range Key: ${timestamp()}, Neue Rolle erstellen & erlauben.
Schritt 3: Arduino vorbereiten
Bodenfeuchte- und Wasserstandssensor geben analoge Werte aus. Arduino liest diese per Firmata und sendet digital an Pi.
- Arduino IDE installieren.
- Datei → Beispiele → Firmata → StandardFirmata öffnen & auf Arduino hochladen.
Verdrahtung Arduino:
- Bodenfeuchtesensor: VCC → Pin 7, GND → GND, AO → A1
- Wasserstandssensor: + → Pin 4, – → GND, S → A0
Arduino per USB mit Raspberry Pi verbinden. Sensoren in Blumentopf bzw. Wassertank platzieren.
Schritt 4: Raspberry Pi verdrahten
DHT11: S → GPIO4 (Pin 7), + → 3V3 (Pin 1), – → GND (Pin 25)
LCD 16x2 (I2C): VCC → 5V (Pin 2), GND → GND (Pin 6), SDA → GPIO2 (Pin 3), SCL → GPIO3 (Pin 5)
Relais für Wasserpumpe: S → GPIO18 (Pin 12), + → 5V (Pin 4), – → GND (Pin 20)
Wasserpumpe mit Relais & Batteriepack: Ein Pumpenkabel an Relais, anderes an Batteriepack. Zweites Batteriekabel an Relais (siehe Schaltplan).
Schritt 5: Node.js-App auf Pi starten
Pi muss mit Internet verbunden sein (Ethernet/WiFi). Node.js installieren.
git clone git@github.com:demirhanaydin/waterpi-node.git
cd waterpi-node
npm install
AWS-Zertifikate (public key, private key, certificate, rootCA.pem) in certs/ Ordner legen. device.js bearbeiten: Pfade zu Zertifikaten und IOT_DEVICE_URL (z. B. https://XXXXXXXXX.iot.us-east-1.amazonaws.com) eintragen.
sudo node index.js
Sensorwerte erscheinen auf LCD. Alle 20 Sekunden werden Daten an AWS IoT gesendet → in DynamoDB sichtbar.
Schritt 6: Web-Applikation starten
Einfache Sinatra-App (Ruby) visualisiert DynamoDB-Daten mit Highcharts und steuert Pumpe fern. Klick auf Start/Stop publiziert Event an AWS IoT → Pi verarbeitet → Pumpe an/aus.
git clone git@github.com:demirhanaydin/waterpi-web.git
cd waterpi-web
bundle install
Zertifikate in certs/ legen. boot.rb mit AWS Access Key & Secret bearbeiten (Security Credentials in AWS Console).
ruby app.rb
Browser: https://localhost:4567/ → Diagramme mit Sensordaten. „Start“ klicken → Pumpe bewässert Pflanze.
Code
Raspberry Pi Node.js Quellcode
Quellcode klonen, AWS-Zertifikate in certs/, device.js anpassen: https://github.com/demirhanaydin/waterpi-node
WaterPi Web Client
boot.rb mit Credentials anpassen: https://github.com/demirhanaydin/waterpi-web
Schaltpläne
- Gesamtverdrahtung (Pi ohne Kamera)
- Arduino-Verdrahtung (Fritzing-Dateien)
Herstellungsprozess
- ADLINK präsentiert erweiterte MCM-Lösung für Remote-Anlagenüberwachung & Predictive Maintenance
- Raspberry Pi-gesteuertes Aquaponik-System: Bauanleitung & Code
- Home Energy Centre: Solar PV, Thermische Panels & Raumtemperaturen mit Raspberry Pi & Moteino überwachen
- Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Sensor & Aktuator Steuerung meistern: Beschleunigungsmesser, Servo und Datenstreaming
- Raspberry Pi Heimüberwachung: PIR-Bewegungserkennung mit Kamera-E-Mail-Benachrichtigung
- GE schließt Erwerb von SmartSignal ab, stärkt Remote Monitoring & Prädiktive Diagnostik
- Cisco startet Cloud-gemanagtes IoT-Monitoring für IT- und OT-Umgebungen
- IoT-gestütztes Remote-Monitoring für Öl- & Dieseltanks