Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

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

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

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ü:

Menüpunkte: Next, Water, Reset, Clock Min +/-, Clock Hour +/-, Sunrise, ON/OFF

Warum der IO Expander?

Systemaufbau (Schritt für Schritt)

  1. 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.
  2. I2C-Adressen anpassen: Ändern Sie ONEWIRE_TO_I2C_ROM1 und ONEWIRE_TO_I2C_ROM2 im Code auf die Adressen Ihrer 1-Wire-zu-I2C-Konverter.
  3. Splitter konfigurieren: Löten Sie einen 0 Ω 0603-Widerstand an R2, um die Datenleitung des optischen Sensors vom 1-Wire-Bus zu trennen.
  4. 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
  5. Taster verdrahten: SPST-Mikroschalter an RJ11-Klemmen anschließen, Kontakte mit Schrumpfschlauch isolieren.
  6. Montage: Alle Kabel verbinden, Boards mit doppelseitigem Klebeband und Schaumstoff im großen Gehäuse fixieren. 50 ft RJ11-Kabel durch PG11 führen.
  7. Remote-Sensor-Gehäuse: Optischen Sensor und Lichtsensor himmelwärts ausrichten, erhöht an der Ostseite des Hauses montieren.
  8. 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

  1. Open-Source Smart Farming: Bauern mit erschwinglicher, interoperabler IoT-Technologie stärken
  2. ECM3532: Eta Computes erstes integriertes Ultra-Low-Power KI Sensor Board beschleunigt Edge Development
  3. 433 MHz Smart-Home-Controller mit Sensorflare und Raspberry Pi selbst bauen
  4. Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
  5. Intelligenter Mülleimer: Zellulare IoT-Lösung für automatisiertes Abfallmanagement
  6. Smart Bartender: Eigenen Raspberry Pi Cocktail-Roboter bauen
  7. Emotionssensor & EEG: Günstige Hardware für Echtzeit-Emotionserkennung
  8. Smart Irrigation Controller mit Windows 10 IoT, Raspberry Pi und XBee Feuchtesensoren
  9. Revolutionärer ultraempfindlicher, langlebiger Dehnungssensor für Smart Textiles
  10. Revolutionärer ultra-dünner Sensor verbessert Smart-Contact-Lens-Funktionalität