د ESP32 ټیوټوریل 35/55 - د نبات څارونکی، خاوره، تودوخه او رڼا | د SunFounder د ESP32 IoT زده کړې کټ
په دې ټیوټوریل کې به موږ د SunFounder ESP32 IoT زده کړې کټ څخه د ESP32 مایکروکنټرولر په کارولو سره د نبات څارونکی جوړوو. دا پروژه ډیری اجزا سره یوځای کوي ترڅو د خاورې رطوبت، تودوخه، لندبل او رڼا کچه وڅاري. د دې لارښود په پای کې به تاسو یو بشپړ فعال سیسټم ولرئ چې کولی شي د نبات پاملرنې لپاره دا مهم پیرامیټرې اداره او ښکاره کړي. د تفصیلي بصري توضیحاتو لپاره، ډاډ ترلاسه کړئ چې ویډیو وګورئ (په ویډیو کې په 00:00).

هارډویر تشریح شوی
په دې پروژه کې کارول شوي اصلي اجزا کې ESP32 مایکروکنټرولر، DHT11 سینسر، د خاورې رطوبت سینسر، د رڼا پورې تړلی مقاومت کونکی (LDR)، او د معلوماتو ښودلو لپاره LCD شامل دي. ESP32 د تنظیماتو دماغ په توګه کار کوي، د معلوماتو پروسس او کنټرول دندې اداره کوي. دا په جوړه شوي Wi-Fi او Bluetooth بڼه لري، چې د لیرې څارنې لپاره د اړیکو اختیارونه چمتو کوي.
د DHT11 سینسر تودوخه او لندبل اندازه کوي، پداسې حال کې چې د خاورې رطوبت سینسر په خاوره کې د رطوبت کچه کشف کوي. LDR د شاوخوا رڼا شدت اندازه کوي، چې د نبات د رڼا شرایطو په اړه بصیرت ورکوي. هر جز د ریښتیني وخت معلوماتو چمتو کولو سره د نبات د روغتیا ډاډ ترلاسه کولو کې مهم رول لوبوي.
ډیټاشیټ تفصیلات
| جوړونکی | SunFounder |
|---|---|
| د برخې شمېره | DHT11 |
| منطق/IO ولټاژ | 3.3 V |
| د بریښنا ولټاژ | 5 V |
| د تولید جریان (په هر چینل) | 20 mA |
| د لوړ جریان (په هر چینل) | 50 mA |
| د PWM فریکونسۍ لارښود | N/A |
| د منطق داخلیدو حدونه | 0.3 VCC (ټیټ)، 0.7 VCC (لوړ) |
| د ولټاژ کمښت / RDS(on) / سنتریشن | N/A |
| حرارتي حدونه | 0°C څخه تر 50°C |
| بسته بندي | DIP |
| یادښتونه / ډولونه | د DHT22 سره مطابقت لري |
- د هر جز لپاره د مناسب ولټاژ کچه ډاډمن کړئ (د موټرو ډرایور لپاره 5V، د سینسرونو لپاره 3.3V).
- د تیریدونکو داخلیدو مخنیوي لپاره د فشار تڼیو لپاره د کش کولو ښکته مقاومت کونکي وکاروئ.
- د ګډوډۍ او احتمالي شارټ سرکټ مخنیوي لپاره تارونه منظم وساتئ.
- د زیان مخنیوي لپاره د سرکټ بریښنا کولو دمخه اړیکې تایید کړئ.
- د DHT11 تارونه وګورئ ځکه چې دا د غلطو اړیکو په وړاندې حساس دی.
د تارونو لارښوونې

