ESP32 ٹیوٹوریل 28/55 - DHT11 درجہ حرارت سینسر LCD کے ساتھ | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ
اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ DHT11 درجہ حرارت اور نمی سینسر کو ESP32 مائیکروکنٹرولر کے ساتھ کیسے جوڑا جائے۔ اس سیٹ اپ کا استعمال کرتے ہوئے، ہم محیطی درجہ حرارت اور نمی کی پیمائش کریں گے، نتائج کو سیریل مانیٹر اور LCD اسکرین دونوں پر ظاہر کریں گے۔ مزید برآں، ہم ایک بزر نافذ کریں گے جو درجہ حرارت ایک مخصوص حد سے تجاوز کرنے پر فعال ہو جائے گا۔
یہ پروجیکٹ نہ صرف DHT11 سینسر کے استعمال کو ظاہر کرتا ہے بلکہ ESP32 کی استعداد کو بھی اجاگر کرتا ہے، جس میں بلٹ ان Wi-Fi اور Bluetooth صلاحیتیں شامل ہیں۔ اس ٹیوٹوریل کے اختتام تک، آپ کے پاس ایک کام کرنے والا سیٹ اپ ہوگا جو مسلسل ماحولیاتی حالات کی نگرانی کرتا ہے اور ریئل ٹائم فیڈ بیک فراہم کرتا ہے۔
بصری رہنمائی کے لیے، اس ٹیوٹوریل کے ساتھ موجود ویڈیو دیکھیں (ویڈیو میں 00:00 پر)۔ آئیے شروع کریں!
ہارڈویئر کی وضاحت
اس پروجیکٹ میں استعمال ہونے والے اہم اجزاء ESP32 مائیکروکنٹرولر، DHT11 سینسر، اور LCD ڈسپلے ہیں۔ ESP32 آپریشن کے دماغ کے طور پر کام کرے گا، DHT11 سینسر سے ڈیٹا پراسیس کرے گا اور LCD آؤٹ پٹ کو کنٹرول کرے گا۔
DHT11 سینسر نمی اور درجہ حرارت کی پیمائش کرتا ہے، ایک ہی ڈیٹا لائن کے ذریعے ریڈنگ فراہم کرتا ہے۔ اسے 3.3V سے 5.5V کی بجلی کی فراہمی درکار ہوتی ہے اور اس کی کرنٹ کھپت کم ہوتی ہے، جو اسے بیٹری سے چلنے والی ایپلیکیشنز کے لیے موزوں بناتی ہے۔ LCD درجہ حرارت اور نمی کی اقدار کو ریئل ٹائم میں ظاہر کرے گا۔
ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | GROVE |
|---|---|
| پارٹ نمبر | DHT11 |
| لاجک/IO وولٹیج | 3.3 – 5.5 V |
| سپلائی وولٹیج | 3.3 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 0.5 mA عام |
| پیک کرنٹ (فی چینل) | 2.5 mA زیادہ سے زیادہ |
| PWM فریکوئنسی رہنمائی | N/A |
| ان پٹ لاجک تھریشولڈز | 0.3 VCC (کم)، 0.7 VCC (زیادہ) |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | لاگو نہیں |
| تھرمل حدود | 0°C سے 60°C |
| پیکیج | DIP-4 |
| نوٹس / ویریئنٹس | ریزولوشن: 1°C / 1% RH |
- ڈیٹا لائن پر پل اپ ریزسٹر (5 kΩ تجویز کردہ) استعمال کریں۔
- سینسر کی تاریں چھوٹی رکھیں (20 میٹر سے کم) تاکہ درست ریڈنگ یقینی ہو۔
- بہترین کارکردگی کے لیے DHT11 کو 3.3V سے پاور کریں۔
- سیمپلنگ کی مدت 1 سیکنڈ سے کم نہیں ہونی چاہیے۔
- اگر ریڈنگ ناکام ہو تو وائرنگ کنکشن چیک کریں (مثلاً، منسلک نہیں، غلط پن)۔
وائرنگ ہدایات


