الدرس 35: استخدام مستشعر درجة الحرارة HTU21D مع أردوينو

الدرس 35: استخدام مستشعر درجة الحرارة HTU21D مع أردوينو

يرشدك هذا المشروع خلال استخدام أردوينو لقراءة بيانات درجة الحرارة والرطوبة من مستشعر HTU21D-F. هذا المستشعر رخيص ومتوافر على نطاق واسع، مما يجعله مثالياً لمجموعة متنوعة من المشاريع. يخرج المستشعر البيانات عبر I2C، وهو بروتوكول اتصال رقمي شائع. سيفتح لك تعلم كيفية استخدام هذا المستشعر وI2C العديد من الإمكانيات لمشاريعك.

HTU21D module

التطبيقات العملية:

  • بناء جهاز مراقبة بيئية للمنزل الذكي
  • إنشاء محطة أرصاد جوية
  • تطوير حاوية مُتحكَّم في مناخها للأجهزة الإلكترونية الحساسة
  • مراقبة درجة الحرارة والرطوبة في الدفيئة أو التيراريوم

الأجهزة/المكونات

ستحتاج إلى المكونات التالية:

  • لوحة أردوينو (مثل Uno، Nano)
  • مستشعر HTU21D-F لدرجة الحرارة والرطوبة (في الفيديو عند 00:22)
  • أسلاك التوصيل
  • لوحة تجارب (اختيارية، لكن يُوصى بها)

دليل الأسلاك

التوصيلات بسيطة. قم بتوصيل المستشعر بالأردوينو كما يلي (في الفيديو عند 02:28):

  • وصل VCC الخاص بالمستشعر إلى 3.3V في لوحة الأردوينو
  • وصل GND الخاص بالمستشعر إلى GND الخاص بالأردوينو
  • وصل SDA للمستشعر إلى A4 في الأردوينو
  • وصّل SCL الخاص بالمستشعر إلى A5 على لوحة أردوينو

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

شرح الكود

يستخدم الكود المقدم مكتبة Adafruit HTU21D-F (في الفيديو عند 03:03) للتفاعل مع المستشعر. الأجزاء الرئيسية هي:


// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change

inPin: يحدد الدبوس التناظري المتصل بمستشعر درجة الحرارة. يمكنك تغييره ليتناسب مع توصيلاتك.

iteration: يتحكم هذا المتغير في عدد القراءات المأخوذة لحساب متوسط درجة الحرارة. زيادته تحسّن الدقة لكنها تُبطئ عملية القراءة (في الفيديو عند 00:22).

الgetHTU()تسمح الدالة (في الفيديو عند 08:46) باسترجاع درجة الحرارة بالدرجات المئوية أو بالفهرنهايت أو بالكلفن، أو الرطوبة، عن طريق تمرير حرف ('C'، 'F'، 'K' أو 'H') كوسيط. ثم يستخدم الكود هذه الدالة لعرض البيانات على المراقب التسلسلي.


float getTemperature(char type) {
  // ... (code to read temperature and humidity) ...
  if (type == 'F') {
    value = averageTemperature * 9 / 5 + 32; // Fahrenheit
  } else if (type == 'K') {
    value = averageTemperature + 273.15; // Kelvin
  } else {
    value = averageTemperature; // Celsius
  }
  return value;
}

مشروع حي/عرض توضيحي

يعرض الفيديو وظيفة المستشعر (في الفيديو عند 07:34). يعرض المراقب التسلسلي قراءات درجة الحرارة والرطوبة. كما يوضح المقدم كيف يمكن للكود تفعيل إجراءات استنادًا إلى عتبات درجة الحرارة (في الفيديو عند 06:45).

فصول

  • [00:00] مقدمة
  • [00:22] نظرة عامة على المستشعر
  • [01:22] مراجعة ورقة البيانات
  • [02:28] الأسلاك
  • [03:03] تثبيت المكتبة
  • [04:05] شرح الكود (الجزء 1)
  • [08:33] شرح الكود (الجزء 2)
  • [07:34] عرض مباشر

الصور

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
503-Lesson 42: Using an LM35 Temperature Sensor with Arduino
اللغة: C++
تم النسخ!

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

الموارد والمراجع

ملفات📁

ملفات أخرى