درس 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++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

سایر فایل‌ها