DHT11 سینسر کو ESP32 سے جوڑنے کے لیے، DHT11 کے VCC پن (سب سے بائیں پن) کو ESP32 کے 3.3V آؤٹ پٹ سے جوڑ کر شروع کریں۔ اگلا، گراؤنڈ پن (چوتھا پن) کو ESP32 پر گراؤنڈ (GND) پن سے جوڑیں۔ ڈیٹا پن (دوسرا پن) کو ESP32 پر GPIO پن 14 سے منسلک ہونا چاہیے۔
LCD کے لیے، VCC پن کو ESP32 کے 5V آؤٹ پٹ سے جوڑیں۔ گراؤنڈ پن کو ESP32 پر گراؤنڈ پن سے منسلک ہونا چاہیے۔ LCD کے SDA اور SCL پن بالترتیب GPIO پن 21 اور 22 سے منسلک ہونے چاہئیں۔ ڈیٹا پڑھتے وقت کسی بھی مسئلے سے بچنے کے لیے تمام کنکشن محفوظ یقینی بنائیں۔
کوڈ مثالیں اور واک تھرو
کوڈ کے پہلے حصے میں، ہم DHT سینسر کو انیشیالائز کرتے ہیں اور پن نمبر #define DHTPIN 14 کے ساتھ سیٹ کرتے ہیں۔ یہ شناخت کنندہ ہمیں پورے کوڈ میں DHT11 ڈیٹا لائن سے منسلک پن کا آسانی سے حوالہ دینے کی اجازت دیتا ہے۔
#include "DHT.h"
#define DHTPIN 14 // DHT11 ڈیٹا پن سے منسلک پن سیٹ کریں
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
setup() فنکشن میں، ہم ڈیبگنگ کے لیے سیریل کمیونیکیشن انیشیالائز کرتے ہیں اور DHT سینسر شروع کرتے ہیں۔ مرکزی لوپ میں 2 سیکنڈ کی تاخیر شامل ہے تاکہ یہ یقینی بنایا جا سکے کہ ہم سینسر پر درخواستوں کا بوجھ نہ ڈالیں۔
اگلا، ہم نمی اور درجہ حرارت کی اقدار کو float humidity = dht.readHumidity(); اور float temperature = dht.readTemperature(); استعمال کرتے ہوئے پڑھتے ہیں۔ یہ شناخت کنندگان بعد میں استعمال کے لیے ماپا گئی اقدار کو محفوظ کرتے ہیں۔
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
}
آخر میں، ہم کسی بھی پڑھنے کی غلطی کی جانچ کرتے ہیں اور Serial.print() استعمال کرتے ہوئے اقدار کو سیریل مانیٹر پر پرنٹ کرتے ہیں۔ یہ ہمیں ریڈنگز کو ریئل ٹائم میں مشاہدہ کرنے کی اجازت دیتا ہے۔
if (isnan(humidity) || isnan(temperature)) {
Serial.println("DHT سینسر سے پڑھنے میں ناکامی!");
return;
}
Serial.print("نمی: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("درجہ حرارت: ");
Serial.print(temperature);
Serial.println(" *C");
LCD کوڈ میں، ہم LCD کو انیشیالائز کرتے ہیں اور lcd.print() فنکشن استعمال کرتے ہوئے اسکرین پر درجہ حرارت اور نمی ظاہر کرتے ہیں۔ یہ DHT11 سینسر کے ذریعے جمع کردہ ڈیٹا کی بصری نمائندگی فراہم کرتا ہے۔
ڈیمونسٹریشن / کیا توقع کریں
ایک بار جب سب کچھ درست طریقے سے وائرڈ ہو جائے اور کوڈ ESP32 پر اپ لوڈ ہو جائے، تو آپ کو سیریل مانیٹر اور LCD اسکرین پر درجہ حرارت اور نمی کی ریڈنگز ظاہر ہوتی نظر آئیں گی۔ اگر درجہ حرارت 30°C سے تجاوز کر جائے تو بزر فعال ہو جائے گا، جو ایک قابل سماعت الرٹ فراہم کرے گا۔
الٹی کنکشن سے محتاط رہیں اور یقینی بنائیں کہ سینسر انتہائی حالات میں نہ ہو، کیونکہ یہ ریڈنگز کو متاثر کر سکتا ہے۔ آپ کو اپنی ضروریات کے مطابق بزر کے لیے حد (تھریشولڈ) ایڈجسٹ کرنے کی ضرورت پڑ سکتی ہے (ویڈیو میں 15:30 پر)۔
ویڈیو ٹائم اسٹیمپس
- 00:00 شروع
- 1:57 DHT11 کا تعارف
- 6:18 ESP32 کے ساتھ DHT11 کی وائرنگ
- 7:67 Arduino کوڈ کی وضاحت
- 11:49 Arduino IDE میں ESP32 بورڈ اور COM پورٹ کا انتخاب
- 13:30 پروجیکٹ کا مظاہرہ
- 15:32 فارن ہائیٹ حاصل کرنا
- 16:04 ESP32 کا استعمال کرتے ہوئے LCD پر درجہ حرارت ظاہر کرنا
- 17:20 ESP32 کے ساتھ DHT11 اور LCD کوڈ
- 19:49 ESP32 کے ساتھ DHT11 LCD ڈیمو
- 21:33 درجہ حرارت کی قدر پر کارروائی کرنا
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println("DHT11 test!");
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// 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;
}
// Print the humidity and temperature
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}
/*
This is Arduino code to measure temperature and humidity using DHT11/DHT22 and displays it on LCD screen
written by Ahmad Shamshiri for SunFounder's ESP32 IoT learning kit
watch full video https://youtu.be/qRUFZX4eDJg
Full code, wiring diagram and other resources for this tutorial is at https://robojax.com/RJT711
*/
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
// Initialize the LCD object with I2C address 0x27, 16 columns, and 2 rows
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Begin serial communication at 115200 baud
Serial.begin(115200);
// Initialize the dht11
dht.begin();
// Initialize the LCD
lcd.init();
lcd.backlight();
// Clear the LCD
lcd.clear();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// 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;
}
// Display temperature and humidity on the LCD
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.write(223); // Degree symbol
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humi: ");
lcd.print(humidity);
lcd.print("%");
}
Common Course Links
Common Course Files
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزونPurchase DHT11 from Amazonamzn.to
-
بینگوڈPurchase DHT11 module from Banggoodbanggood.com
وسائل اور حوالہ جات
-
دستاویزاتESP32 Tutorial 28/55- SunFounder doc page for DHT temperature sensordocs.sunfounder.com
فائلیں📁
فریٹزنگ فائل
-
DHT11 Humitidy and Temperature Sensor (3 pins)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB
صارف کا دستی کتاب
-
ڈی ایچ ٹی 11 صارف کا دستی
robojax-DHT11_manual.pdf0.82 MB