د اجزاو تارونو لپاره، د بریښنا او ځمکې کرښو په نښلولو سره پیل وکړئ. ESP32 باید د لیتیم بیټرۍ سره بریښنا شي، مثبت ترمینل د VCC کرښې سره او ځمکه د بریډبورډ په GND کرښې سره وصل کړئ. د DHT11 سینسر د معلوماتو پن د PIN 13 سره وصل کیږي، پداسې حال کې چې د هغې VCC د 3.3V کرښې ته او GND ځمکې ته ځي. د خاورې رطوبت سینسر په ورته ډول وصل کیږي: د هغې سیګنال پن PIN 14 ته، VCC 3.3V ته، او GND ځمکې ته.
د LDR لپاره، یو پن د 3.3V کرښې سره او بل د PIN 35 سره وصل کړئ، د LDR څخه ځمکې ته د 10k اوم مقاومت کونکي سره. د LCD ښودنه د بریښنا لپاره د 5V کرښې سره وصل کیږي او د SDA او SCL پنونه په ترتیب سره د PIN 21 او PIN 22 سره وصل کوي. په پای کې، د فشار تڼۍ د PIN 32 سره د کش کولو ښکته مقاومت کونکي سره ځمکې ته وصل کړئ، ډاډ ترلاسه کړئ چې دا کله چې فشار نه وي ټیټ او کله چې فشار وي لوړ لوستل کیږي.
د کوډ مثالونه او واک ترو
زموږ د پروګرام اصلي برخه د هر جز لپاره د پنونو تعریف سره پیل کیږي. د مثال په توګه، DHTPIN د DHT11 سینسر لپاره PIN 13 ته ټاکل شوی، پداسې حال کې چې MOIS_PIN د رطوبت سینسر لپاره PIN 14 ته ټاکل شوی. دا تنظیم د دې تعقیب ساتلو کې مرسته کوي چې کوم سینسر کوم پن سره وصل دی.
#define DHTPIN 13 // د DHT11 د معلوماتو پن سره وصل شوی پن وټاکئ
#define MOIS_PIN 14 // د خاورې رطوبت ماډل
#define LIGHT_PIN 35 // فوټوریزیسټر
بیا، موږ د setup() فنکشن دننه د DHT سینسر او LCD ښودنه پیل کوو. دا مهم دی ځکه چې دا دا اجزا د عملیاتو لپاره چمتو کوي. ډاډ ترلاسه کول چې dht.begin() ته زنګ ووهئ د DHT سینسر لپاره اړین دی ترڅو په سمه توګه ارزښتونه لوستل پیل کړي.
void setup() {
Serial.begin(115200);
dht.begin(); // DHT11 پیل کړئ
lcd.init(); // LCD پیل کړئ
lcd.backlight();
}
په loop() فنکشن کې، موږ په دوامداره توګه د تودوخې او لندبل ارزښتونه لوستلو، دوی په LCD باندې ښکاره کوو. که تڼۍ فشار شي، موټور د نباتاتو اوبو لپاره فعال کیږي. دا منطق د تڼۍ پن ډیجیټل لوستل کاروي ترڅو معلومه کړي چې موټور چالان یا بند کړي.
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (digitalRead(BUTTON) == HIGH) {
digitalWrite(motor1A, HIGH); // د اوبو پمپ چالان کړئ
} else {
digitalWrite(motor1A, LOW); // د اوبو پمپ بند کړئ
}
delay(2000);
}
دغه کوډ جوړښت د معلوماتو او کنټرول روښانه جریان ته اجازه ورکوي، ډاډ ترلاسه کوي چې د نبات څارونکی په سمه توګه کار کوي. د نورو جزیاتو لپاره، بشپړ کوډ د مقالې لاندې بار شوی دی.
ننداره / څه تمه ولرئ
د تنظیم بشپړولو او د کوډ پورته کولو وروسته، LCD باید د تودوخې او رطوبت لوستل په بدیل ډول د لندبل او رڼا کچو سره ښکاره کړي. کله چې پش بټن فشارول شي، د اوبو پمپ باید فعال شي، نبات ته اوبه ورسوي. ډاډ ترلاسه کړئ چې ټولې اړیکې خوندي دي ترڅو د تیریدونکو انپټونو یا غلط لوستلو په څیر ستونزو څخه مخنیوی وشي (په ویډیو کې په 05:30).
په LCD او سیریل مانیټر کې ښودل شوي ارزښتونو څارنه به د سیسټم د سم فعالیت ډاډ ترلاسه کولو کې مرسته وکړي. که تاسو ستونزې سره مخ شئ، تارونه بیا وګورئ او ډاډ ترلاسه کړئ چې ټولې برخې په سمه توګه بریښنا لري.
د ویډیو وخت نښې
- 00:00 پیل
- 2:23 د پروژې پېژندنه
- 4:02 د اسنادو پاڼه
- 7:43 1-L293D د پمپ موټور چلوونکی
- 14:30 2-د پمپ لپاره پش بټن
- 16:35 3-DHT11 د تودوخې او رطوبت سینسر
- 19:26 4-د لندبل سینسر
- 21:43 5-د رڼا سینسر
- 24:47 6-د خاورې لندبل سینسر
- 26:01 بشپړ د نبات څارونکی Arduino کوډ
- 29:21 ننداره
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 13 // Set the pin connected to the DHT11 data pin
#define MOIS_PIN 14 // Soil mOisture module
#define LIGHT_PIN 35 // Photoresistor
#define motor1A 27 // Pump pin
#define motor2A 26 // Pump pin
#define BUTTON 32 // Button
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
int page = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
// Initialize the dht11
dht.begin();
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.clear();
// initialize digital pin as an output.
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
float humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
float temperature = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
lcd.clear();
// Show message per 2 second
if ((page++) % 2) {
// Display temperature and humidity
lcd.setCursor(0, 0);
lcd.print("Humi: ");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print("\xDF");
lcd.print("C");
} else {
// Display moisture and light sensor values
lcd.setCursor(0, 0);
lcd.print("Mois: ");
lcd.print(analogRead(MOIS_PIN));
lcd.setCursor(0, 1);
lcd.print("Light: ");
lcd.print(analogRead(LIGHT_PIN));
}
// Water plant while button pressed
Serial.println(digitalRead(BUTTON));
if (digitalRead(BUTTON) == HIGH) {
// Turn on water pump if button is pressed
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
} else {
// Turn off water pump if button is not pressed
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
}
delay(2000);
}
Common Course Links
Common Course Files
هغه شیان چې تاسو ورته اړتیا لرئ
-
امازونBuy LCD1602-I2C from Amazonamzn.to
-
ای بیPurchase LCD1602-I2C from eBayebay.us
-
علی ایکسپریسPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
سرچینې او حوالې
-
اسنادESP32 Tutorial 35/55 - SunFounder doc page for plant monitordocs.sunfounder.com
فایلونه📁
Fritzing فایل
-
DHT11 Humitidy and Temperature Sensor (3 pins)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB -
LCD LCD1602-I2C module with 4 wires
LCD1602-I2C.fzpz0.01 MB