این آموزش بخشی است از: سنسور رطوبت و دمای نسبی دیجیتال HTU21D
ویدیوهای مربوط به سنسور رطوبت و دمای نسبی دیجیتال HTU21D. لینک سایر ویدیوها در زیر این مقاله قرار دارد.
درس 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
- درس 35-1: استفاده از حساس(حس کننده) دما HTU21D
- درس 35-2: استفاده از حساس(حس کننده) دما HTU21D - شِفر (کود) سفارشی
- درس ۳۶: استفاده از حساس(حس کننده) دما HTU21D با یک LCD در دوره آموزشی مرحله به مرحله آردوینو
- استفاده از دو حساس(حس کننده) رطوبت و دما HTU21DF دیگر با آردوینو
- نمایش دما از یک HTU21D بر روی LCD
- نمایش دما از یک HTU21D به صورت نمودار میلهای بر روی یک LCD
- نحوه استفاده از حساس(حس کننده) رطوبت و دما HTU21DF با آردوینو (شِفر (کود) پایه)
- نحوه استفاده از حساس(حس کننده) رطوبت و دما HTU21DF با آردوینو (شِفر (کود) سفارشی)
++
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These module use I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test for two modules");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//get value for sensor 1
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
//get value for sensor 2
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
//get value for sensor 3
float temp3 = htu3.readTemperature();
float rel_hum3 = htu3.readHumidity();
//print values for sensor 1
Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
//print values for sensor 2
Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
//print values for sensor 3
//Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
//Serial.print("\t\t");
//Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");
delay(500);
}
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
-
ایبیHTU21D را از eBay خریداری کنیدebay.us
-
علیاکسپرسHTU21D یا SHT21 را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
منابع و مراجع
-
خارجیبرگ وبورق HTU21D (PDF)cdn-shop.adafruit.com
-
خارجیتفاوت بین HTU21DF و HTU21D (تصویر)robojax.com
-
خارجیکتابخانه Adafruit HTU21D (گیتهاب)github.com
فایلها📁
کتابخانههای آردوینو (zip)
-
کتابخانه Adafruit HTU21DF (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB