Ein automatischer Indoor Garten – In dieser Anleitung zeige ich dir was du für deinem Automatischen Arduino Gemüsegarten brauchst. Bei einem durch den Arduino automatischen Indoor Garten sollte man zuerst mit der Versorgung der Pflanzen durch Wasser beginnen.
Anschließend nie wieder vergessen deine Pflanzen zu gießen oder die Lichter auszuschalten. Deine Pflanzen oder Kräuter bekommen dadurch nie wieder zu viel oder zu wenig Wasser mit einem automatischen Arduino Garten. Deshalb versorge deinen Indoor Garten mit Hilfe eines Arduinos folglich mit dem richtigen Licht für die passende Zeit.
Bei diesem Aufbau gibt es eine Wasserpumpe die ein Blumat Tropf Set ansteuert und von einem Arduino kontrolliert wird. Dabei werden kleine Mengen Wasser soweit regelmäßig auf die Töpfe verteilt. Die Blumats ziehen Wasser von der Hauptleitung und versorgen die Pflanzen deswegen nur mit Wasser wenn das Feuchtigkeitslevel niedrig ist. Für die Wasserpumpe braucht das System außerdem ebenso mindestens einen Feuchtigkeitssensor um die Pumpe an oder aus zu schalten.
Außerdem kontrolliert der Arduino den Lichtzyklus daher sehr genau. Das Licht wird nun zurzeit zwischen 6 Uhr am Morgen bis 10 Uhr am Abend angestellt. Es benutzt dafür den DS3231 RTC weil dieser in vielen Arduino Kits enthalten ist. Dieser Aufbau, automatischer Indoor Garten funktioniert damit so nun bereits ununterbrochen seit 3 Monaten soweit.
1. Bauteile Arduino Indoor Garten
2. Bauplan Arduino Bewässerung
3. Bildergalerie Automatischer Indoorgarten
Bauteile Automatischer Arduino Indoor Garten
oder
Adafruit Standard LCD 16x2 + Extras - white on blue [PID181]
Price: 12,80 €
1 used & new available from 12,80 €
Bauplan Arduino Bewässerung
Bildergalerie Automatischer Arduino Indoor Garten
Code Automatischer Indoor Garten
#include <dht.h>
#include <LiquidCrystal.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(12, 11, 8, 6, 5 ,4);
int startTime = 6; //Integer hour in 24hr format to start lights
int endTime = 22; //Integer hour in 24hr format to cut the lights
int lights = 7; //light digital output pin
String wateringTime = "15:33"; //time to run the water pump, must be in HH:MM 24 hour format, waters once per day
int soilSensor1 = 0;
int pump1 = 13;
int moistThreshold = 500;
int lcdDelay = 5000;
Time t;
dht DHT;
#define DHT11_PIN 9
void setup() {
Serial.begin(115200); //Init the DS3231 using hardware interface
rtc.begin(); //Init the rtc object
pinMode(lights,OUTPUT);
pinMode(soilSensor1,INPUT);
pinMode(pump1,OUTPUT);
lcd.begin(16, 2);
}
void loop() {
//Declare local loop variables
String(hours);
String rightNow;
int moisture1;
int temp_humi = DHT.read11(DHT11_PIN);
moisture1 = analogRead(soilSensor1);
//Get current time in HH:MM format
rightNow = rtc.getTimeStr(FORMAT_SHORT);
//Grabs hours then converts to integer
hours = rightNow.substring(0,2);
int hours_int = hours.toInt();
//Checks time and controls lights
if (hours_int > startTime and hours_int < endTime)
{
digitalWrite(lights,HIGH);
}
else
{
digitalWrite(lights,LOW);
}
if (moisture1 > moistThreshold and wateringTime == rightNow)
{
digitalWrite(pump1,HIGH);
delay(10000);
digitalWrite(pump1,LOW);
}
//Serial output time and moisture level
Serial.print("Current Time: ");
Serial.print(hours_int);
Serial.print("\n");
Serial.print("Moisture Sensor1: ");
Serial.print(moisture1);
Serial.print("\n");
Serial.print("Temp: ");
Serial.print(DHT.temperature);
Serial.print("----------\n");
//LCD panel
lcd.setCursor(0, 0);
lcd.print("Moisture: ");
lcd.setCursor(10, 0);
lcd.print(moisture1);
lcd.setCursor(0, 1);
lcd.print("Time: ");
lcd.setCursor(6, 1);
lcd.print(rightNow);
delay(lcdDelay);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperature: ");
lcd.setCursor(12, 0);
lcd.print(DHT.temperature);
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.setCursor(10, 1);
lcd.print(DHT.humidity);
delay(lcdDelay);
lcd.clear();
}
Die Variable „int moistThreshold = 500;“ muss eventuell ein wenig auf deine Zwecke angepasst werden. Aber jetzt, viel Erfolg! 🙂