هذا الدليل جزء من: مستشعر رقمي للرطوبة النسبية ودرجة الحرارة HTU21D
مقاطع فيديو متعلقة بمستشعر الرطوبة النسبية ودرجة الحرارة الرقمي HTU21D. روابط لمقاطع فيديو أخرى موجودة أسفل هذه المقالة.
الدرس 36: استخدام مستشعر الحرارة HTU21D مع شاشة LCD دورة خطوة بخطوة لأردوينو
يعتبر حساس الحرارة والرطوبة HTU21D خيارًا شائعًا للعديد من مشاريع Arduino نظرًا لسهولة استخدامه ودقته. في هذا الدرس، سنقوم ببناء مشروع بسيط يقرأ بيانات الحرارة والرطوبة من الحسّاس ويعرضها على شاشة LCD. بنهاية هذا الدليل، سيكون لديك إعداد يعمل يعرض باستمرار درجة الحرارة بالدرجات المئوية والفهرنهايت والكلفن، بالإضافة إلى نسبة الرطوبة النسبية. لمزيد من التوضيح، يمكنك الرجوع إلى الفيديو (في الفيديو عند :ss).
شرح الأجهزة
المكون الرئيسي في هذا المشروع هو مستشعر الحرارة والرطوبة HTU21D، الذي يتواصل عبر I2C. يعمل هذا المستشعر ضمن نطاق جهد يتراوح بين 1.5 إلى 3.6 فولت، مما يجعله مناسبًا لأنظمة 3.3 فولت و5 فولت. يستهلك طاقة قليلة جدًا، عادةً فقط 0.02 ميكرو أمبير في حالة الخمول و450 ميكرو أمبير أثناء القياس. بالإضافة إلى HTU21D، سنستخدم أيضًا شاشة LCD، تحديدًا LCD1602 مع I2C. هذه الشاشة تتيح إخراج بيانات نصية بسهولة وتتطلب فقط دبابيسين للتواصل: SDA (خط البيانات) وSCL (خط الساعة). سيمكننا دمج هذه المكونات من إنشاء عرض معلوماتي لمراقبة مستويات الحرارة والرطوبة.
تفاصيل ورقة البيانات
| شركة التصنيع | تي إي كونكتيفيتي |
|---|---|
| رقم الجزء | HTU21D-F |
| جهد المنطق/المدخلات والمخرجات | 1.5 - 3.6 ف |
| جهد الإمداد | 3.3 فولت (متوسط) |
| تيار الخرج (متوسط) | ٠٫٠٢ ميكروأمبير (خامل)، ٤٥٠ ميكروأمبير (قياس) |
| مجموعة درجات الحرارة | -40 إلى +125 درجة مئوية |
| نطاق الرطوبة | 0 إلى 100 ٪ رطوبة نسبية |
| دقة (درجة الحرارة) | 0.01 درجة مئوية |
| الدقة (الرطوبة) | 0.04 % رطوبة نسبية |
| حزمة | DFN-6 |
- استخدم مقاوم سحب لأعلى لخطوط SDA و SCL إذا لم تكن مدمجة.
- تأكد من توفير جهد مصدر الطاقة الصحيح لتفادي تلف المستشعر.
- الحفاظ على الأسلاك بشكل صحيح لمنع أخطاء الاتصال.
- تحقق من عنوان I2C إذا لم يستجب المستشعر.
- استخدم فترة تأخير بين القياسات لمنع تحميل المستشعر.
- تأكد من أن شاشة LCD متوافقة مع التواصل I2C.
تعليمات التوصيل
لربط مستشعر HTU21D وعرض LCD، ابدأ باتصالات الطاقة. قم بتوصيل الطرف الأيسر من HTU21D بمصدر الطاقة 3.3 فولت، والطرف الثاني (غالبًا أحمر) بالأرض. بعد ذلك، قم بتوصيل طرف SDA من HTU21D بالطرف التناظري A4 في الأردوينو، وطرف SCL بالطرف التناظري A5. بالنسبة لعرض LCD1602، قم بتوصيل الطرف VCC بنفس مصدر الطاقة 3.3 فولت، وقم بتوصيل الطرف GND بالأرض. يجب أن يتصل الطرف SDA في LCD أيضًا بـ A4، ويجب أن يتصل الطرف SCL بـ A5، مما يسمح لكلا المكونين بمشاركة ناقل I2C. تأكد من أن جميع الاتصالات آمنة لتسهيل الاتصال الصحيح بين الأردوينو والمستشعر والعرض.
أمثلة الشفرة وشرح الخطوات
الكود التالي يقوم بتهيئة مستشعر HTU21D وشاشة LCD. في دالة الإعداد، يتم تحضير شاشة LCD للاستخدام والتحقق من الاتصال بالمستشعر:
void setup() {
lcd.begin();
lcd.backlight();
if (!htu.begin()) {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("sensor missing");
while (1);
} else {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("Demo");
}
delay(2000);
}يتحقق هذا المقطع مما إذا كان المستشعر متصلاً بشكل صحيح. إذا لم يكن كذلك، فإنه يعرض رسالة خطأ على شاشة LCD ويتوقف البرنامج. إذا كان المستشعر يعمل، فإنه يعرض رسالة تجريبية لمدة ثانيتين. وظيفة الحلقة هي المكان الذي تحدث فيه القراءة الرئيسية والعرض. هنا، نستدعي دالة `lcdDisplay` لعرض درجة الحرارة بوحدات مختلفة:
void loop() {
lcd.clear(); // clear previous values from screen
lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');
lcdDisplay(0, 1, "Fahrenheit: ", 10, 1, getHTU('F'), 'd');
delay(5000);
}في هذه الحلقة، يتم مسح شاشة LCD، وعرض قراءة درجات الحرارة بالدرجات المئوية والفهرنهايت. يتم استدعاء دالة `getHTU` بالحرف 'C' للدرجات المئوية و'F' للفهرنهايت، على التوالي. أخيرًا، يتم تعريف دالة `getHTU` لقراءة درجة الحرارة أو الرطوبة بناءً على الحرف المدخل:
float getHTU(char type) {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
if(type =='F') {
return temp * 9/5 + 32; // convert to Fahrenheit
} else if(type =='K') {
return temp + 273.15; // convert to Kelvin
} else if(type =='H') {
return rel_hum; // return relative humidity
} else {
return temp; // return Celsius
}
}تقوم هذه الوظيفة بقراءة درجة الحرارة والرطوبة من المستشعر وتحويل درجة الحرارة إلى الوحدة المطلوبة. تأكد من مراجعة الشيفرة الكاملة التي تم تحميلها أسفل المقال للحصول على تفاصيل إضافية.
عرض / ماذا تتوقع
عند الانتهاء من توصيل الأسلاك وتحميل الكود، ينبغي أن ترى قيم درجة الحرارة والرطوبة تعرض على شاشة LCD. ستتحدث القراءات كل few seconds، تعكس الظروف الحالية. إذا قمت بتطبيق الحرارة على المستشعر، ينبغي أن تلاحظ ارتفاع درجة الحرارة بشكل متناسب، بينما ينبغي أن تنخفض الرطوبة قليلاً. كن حذرًا من الحد الأقصى لدرجة الحرارة للمستشعر؛ حيث أن تجاوز ذلك قد يؤدي إلى قراءات غير دقيقة أو فشل المستشعر (في الفيديو عند mm:ss).
طوابع الفيديو
- ٠٠:٠٠- مقدمة عن المشروع
- ١:١٥- تعليمات التوصيل
- 03:30- استعراض الشيفرة
- 10:00- عرض الإعداد
هذا الدليل هو جزء من: مستشعر رقمي للرطوبة النسبية ودرجة الحرارة HTU21D
- Lesson 35-1: Using the HTU21D Temperature Sensor
- الدرس 35-2: استخدام مستشعر درجة الحرارة HTU21D - كود مخصص
- الدرس 35: استخدام مستشعر درجة الحرارة HTU21D مع أردوينو
- استخدام حساسين إضافيين لقياس الرطوبة ودرجة الحرارة HTU21DF مع أردوينو
- عرض درجة الحرارة من HTU21D على شاشة LCD
- عرض درجة الحرارة من HTU21D كرسوم بيانية على شاشة LCD
- كيفية استخدام مستشعر الرطوبة ودرجة الحرارة HTU21DF مع أردوينو (الكود الأساسي)
- كيفية استخدام مستشعر الرطوبة ودرجة الحرارة HTU21DF مع Arduino (شفرة مخصصة)
الأشياء التي قد تحتاجها
-
أمازوناشترِ وحدة HTU21D من أمازونamzn.to
-
إي بايشراء HTU21D من eBayebay.us
-
علي إكسبريساشترِ HTU21D أو SHT21 من علي إكسبريسs.click.aliexpress.com
الموارد والمراجع
-
خارجيفرق بين HTU21DF و HTU21D (صورة)robojax.com
-
خارجيمكتبة Adafruit HTU21D (جيت هاب)github.com
ملفات📁
ورقة البيانات (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB