جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في هذا البرنامج التعليمي سنجرب مستشعر DHT11 باستخدام Arduino.
يمكن استخدام DHT11 لقياس درجة الحرارة والرطوبة.
المكونات المطلوبة:
- اردوينو نانو
- جهاز استشعار درجة الحرارة والرطوبة DHT11
- USB ميني
- كابلات توصيل
المكتبة المطلوبة:
مكتبة DHT
الخطوة 1: قم بتوصيل DHT11 بـ Arduino
قم بتوصيل DHT11 بـ Arduino باستخدام كبلات التوصيل.
انظر إلى الصورة أو اتبع التعليمات أدناه.
DHT11 إلى Arduino
+ => + 5 فولت
خارج => D12
- => GND
ثم قم بتوصيل اردوينو بالكمبيوتر باستخدام USB صغير
الخطوة 2: أضف مكتبة DHT
يمكن تنزيل مكتبة DHT هنا:
مكتبة DHT11.
لإضافة مكتبة انظر الصورة أعلاه أو اتبع التعليمات أدناه:
افتح Sketch ==> Include Library ==> أضف مكتبة Zip
ابحث عن ملف المكتبة الذي تم تنزيله.
إذا نجحت ، أغلق Arduino وافتحه مرة أخرى.
الخطوة 3: اختر لوحة Arduino
انتقل إلى الأدوات واضبط لوحة اردوينو على الصورة أعلاه.
لوحة "اردوينو نانو"
المعالج "ATmega328P (محمل الإقلاع القديم)"
للحصول على مقال أكثر اكتمالاً ، يمكنك قراءة "كيفية استخدام Arduino Nano v.3" الذي كتبته سابقًا.
الخطوة 4: البرنامج
قم بتضمين هذا الرمز لقراءة القيمة من مستشعر DHT11
// مستشعر درجة الحرارة والرطوبة DHT // مثال لمكتبة المستشعر الموحد // كتبه توني ديكولا لصالح Adafruit Industries // صدر بموجب ترخيص MIT.
// يتطلب مكتبات Arduino التالية:
// - مكتبة مستشعر DHT: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#يشمل
# تضمين # تضمين
#define DHTPIN 2 // دبوس رقمي متصل بمستشعر DHT
// Feather HUZZAH ESP8266 ملاحظة: استخدم المسامير 3 أو 4 أو 5 أو 12 أو 13 أو 14 - // يمكن أن يعمل Pin 15 ولكن يجب فصل DHT أثناء تحميل البرنامج.
// قم بإلغاء تعليق نوع المستشعر المستخدم:
// # حدد DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) // # حدد DHTTYPE DHT21 // DHT 21 (AM2301)
// راجع الدليل للحصول على تفاصيل حول توصيلات أجهزة الاستشعار والاستخدام:
//
DHT_Unified dht (DHTPIN ، DHTTYPE) ؛
uint32_t delayMS ؛
الإعداد باطل() {
Serial.begin (9600) ؛ // تهيئة الجهاز. dht.begin () ، Serial.println (F ("مثال مستشعر DHTxx الموحد")) ؛ // طباعة تفاصيل مستشعر درجة الحرارة. sensor_t الاستشعار ؛ dht.temperature (). getSensor (& sensor) ؛ Serial.println (F ("------------------------------------")) ؛ Serial.println (F ("مستشعر درجة الحرارة")) ؛ Serial.print (F ("نوع المستشعر:")) ؛ Serial.println (sensor.name) ؛ Serial.print (F ("Driver Ver:")) ؛ Serial.println (مستشعر الإصدار) ؛ Serial.print (F ("المعرف الفريد:")) ؛ Serial.println (sensor.sensor_id) ؛ Serial.print (F ("القيمة القصوى:")) ؛ Serial.print (sensor.max_value) ؛ Serial.println (F ("° C")) ؛ Serial.print (F ("Min Value:")) ؛ Serial.print (sensor.min_value) ؛ Serial.println (F ("° C")) ؛ Serial.print (F ("Resolution:")) ؛ Serial.print (مستشعر الدقة) ؛ Serial.println (F ("° C")) ؛ Serial.println (F ("------------------------------------")) ؛ // طباعة تفاصيل مستشعر الرطوبة. dht.humidity (). getSensor (& sensor) ؛ Serial.println (F ("مستشعر الرطوبة")) ؛ Serial.print (F ("نوع المستشعر:")) ؛ Serial.println (sensor.name) ؛ Serial.print (F ("Driver Ver:")) ؛ Serial.println (مستشعر الإصدار) ؛ Serial.print (F ("المعرف الفريد:")) ؛ Serial.println (sensor.sensor_id) ؛ Serial.print (F ("القيمة القصوى:")) ؛ Serial.print (sensor.max_value) ؛ Serial.println (F ("٪")) ؛ Serial.print (F ("Min Value:")) ؛ Serial.print (sensor.min_value) ؛ Serial.println (F ("٪")) ؛ Serial.print (F ("Resolution:")) ؛ Serial.print (مستشعر الدقة) ؛ Serial.println (F ("٪")) ؛ Serial.println (F ("------------------------------------")) ؛ // ضبط التأخير بين قراءات المستشعر بناءً على تفاصيل المستشعر. delayMS = sensor.min_delay / 1000 ؛ }
حلقة فارغة() {
// التأخير بين القياسات. تأخير (delayMS) ؛ // احصل على حدث درجة الحرارة واطبع قيمته. حدث sensors_event_t ؛ dht.temperature (). getEvent (& event) ؛ if (isnan (event.temperature)) {Serial.println (F ("خطأ في قراءة درجة الحرارة!")) ؛ } else {Serial.print (F ("Temperature:"))؛ Serial.print (event.temperature) ؛ Serial.println (F ("° C")) ؛ } // احصل على حدث الرطوبة واطبع قيمته. dht.humidity (). getEvent (& event) ؛ if (isnan (event.relative_humidity)) {Serial.println (F ("خطأ في قراءة الرطوبة!")) ؛ } else {Serial.print (F ("Humidity:"))؛ Serial.print (event.relative_humidity) ؛ Serial.println (F ("٪")) ؛ }}
أو قم بتنزيل الملف أسفل Sketch الذي قدمته أدناه.
ثم انقر فوق تحميل وانتظر حتى ينتهي.
الخطوة 5: النتيجة
لمشاهدة نتائج قياسات درجة الحرارة والرطوبة ، انقر فوق Serial Monitor ، وسيتم عرض النتائج هناك.
إذا نجحت ، ستبدو النتائج مثل الشكل 1
إذا لم يتم تثبيت المستشعر سيبدو مثل الصورة 2
شكرا على القراءة ، إذا كانت هناك أسئلة ، فاكتبها في عمود التعليقات