آموزش ESP32 28/55 - حساس(حس کننده) دما DHT11 با LCD | کیت آموزش IoT ESP32 سان فاندرا
در این آموزش، ما به بررسی نحوه ارتباط حساس(حس کننده) دما و رطوبت DHT11 با میکروکنترلر ESP32 خواهیم پرداخت. با استفاده از این تنظیم، دمای محیط و رطوبت را اندازهگیری کرده و نتایج را هم بر روی نمایشگر مسلسل و هم بر روی یک صفحه نمایش LCD نمایش خواهیم داد. علاوه بر این، ما یک بیزر را پیادهسازی خواهیم کرد که زمانی که دما از یک آستانه معین فراتر رود، فعال میشود.
این پروژه نه تنها استفاده از حساس(حس کننده) DHT11 را نشان میدهد بلکه قابلیتهای چندمنظوره ESP32 را نیز به نمایش میگذارد، که شامل تواناییهای Wi-Fi و Bluetooth داخلی است. در پایان این آموزش، شما یک تنظیمات عملی خواهید داشت که به طور مداوم شرایط محیطی را تحت نظارت قرار داده و بازخورد آنی ارائه میدهد.
برای راهنمای بصری، ویدیوی همراه با این آموزش را ببینید (در ویدیو در :00). بیایید شروع کنیم!
سختافزار توضیح داده شده است
اجزای اصلی استفاده شده در این پروژه میکروکنترلر ESP32، حساس(حس کننده) DHT11 و یک صفحه نمایش LCD هستند. ESP32 به عنوان مغز عملیات عمل کرده و دادهها را از حساس(حس کننده) DHT11 پردازش کرده و خروجی LCD را کنترل میکند.
حساس(حس کننده) DHT11 رطوبت و دما را اندازهگیری میکند و از طریق یک خط داده، خوانشها را ارائه میدهد. این حساس(حس کننده) به منبع تغذیهای بین ۳.۳ ولت تا ۵.۵ ولت نیاز دارد و مصرف جریان پایینی دارد که آن را برای کاربردهای با منبع تغذیه باتری مناسب میسازد. صفحه نمایش LCD مقادیر دما و رطوبت را بهصورت آنی نمایش میدهد.
جزئیات مشخصات فنی
| تولیدکننده | گروه |
|---|---|
| شماره قطعه | DHT11 |
| ولتاژ منطقی/ورودی-خروجی | ۳.۳ - ۵.۵ ولت |
| ولتاژ تغذیه | 3.3 ولت |
| جریان خروجی (به ازای هر کانال) | 0.5 میلی آمپر معمولی |
| جریان اوج (به ازای هر کانال) | ۲.۵ میلیآمپر حداکثر. |
| راهنمایی فرکانس PWM | N/A |
| آستانههای منطقی ورودی | ۰.۳ ولت (پایین)، ۰.۷ ولت (بالا) |
| افت ولتاژ / RDS(on)/ اشباع | غیرقابل اعمال |
| محدودیتهای حرارتی | ۰°C تا ۶۰°C |
| بسته | DIP-4 |
| یادداشتها / واریانتها | رزولوشن: 1°C / 1% رطوبت نسبی |
- در خط داده از یک مقاومت کششی (مقاومت ۵ کیلو اهم پیشنهاد میشود) استفاده کنید.
- سیمهای حساس(حس کننده) را کوتاه نگه دارید (کمتر از ۲۰ متر) تا از دقت خوانشها اطمینان حاصل شود.
- ماجیول DHT11 را با 3.3 ولت برای عملکرد بهینه تغذیه کنید.
- دوره نمونهبرداری نباید کمتر از ۱ ثانیه باشد.
- اتصالات سیمکشی را در صورت عدم موفقیت در خواندن بررسی کنید (مثلاً، متصل نیست، پایه نادرست).
دستورالعملهای سیمکشی


برای اتصال حساس(حس کننده) DHT11 به ESP32، ابتدا پایه VCC حساس(حس کننده) DHT11 (پایه سمت چپ) را به خروجی 3.3V ESP32 متصل کنید. سپس پایه زمین (چهارمین پایه) را به یک پایه زمین (GND) روی ESP32 متصل کنید. پایه داده (دومین پایه) باید به پایه GPIO 14 روی ESP32 متصل شود.
برای LCD، پایه VCC را به خروجی ۵ ولت ESP32 متصل کنید. پایه زمین باید به یک پایه زمین بر روی ESP32 متصل شود. پایههای SDA و SCL LCD باید به پایههای GPIO شماره ۲۱ و ۲۲ به ترتیب متصل شوند. اطمینان حاصل کنید که تمام اتصالات ایمن هستند تا از هرگونه مشکل در زمان خواندن دادهها جلوگیری شود.
نمونههای شِفر (کود) و راهنمایی
در قسمت اول شِفر (کود)، حساس(حس کننده) DHT را راهاندازی کرده و شماره پایه را تنظیم میکنیم.#define DHTPIN 14این شناسگر به ما امکان میدهد بهراحتی پایه متصل به خط داده DHT11 را در سراسر شِفر (کود) ارجاع دهیم.
#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);
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("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
در شِفر (کود) LCD، ما LCD را راهاندازی کرده و دما و رطوبت را بر روی صفحه نمایش نشان میدهیم با استفاده ازlcd.print()عملکرد. این یک نمایش بصری از دادههای جمعآوریشده توسط حساس(حس کننده) DHT11 را ارائه میدهد.
نمایش / چه انتظاراتی داشته باشیم
پس از اینکه همه چیز به درستی متصل شد و شِفر (کود) روی ESP32 بارگذاری شد، باید دما و رطوبت را در صفحه نمایش سری و صفحه نمایش LCD مشاهده کنید. اگر دما از ۳۰ درجه سانتیگراد بالاتر برود، زنگ خطر فعال میشود و هشدار صوتی میدهد.
مواظب اتصالات معکوس باشید و اطمینان حاصل کنید که حساس(حس کننده) در معرض شرایط شدید قرار نگیرد، زیرا این موضوع میتواند بر خوانشها تأثیر بگذارد. بسته به نیازهای خود، ممکن است نیاز به تنظیم آستانه برای زنگ داشته باشید (در ویدیو در ساعت ۱۵:۳۰).
مهرههای زمانی ویدیو
- ۰۰:۰۰ شروع
- 1:57 مقدمهای بر DHT11
- 6:18 اتصال DHT11 با ESP32
- شِفر (کود) آردوینو 7:67 توضیح داده شده
- انتخاب تخته ESP32 و پورت COM در Arduino IDE
- نمایش پروژه ۱۳:۳۰
- ۱۵:۳۲ دما را به فارنهایت تبدیل میکند
- نمایش دما بر روی LCD با استفاده از ESP32 در ساعت ۱۶:۰۴
- 17:20 شِفر (کود) DHT11 و LCD با ESP32
- دموی LCD DHT11 با ESP32 در ساعت 19:49
- 21:33 اقدام بر روی مقدار دما
Common Course Links
Common Course Files
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
-
بنگ گودماجیول DHT11 را از Banggood خریداری کنیدbanggood.com
منابع و مراجع
-
مستنداتآموزش ESP32 28/55- صفحه سند SunFounder برای حساس(حس کننده) دما DHTdocs.sunfounder.com
فایلها📁
فایل فریزینگ
-
حساس(حس کننده) رطوبت و دما DHT11 (۳ پایه)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB
راهنمای کاربر
-
راهنمای کاربری DHT11
robojax-DHT11_manual.pdf0.82 MB