الدرس 35-2: استخدام مستشعر درجة الحرارة HTU21D - كود مخصص

الدرس 35-2: استخدام مستشعر درجة الحرارة HTU21D - كود مخصص

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

HTU21D module

قبل أن نغوص في الأسلاك والبرمجة، من الضروري فهم المكونات المعنية. يتطلب حساس HTU21D اتصالات بسيطة: الطاقة، والأرضي، وسلكين I2C لنقل البيانات. تجعل هذه البساطة منه خيارًا ممتازًا لمجموعة متنوعة من التطبيقات، بدءًا من محطات الطقس إلى أجهزة المنزل الذكي. للحصول على دليل بصري، يرجى الرجوع إلى الفيديو عند النقطة الزمنية :45.

شرح الأجهزة

المكون الرئيسي في هذا المشروع هو مستشعر HTU21D، الذي يقيس درجة الحرارة والرطوبة. يمكن لهذا المستشعر العمل بجهود تتراوح من 1.5 فولت إلى 3.6 فولت، مما يجعله متعدد الاستخدامات لتطبيقات مختلفة. يوفر قراءات عالية الدقة، حيث تتراوح قياسات درجة الحرارة من -40 درجة مئوية إلى +125 درجة مئوية وقياسات الرطوبة بدقة 0.04%.

بالإضافة إلى ذلك، يستخدم المستشعر اتصال I2C، الذي يتطلب سلكين: SDA (خط البيانات) وSCL (خط الساعة). هذا يسمح بالتكامل بسهولة مع الأردوينو ووحدات التحكم الدقيقة الأخرى دون الحاجة لتوصيلات معقدة. تسهل مكتبة Adafruit التفاعل مع المستشعر، حيث تتولى استرداد البيانات وبروتوكولات الاتصال بسلاسة.

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

صانعتي إي كونيكتيفيتي
رقم الجزءHTU21D-F
جهد المنطق/إدخال/إخراج١.٥ - ٣.٦ ف
جهد الإمداد3.3 فولت
الاستهلاك الحالي (الخمول)٠٫٠٢ ميكرو أمبير (نموذجي)
الاستهلاك الحالي (الفعّال)٤٥٠ ميكروأمبير (تقريباً)
نطاق درجة الحرارة-40 إلى +125 درجة مئوية
نطاق الرطوبة0 إلى 100 %رطوبة نسبية
قرار0.04 %RH; 0.01 °C
حزمة6-pin DFN

  • تأكد من توفير مصدر طاقة صحيح لتجنب تلف المستشعر.
  • استخدم المقاومات السحب على خطوط SDA و SCL إذا لم تكن مدمجة.
  • تأكد من أن توصيلات المستشعر قصيرة لتقليل الضوضاء.
  • راقب الجهد أثناء التشغيل للحفاظ على الاستقرار.
  • نظر في استخدام مكثف لفصل الدوائر بالقرب من دبابيس الطاقة.

تعليمات التوصيل

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

لربط حساس درجة الحرارة HTU21D، ابدأ بتوصيل الطاقة والأرضي. قم بتوصيل السلك الأيسر للحساس بمصدر 3.3V، مع التأكد من قدرته على تحمل الجهد المطلوب. يجب توصيل السلك الثاني، الذي يكون عادةً ملوناً بالأحمر، بالأرضي.

التالي، قم بتوصيل دبوس SDA من الحساس بالدبوسA4على لوحة Arduino، التي تعمل كخط بيانات للتواصل عبر I2C. ثم، قم بتوصيل دبوس SCL إلى الدبوسA5، التي تعمل كخط الزمن. تأكد من أن هذه الاتصالات آمنة، حيث يمكن أن تؤدي الأسلاك غير المثبتة إلى قراءات متقطعة أو فشل في التواصل مع المستشعر.

أمثلة على الكود وشرح تفصيلي

في الكود، نبدأ بإدراج المكتبات الضرورية وتهيئة المستشعر. السطرAdafruit_HTU21DF htu = Adafruit_HTU21DF();ينشئ مثيل لفئة المستشعر. في الـsetup()نبدأ الاتصال التسلسلي ونتحقق مما إذا كان المستشعر متصلاً بشكل صحيح.

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

يقوم هذا المقطع بالتحقق مما إذا كان المستشعر يعمل بشكل صحيح. إذا لم يكن كذلك، فإنه يطبع رسالة خطأ ويتوقف البرنامج. في الـloop()نحن نقرأ قيم درجات الحرارة والرطوبة بشكل مستمر.

void loop() {
    Serial.print(getHTU('C'));
    Serial.print("C");
    Serial.print(getHTU('H'));
    Serial.println("%");
    delay(1000);
}

هنا، الوظيفةgetHTU()يتم استدعاؤه بمعلمات مختلفة لاسترجاع درجة الحرارة بالدرجة المئوية والرطوبة. الضمان يضمن أخذ القراءات كل ثانية، مما يوفر مخرجات سلسة على شاشة التسلسلات. الكود الكامل متاح للرجوع إليه أدناه المقال.

عرض / ماذا تتوقع

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

كن حذرًا من حدود المستشعر؛ إذا تجاوزت درجة الحرارة 125 درجة مئوية، فقد يعطي قراءة غير صحيحة أو يظهر صفرًا. تأكد دائمًا من أن الاتصالات الخاصة بك آمنة وأن المستشعر يعمل بالطاقة بشكل صحيح لتجنب أي مشاكل أثناء التشغيل.

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

  • 00:00مقدمة
  • ٠٣:٤٥توصيل المستشعر
  • ٠٥:٣٠جولة في الكود
  • 10:15تظاهرة
  • 12:00استنتاج

الصور

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
513-Lesson 35: Using HTU21D Temperature Sensor | Arduino Step-by-Step Course
اللغة: C++
تم النسخ!

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

ملفات📁

ورقة البيانات (pdf)