درس 35: استفاده از حساس(حس کننده) دمای HTU21D با آردوینو
این پروژه شما را در استفاده از یک آردوینو برای خواندن دادههای دما و رطوبت از حساس(حس کننده) HTU21D-F راهنمایی میکند. این حساس(حس کننده) ارزان و بهطور گسترده در دسترس است و آن را برای انواع پروژهها ایدهآل میسازد. این حساس(حس کننده) دادهها را از طریق I2C، یک پروتکل ارتباطی دیجیتال رایج، خروجی میدهد. یادگیری نحوهٔ استفاده از این حساس(حس کننده) و I2C امکانات زیادی را برای پروژههای شما باز خواهد کرد.

کاربردهای عملی:
- ساخت یک مانیتور محیطی برای خانه هوشمند
- ساخت یک ایستگاه هواشناسی
- توسعه یک محفظه با کنترل شرایط محیطی برای تجهیزات الکترونیکی حساس
- پایش دما و رطوبت در گلخانه یا تراریوم
سختافزار/قطعات
به اجزای زیر نیاز خواهید داشت:
- برد آردوینو (مثلاً Uno, Nano)
- حساس(حس کننده) دما و رطوبت HTU21D-F (در ویدیو، در 00:22)
- سیمهای اتصال
- بردبورد (اختیاری، اما توصیهشده)
راهنمای سیمکشی
سیمکشی ساده است. حساس(حس کننده) را به آردوینو بهصورت زیر وصل کنید (در ویدئو در 02:28):
- VCC حساس(حس کننده) به 3.3V آردوینو
- پایه GND حساس(حس کننده) به پایه GND آردوینو
- پایه SDA حساس(حس کننده) به A4 آردوینو
- SCL حساس(حس کننده) به پایه A5 آردوینو

توضیح شِفر (کود)
شِفر (کود) ارائهشده از کتابخانه 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] نمایش زنده
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
منابع و مراجع
-
خارجیبرگه مشخصات HTU21D (PDF)cdn-shop.adafruit.com
-
خارجیکتابخانه Adafruit HTU21D (گیتهاب)github.com
فایلها📁
سایر فایلها
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip