آموزش ESP32 28/55 - حساس(حس کننده) دما DHT11 با LCD | کیت آموزش IoT ESP32 سان فاندرا

آموزش ESP32 28/55 - حساس(حس کننده) دما DHT11 با LCD | کیت آموزش IoT ESP32 سان فاندرا

در این آموزش، ما به بررسی نحوه ارتباط حساس(حس کننده) دما و رطوبت DHT11 با میکروکنترلر ESP32 خواهیم پرداخت. با استفاده از این تنظیم، دمای محیط و رطوبت را اندازه‌گیری کرده و نتایج را هم بر روی نمایشگر مسلسل و هم بر روی یک صفحه نمایش LCD نمایش خواهیم داد. علاوه بر این، ما یک بیزر را پیاده‌سازی خواهیم کرد که زمانی که دما از یک آستانه معین فراتر رود، فعال می‌شود.

ESP32-28_dht_حساس(حس کننده)_دما_اصلی

این پروژه نه تنها استفاده از حساس(حس کننده) 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 ولت برای عملکرد بهینه تغذیه کنید.
  • دوره نمونه‌برداری نباید کمتر از ۱ ثانیه باشد.
  • اتصالات سیم‌کشی را در صورت عدم موفقیت در خواندن بررسی کنید (مثلاً، متصل نیست، پایه نادرست).

دستورالعمل‌های سیم‌کشی

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

برای اتصال حساس(حس کننده) 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 اقدام بر روی مقدار دما

تصاویر

ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
زبان: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

فایل‌ها📁

فایل فریزینگ

راهنمای کاربر