Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!

Pflanzenmonitor

Dieses Projekt bewässert Pflanzen automatisch, indem es eine Wasserpumpe aktiviert, wenn die Bodenfeuchtigkeit unter einen bestimmten Schwellenwert fällt. Zusätzlich werden Temperatur, Luftfeuchtigkeit und Bodenfeuchtigkeit auf einem LCD-Bildschirm angezeigt, um den Benutzern Einblicke in die Wachstumsumgebung der Pflanze zu geben.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

KAUFEN

Jumperkabel

KAUFEN

I2C LCD1602

KAUFEN

DC-Wasserpumpe

-

TA6586 - Motorsteuerungs-Chip

-

Bodenfeuchtigkeitsmodul

KAUFEN

Feuchtigkeitssensor-Modul

KAUFEN

Stromversorgungsmodul

-

Verdrahtung

../_images/08_plant_monitor_bb.png

Schaltplan

../_images/08_plant_monitor_schematic.png

Code

Bemerkung

  • Sie können die Datei 08_plant_monitor.ino direkt unter dem Pfad elite-explorer-kit-main\fun_project\08_plant_monitor öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Bemerkung

Um die Bibliothek zu installieren, verwenden Sie den Arduino-Bibliotheksmanager und suchen Sie nach „DHT sensor library“ und „LiquidCrystal I2C“ und installieren Sie diese.

08_plant_monitor.ino
 1/*
 2  Automatic watering system based on soil moisture, temperature, and humidity readings.
 3
 4  Board: Arduino Uno R4 
 5  Component: I2C LCD1602, DC Water Pump with TA6586 Motor Driver Chip, Soil Moisture Module, and Humiture Sensor Module
 6  Library: https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/ (LiquidCrystal I2C by Frank de Brabander)
 7           https://github.com/adafruit/DHT-sensor-library  (DHT sensor library by Adafruit)
 8*/
 9
10
11#include <Wire.h>
12#include <LiquidCrystal_I2C.h>
13#include <DHT.h>
14
15#define DHTPIN 4              // Digital pin for DHT11 sensor
16#define DHTTYPE DHT11         // DHT11 sensor type
17#define SOIL_MOISTURE_PIN A0  // Analog pin for soil moisture sensor
18#define WATER_PUMP_PIN 8      // Digital pin for water pump
19
20
21// Initialize sensor and LCD objects
22DHT dht(DHTPIN, DHTTYPE);
23LiquidCrystal_I2C lcd(0x27, 16, 2);
24
25void setup() {
26  // Set pin modes
27  pinMode(SOIL_MOISTURE_PIN, INPUT);
28  pinMode(WATER_PUMP_PIN, OUTPUT);
29
30  // Initialize water pump as off
31  digitalWrite(WATER_PUMP_PIN, LOW);
32
33  // Initialize LCD and backlight
34  lcd.init();
35  lcd.backlight();
36
37  // Start DHT sensor
38  dht.begin();
39}
40
41void loop() {
42  // Read humidity and temperature from DHT11
43  float humidity = dht.readHumidity();
44  float temperature = dht.readTemperature();
45
46  // Read soil moisture level
47  int soilMoisture = analogRead(SOIL_MOISTURE_PIN);
48
49  // Display temperature and humidity on LCD
50  lcd.clear();
51  lcd.setCursor(0, 0);
52  lcd.print("Temp: " + String(temperature) + "C");
53  lcd.setCursor(0, 1);
54  lcd.print("Humidity: " + String(humidity) + "%");
55
56  delay(2000);
57
58  // Display soil moisture on LCD
59  lcd.clear();
60  lcd.setCursor(0, 0);
61  lcd.print("Soil Moisture: ");
62  lcd.setCursor(0, 1);
63  lcd.print(String(soilMoisture));
64
65  // Activate water pump if soil is dry
66  if (soilMoisture > 580) {
67    digitalWrite(WATER_PUMP_PIN, HIGH);  // Turn on water pump
68    delay(1000);                         // Pump water for 1 second
69    digitalWrite(WATER_PUMP_PIN, LOW);   // Turn off water pump
70  }
71
72  delay(2000);  // Wait before next loop iteration
73}

Wie funktioniert des?

Hier ist eine detaillierte Erklärung des Codes:

  1. Bibliothekseinbindungen und Konstanten/Variablen:

    Importieren Sie die Bibliotheken Wire.h, LiquidCrystal_I2C.h und DHT.h. Definieren Sie Pinnummern und andere Parameter, die mit dem DHT11, dem Bodenfeuchtigkeitssensor und der Wasserpumpe zusammenhängen.

  2. setup():

    Initialisieren Sie die Pinmodi, die mit dem Bodenfeuchtigkeitssensor und der Wasserpumpe zusammenhängen. Schalten Sie die Wasserpumpe anfangs aus. Initialisieren Sie das LCD-Display und schalten Sie die Hintergrundbeleuchtung ein. Starten Sie den DHT-Sensor.

  3. loop():

    Lesen Sie die Luftfeuchtigkeit und Temperatur vom DHT-Sensor. Lesen Sie die Bodenfeuchtigkeit vom Bodenfeuchtigkeitssensor. Zeigen Sie die Temperatur- und Luftfeuchtigkeitswerte auf dem LCD-Bildschirm an, löschen Sie dann den Bildschirm und zeigen Sie den Bodenfeuchtigkeitswert an. Entscheiden Sie, ob die Wasserpumpe aufgrund der Bodenfeuchtigkeit aktiviert werden soll. Wenn die Bodenfeuchtigkeit unter 500 (einem konfigurierbaren Schwellenwert) liegt, aktivieren Sie die Wasserpumpe für 1 Sekunde.