ESP32 سبق 35/55 - پودوں کی نگرانی، مٹی، درجہ حرارت اور روشنی | سن فاؤنڈر کا 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 سینسر کے لیے dht.begin() کو کال کرنا یقینی بنانا ضروری ہے تاکہ یہ درست طریقے سے قدریں پڑھنا شروع کرے۔
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 مکمل پلانٹ مانیٹر آرڈوینو کوڈ
- 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
فائلیں📁
فریٹزنگ فائل
-
DHT11 نمی اور درجہ حرارت سینسر (3 پن)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB -
LCD LCD1602-I2C ماجیول 4 تاروں کے ساتھ
LCD1602-I2C.fzpz0.01 MB