Nota
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
Monitor per Piante
Questo progetto irriga automaticamente le piante attivando una pompa dell’acqua quando l’umidità del suolo scende sotto una soglia specifica. Inoltre, visualizza temperatura, umidità e umidità del suolo su uno schermo LCD, fornendo agli utenti informazioni sull’ambiente di crescita della pianta.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
|---|---|
- |
|
- |
|
- |
|
- |
Collegamenti
Nota
Per proteggere il Power Pack del Modulo di Alimentazione, caricalo completamente prima di utilizzarlo per la prima volta.
Schema Elettrico
Codice
Nota
Puoi aprire il file
08_plant_monitor.inonel percorsoelite-explorer-kit-main\fun_project\08_plant_monitordirettamente.Oppure copia questo codice nell’Arduino IDE.
Nota
Per installare la libreria, usa l’Arduino Library Manager e cerca «DHT sensor library» e «LiquidCrystal I2C» e installale.
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}
Come funziona?
Ecco una spiegazione dettagliata del codice:
Inclusione delle Librerie e Definizioni di Costanti/Variabili:
Importa le librerie
Wire.h,LiquidCrystal_I2C.heDHT.h. Definisci i numeri dei pin e altri parametri relativi al DHT11, al sensore di umidità del suolo e alla pompa dell’acqua.setup():Inizializza le modalità dei pin relativi al sensore di umidità del suolo e alla pompa dell’acqua. Spegni inizialmente la pompa dell’acqua. Inizializza il display LCD e accendi la retroilluminazione. Avvia il sensore DHT.
loop():Leggi l’umidità e la temperatura dal sensore DHT. Leggi l’umidità del suolo dal sensore di umidità del suolo. Visualizza i valori di temperatura e umidità sullo schermo LCD, poi cancella lo schermo e visualizza il valore di umidità del suolo. Determina se attivare la pompa dell’acqua in base all’umidità del suolo. Se l’umidità del suolo è inferiore a 500 (una soglia configurabile), attiva la pompa dell’acqua per 1 secondo.