درس ESP32 28/55 - مستشعر حرارة DHT11 مع شاشة LCD | مجموعة تعليمية ESP32 من SunFounder

درس ESP32 28/55 - مستشعر حرارة DHT11 مع شاشة LCD | مجموعة تعليمية ESP32 من SunFounder

في هذا البرنامج التعليمي، سنستعرض كيفية توصيل مستشعر درجة الحرارة والرطوبة DHT11 مع الميكروكنترولر ESP32. باستخدام هذا الإعداد، سنقوم بقياس درجة الحرارة والرطوبة المحيطية، وعرض النتائج على كل من المراقب التسلسلي وشاشة LCD. بالإضافة إلى ذلك، سنقوم بتنفيذ جرس ينشط عندما تتجاوز درجة الحرارة حدًا معينًا.

ESP32-28_dht_حساس-درجة-حرارة-رئيسي

يظهر هذا المشروع استخدام مستشعر DHT11 ويبرز أيضًا تنوع ESP32، الذي يتضمن قدرات Wi-Fi و Bluetooth مدمجة. في نهاية هذا الدرس، سيكون لديك إعداد يعمل على مراقبة الظروف البيئية باستمرار وتوفير تغذية راجعة في الوقت الحقيقي.

للحصول على دليل مرئي، تحقق من الفيديو المرفق بهذا الدليل (في الفيديو عند :00). دعونا نبدأ!

شرح الأجهزة

المكونات الرئيسية المستخدمة في هذا المشروع هي متحكم ESP32، حساس DHT11، وشاشة LCD. سيعمل ESP32 كعقل العملية، حيث يقوم بمعالجة البيانات من حساس DHT11 والتحكم في إخراج الشاشة LCD.

يقيس مستشعر DHT11 الرطوبة ودرجة الحرارة، موفراً قراءات من خلال خط بيانات واحد. يتطلب مصدر طاقة يتراوح بين 3.3 فولت و 5.5 فولت ويتميز باستهلاك منخفض للطاقة، مما يجعله مناسبًا للتطبيقات التي تعمل بالبطارية. سيعرض شاشة LCD قيم درجة الحرارة والرطوبة في الوقت الحقيقي.

تفاصيل ورقة البيانات

الصانع غابة
رقم الجزء دي إتش تي 11
جهد المنطق/الدخل والخرج ٣٫٣ - ٥٫٥ ف
جهد الإمداد ٣.٣ فولت
تيار الإخراج (لكل قناة) 0.5 مللي أمبير عادي.
التيار الأقصى (لكل قناة) ٢.٥ مللي أمبير كحد أقصى
إرشادات تردد PWM N/A
عتبات منطق الإدخال 0.3 فولت (منخفض)، 0.7 فولت (مرتفع)
فرق الجهد / رDS(on)/ تشبع غير قابل للتطبيق
الحدود الحرارية 0°C إلى 60°C
حزمة ديب-4
ملاحظات / متغيرات الدقة: 1 درجة مئوية / 1% رطوبة نسبية

  • استخدم مقاومة سحب (5 كΩ موصى بها) على خط البيانات.
  • احتفظ بأسلاك المستشعر قصيرة (أقل من 20 م) لضمان قراءات دقيقة.
  • قم بتغذية 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 بمخرج 5 فولت من ESP32. يجب توصيل دبوس الأرض بمسمار أرضي على ESP32. يجب توصيل دبابيس SDA و SCL الخاصة بالشاشة بدبابيس GPIO 21 و 22، على التوالي. تأكد من أن جميع الاتصالات آمنة لتجنب أي مشاكل أثناء قراءة البيانات.

أمثلة الشيفرة ومشيّدة

في الجزء الأول من الشيفرة، نقوم بتهيئة مستشعر 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. تتضمن الحلقة الرئيسية تأخيرًا قدره ثانيتين لضمان أننا لا نضغط على المستشعر بالطلبات.

بعد ذلك، نقرأ قيم الرطوبة ودرجة الحرارة باستخدام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. إذا تجاوزت درجة الحرارة 30°C، سيقوم الجرس بالتنبيه، موفرًا تنبيهًا صوتيًا.

كن حذرًا من الاتصالات العكسية وتأكد من عدم تعرض المستشعر لظروف قاسية، حيث يمكن أن يؤثر ذلك على القراءات. قد تحتاج إلى تعديل العتبة للجرس بناءً على متطلباتك (في الفيديو عند 15:30).

طوابع زمنية للفيديو

  • :00 بدء
  • 1:57 مقدمة في DHT11
  • :18 توصيل DHT11 مع ESP32
  • 7:67 شرح كود أردوينو
  • 11:49 اختيار لوحة ESP32 ومنفذ COM في Arduino IDE
  • 13:30 عرض المشروع
  • 15:32 الحصول على فهرنهايت
  • 16:04 عرض درجة الحرارة على شاشة LCD باستخدام ESP32
  • 17:20 DHT11 و LCD مع شفرة ESP32
  • 19:49 عرض DHT11 على LCD مع ESP32
  • 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++
تم النسخ!

الأشياء التي قد تحتاجها

ملفات📁

Fritzing File

دليل المستخدم