Automatische Pflanzenbewässerung mit Arduino, WiFi & IFTTT – Büro-Pflanzen überwachen
Komponenten und Materialien
| Arduino Due (oder Zero) | 1 |
| Andium Anduino WiFi Shield | 1 |
| Kapazitiver Bodenfeuchtesensor (korrosionsbeständig) | 1 |
Apps & Online-Dienste
- Arduino IDE
- Adafruit IO (MQTT-Datenlogging)
- IFTTT (Benachrichtigungen bei Trockenheit)
Motivation
Im neuen Büro von Andium vertrockneten Pflanzen, weil niemand an das Gießen dachte. Als IoT-Firma sollte das besser gehen: Pflanzen bekommen eine „Stimme“ per E-Mail/Twitter, wenn sie Durst haben.
Hardware-Aufbau
Der kapazitive Feuchtesensor hat drei Anschlüsse: 3,3 V (rot), GND (schwarz), Signal (blau) → Analogpin A1. Wichtig: Der Sensor darf nur bis zur weißen Markierung in die Erde gesteckt werden; die Elektronik darüber nicht nass machen!
Sensor-Kalibrierung
Zwei Referenzwerte ermitteln:
- Trockenwert (dryVal): Sensor in trockener Luft / trockener Erde.
- Nasswert (wetVal): Sensor bis zur Markierung in Wasser tauchen.
Sketch zum Auslesen der Rohwerte (alle 3 s):
int inputPin = A1;
void setup() { Serial.begin(115200); delay(3000); }
void loop() {
Serial.print("Raw val: ");
Serial.println(analogRead(inputPin));
delay(3000);
}
Beispielwerte: dryVal = 807, wetVal = 415. Diese Werte in den Hauptsketch eintragen.
Haupt-Sketch (Anduino + Adafruit IO + MQTT)
Der Sketch verbindet sich per WiFi mit Adafruit IO, liest alle 10 Minuten den Feuchtewert, mappt ihn auf 0–100 % relative Feuchte und published ihn an den Feed „officePlants“. Ein lokales LCD (AnduinoLCD) zeigt den aktuellen Wert an.
#include <WiFi101.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#include "AnduinoLCD.h"
#define WLAN_SSID "Ihr_SSID"
#define WLAN_PASS "Ihr_Passwort"
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "Ihr_User"
#define AIO_KEY "Ihr_AIO_Key"
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Adafruit_MQTT_Publish humidityVal = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/officePlants");
AnduinoLCD LCD = AnduinoLCD(ST7735_CS_PIN, ST7735_DC_PIN, ST7735_RST_PIN);
const int inputPin = A1;
const int dryVal = 807; // <-- IHR Trockenwert
const int wetVal = 415; // <-- IHR Nasswert
int humidityPrev = 0;
void setup() {
Serial.begin(115200); delay(3000);
connectToWiFi(); connectToAdafruit();
LCD.begin(); LCDinit();
}
void loop() {
if (!mqtt.ping(3)) { if (!mqtt.connected()) connect(); }
int humidity = readHumidity(); // 0-100%
char buf[4]; String(humidity).toCharArray(buf, 4);
if (!humidityVal.publish(buf)) Serial.println("Publish failed");
else { Serial.print("Humidity: "); Serial.println(humidity); displayHumidity(humidity, humidityPrev); }
humidityPrev = humidity;
delay(600000); // 10 Min
}
int readHumidity() {
int raw = analogRead(inputPin);
return map(raw, dryVal, wetVal, 0, 100);
}
// ... WiFi, MQTT, LCD Funktionen siehe Originalcode ...
Benötigte Bibliotheken: WiFi101, Adafruit_MQTT, AnduinoLCD.
IFTTT-Regel für Benachrichtigung
In IFTTT einen Applet erstellen: „If Adafruit IO feed ‚officePlants‘ < 20 %, then send notification (E-Mail, Twitter, Push)“. Beispiel: Twitter-Account @andiumPlants postet „Water me!“.
Weiterführende Ideen
- Automatische Bewässerung per Relais & Pumpe hinzufügen.
- Mehrere Sensoren für verschiedene Pflanzen.
- Dashboard auf Adafruit IO für Langzeit-Trends.
Code-Bibliothek
Anduino Library (für Andium Shield): GitHub
Herstellungsprozess
- Düngemittel: Wissenschaft, Produktion und nachhaltige Zukünfte
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
- DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Optimierte Stromversorgungslösungen für Arduino-Projekte
- Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
- Pflanzengesundheit mit TinyML bewerten: Praktischer Leitfaden
- Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung