Intelligenter Arduino-Bewässerungscontroller – Automatische Gartenbewässerung mit Wetter- & Lichtsensoren
Komponenten und Materialien
| Komponente | Anzahl |
|---|---|
| Arduino Nano R3 | 1 |
| IO Expander (Eigenentwicklung) | 1 |
| IO Expander Bundle | 1 |
| 2× 1-Wire-zu-I2C-Konverter | 2 |
| 1-Wire-Verteiler | 1 |
| Optischer Anschluss | 1 |
| Splitter | 1 |
| 4-Kanal 5V Relais-Modul | 1 |
| TSL2561 Lichtsensor | 1 |
| DS18B20 wasserdichter Temperatursensor | 1 |
| Optischer Infrarot-Wassersensor | 1 |
| DS3231 AT24C32 Echtzeituhr (RTC) | 1 |
| I2C SSD1306 OLED 128x64 Display | 1 |
| Wasserdichtes Gehäuse 200×120×75 mm (IP68) | 1 |
| Wasserdichtes Gehäuse 100×68×50 mm (IP68) | 1 |
| IP68 PG7 & PG11 Kabelverschraubungen | je 1 |
| RJ11 Keystone Schraubklemmen | 2 |
| RJ11 4-adrige Kabel (50 ft & 6 ft) | je 1 |
| 2,54 mm Header-Kabel | 1 Satz |
| 2× SPST Taster (Mikroschalter) | 2 |
| 12 V / 1 A Netzteil | 1 |
Software & Tools
- Arduino IDE
Projektbeschreibung
Dieser intelligente Bewässerungscontroller steuert bis zu 4 Ventilkreise (Zonen) vollautomatisch. Er berücksichtigt Wetterdaten, Tageszeit und Benutzereinstellungen, um Wasser zu sparen und Pflanzen optimal zu versorgen.
Hauptfunktionen
- Außen-Temperatursensor (DS18B20)
- Regensensor (optisch, Infrarot)
- Lichtsensor (TSL2561) für Sonnenaufgangserkennung
- Batteriegepufferte Echtzeituhr (DS3231) für Wochenzeitpläne
- Nicht-flüchtiger Speicher (EEPROM) – Programme bleiben bei Stromausfall erhalten
- Automatische Sonnenaufgangserkennung
- Bewässerung vor Sonnenaufgang für optimale Einwirkzeit
- Stopp bei Frostgefahr (einstellbar, Standard 4,4 °C / 40 °F)
- Reduziert Pilzbefall durch vermeidung nächtlicher Nässe
- Einfache Menüsteuerung über zwei Tasten am Gehäuse
- OLED-Display für Statusanzeige
Aufbau & Verdrahtung
Schaltplan
Der IO Expander bündelt alle Sensoren und Aktoren über ein einziges serielles Protokoll. Dies spart Code-Speicher (nur ~39 % des Arduino-Speichers) und vereinfacht die Verdrahtung durch standardisierte RJ11-Kabel.
OLED-Display & Menübedienung
Das 128×64 OLED zeigt Uhrzeit, nächste Bewässerung, Zone, Temperatur, Lichtwert und Status an. Zwei Tasten steuern das Menü:
- Menu-Taste: Blättert durch 9 Menüpunkte (alle 30 s Inaktivität auto-Ausblendung)
- Select-Taste: Führt die gewählte Aktion aus
Menüpunkte: Next, Water, Reset, Clock Min +/-, Clock Hour +/-, Sunrise, ON/OFF
Warum der IO Expander?
- Deutlich vereinfachter Schaltplan
- Keine eigenen Treiber für 1-Wire, RTC, EEPROM, OLED, Temperatursensor, Regensensor nötig
- Spart Flash-Speicher (nur 12.710 Bytes = 39 %)
- Entwicklung in nur 3 Tagen
- Standard-RJ11-Verkabelung, keine Kabellängenprobleme
- Günstiger als kommerzielle Systeme
- Einfache Anpassung an individuelle Bedürfnisse
- Ein einziges Netzteil für alles
Systemaufbau (Schritt für Schritt)
- Arduino Nano programmieren: Verbinden Sie den Nano mit dem IO Expander und laden Sie den Sketch hoch. Der 6-polige Header ist der Debug-Port (Software Serial) und wird im Endbetrieb nicht benötigt.
- I2C-Adressen anpassen: Ändern Sie
ONEWIRE_TO_I2C_ROM1undONEWIRE_TO_I2C_ROM2im Code auf die Adressen Ihrer 1-Wire-zu-I2C-Konverter. - Splitter konfigurieren: Löten Sie einen 0 Ω 0603-Widerstand an R2, um die Datenleitung des optischen Sensors vom 1-Wire-Bus zu trennen.
- Gehäuse bohren:
- Kleines Gehäuse: 7/16″ Loch (PG7) für Remotesensoren
- Großes Gehäuse: 11/16″ Loch (PG11) für 12 V, 24 VAC, Ventilkabel, RJ11
- Kleines Gehäuse Deckel: 9/16″ Loch für optischen Infrarot-Wassersensor
- Großes Gehäuse: 3× 1/4″ Löcher für Menü-/Select-Tasten
- Taster verdrahten: SPST-Mikroschalter an RJ11-Klemmen anschließen, Kontakte mit Schrumpfschlauch isolieren.
- Montage: Alle Kabel verbinden, Boards mit doppelseitigem Klebeband und Schaumstoff im großen Gehäuse fixieren. 50 ft RJ11-Kabel durch PG11 führen.
- Remote-Sensor-Gehäuse: Optischen Sensor und Lichtsensor himmelwärts ausrichten, erhöht an der Ostseite des Hauses montieren.
- Endmontage: Marine-Dichtmasse in die Verschraubungen geben für bessere Abdichtung.
Programmcode (Haupt-Sketch)
Der vollständige Code ist umfangreich (~600 Zeilen). Hier die Kernstruktur:
/* IO Expander Sketch – Smart Irrigation v1.1 */
#include <math.h>
#include <time.h>
#include <util/crc16.h>
#include <avr/wdt.h>
#include <SoftwareSerial.h>
#include "IOExpander.h"
// Konfiguration
#define FAHRENHEIT
#define INIT_BOARD "g5w1;g11w1;g11d0,75;g12w1;g12d0,75;rsf"
#define ONEWIRE_TO_I2C_ROM1 "i4scc" // Anpassen!
#define ONEWIRE_TO_I2C_ROM2 "i6s8f" // Anpassen!
#define ONEWIRE_TEMPERATURE "t6s0300"
#define RTC_SENSOR "s4te"
#define I2C_EEPROM "s4tf"
#define I2C_OLED "s4t10"
#define I2C_LIGHT "s3t9;sc0"
#define OPTICAL_SENSOR "g5a"
#define BUTTON1 "g11d"
#define BUTTON2 "g12d"
#define WATER_TIME_BEFORE_SUNRISE 60 // Minuten vor Sonnenaufgang
#define SUNRISE_LUX 100 // Schwellenwert für Sonnenaufgang
#define RAIN_DETECT_LEVEL 4.0 // Regenerkennungsschwelle
#define DO_NOT_WATER_TEMP 4.4444 // 40 °F = 4,44 °C
#define MAX_ZONES 4
// ... weitere Definitionen, Strukturen (ZONE, SCHEDULE, NVRAM) ...
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
wdt_enable(WDTO_8S); // Watchdog 8 s
}
void loop() {
// Hauptschleife: minütliche Sensorabfrage, Zeitplan-Prüfung,
// Menübehandlung, OLED-Update, EEPROM-Speicherung, Watchdog-Reset
// Siehe vollständigen Code im Originalprojekt.
}
Wichtig: Für das Programmieren über USB muss der Arduino vom IO Expander getrennt werden (gemeinsamer Serial-Port). Zum Debuggen den ICSP-Port nutzen oder SERIAL_DEBUG definieren.
Updates & Errata
Update 12.09.2019 (v1.1)
Behebt Startproblem nach mehrtägigem Stromausfall.
Update 02.10.2019 – Pull-Up-Probleme
Bei Kaskadierung von 1-Wire-zu-I2C, DS3231 und SSD1306 entstehen drei parallele Pull-Ups (effektiv ~1,56 kΩ), was zu Display-Störungen führen kann. Lösung: Entfernen Sie die Pull-Up-Widerstände R3/R4 am 1-Wire-zu-I2C und R6/R7 am OLED-Modul.
Video
Smart Irrigation System in Aktion (MP4)
Schaltpläne
Verdrahtungsplan aller Komponenten zum IO Expander und Arduino Nano.
Herstellungsprozess
- Open-Source Smart Farming: Bauern mit erschwinglicher, interoperabler IoT-Technologie stärken
- ECM3532: Eta Computes erstes integriertes Ultra-Low-Power KI Sensor Board beschleunigt Edge Development
- 433 MHz Smart-Home-Controller mit Sensorflare und Raspberry Pi selbst bauen
- Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
- Intelligenter Mülleimer: Zellulare IoT-Lösung für automatisiertes Abfallmanagement
- Smart Bartender: Eigenen Raspberry Pi Cocktail-Roboter bauen
- Emotionssensor & EEG: Günstige Hardware für Echtzeit-Emotionserkennung
- Smart Irrigation Controller mit Windows 10 IoT, Raspberry Pi und XBee Feuchtesensoren
- Revolutionärer ultraempfindlicher, langlebiger Dehnungssensor für Smart Textiles
- Revolutionärer ultra-dünner Sensor verbessert Smart-Contact-Lens-Funktionalität