This tutorial is part of: Digital Relative Humidity & Temperature Sensor HTU21D
Videos related to Digital Relative Humidity & Temperature Sensor HTU21D. Links to other videos are below this article.
لومړی ۳۵: د HTU21D تودوخې سینسر کارول د آردوینو سره
لوست ۳۵: د HTU21D تودوخې سینسر د Arduino سره کارول
په دې لوست کې به موږ زده کړو چې څنګه د HTU21D تودوخې سینسر د Arduino سره ونښلوو. دا سینسر د I2C اړیکو په کارولو سره د تودوخې او رطوبت دقیق اندازه کولو اجازه ورکوي، چې دا په بېلابېلو پروژو کې د یوځای کولو لپاره اسانه کوي. د دې لوست په پای کې به تاسو وکولای شئ چې د سینسر څخه د تودوخې او رطوبت ارزښتونه ولولئ او په سریال مانیټر کې یې ښکاره کړئ.

د دې پروژې لپاره به موږ د Adafruit کتابتون څخه کار واخلو، کوم چې د HTU21D سینسر سره د اړیکو لپاره یوه مستقیمه لار برابروي. تاسو به زده کړئ چې څنګه تارونه وتړئ، کوډ ولیکئ، او په پروګرام کې کارول شوي مهم پېژندونکي وپېژنئ. که تاسو د پروسې په هرې برخې کې روښانتیا ته اړتیا لرئ، تاسو کولای شئ ویډیو ته مراجعه وکړئ (په ویډیو کې په 0:00).
هارډویر تشریح شوی
HTU21D یو ډیجیټل رطوبت او تودوخې سینسر دی. دا د 1.5V څخه تر 3.6V پورې د ولټاژ په حد کې کار کوي، چې دا د 3.3V او 5V دواړو سیسټمونو لپاره مناسب کوي. سینسر د I2C له لارې اړیکه نیسي، چې د معلوماتو د لیږد لپاره یوازې دوه تارونو ته اړتیا لري: سریال ډیټا لاین (SDA) او سریال کلاک لاین (SCL). سینسر ډېر ټیټ بریښنا مصرف لري، چې کله بې کاره وي یوازې 0.02 µA او د اندازې په وخت کې تر 450 µA پورې راکاږي.
د سینسر سربېره، تاسو به د Arduino بورډ او ځینې جمپر تارونو ته اړتیا ولرئ ترڅو هرڅه ونښلوئ. اړیکې ساده دي: سینسر ته بریښنا ورکړئ، د ډیټا لاینونه ونښلوئ، او تاسو چمتو یاست. ډاډ ترلاسه کړئ چې ستاسو اړیکې خوندي دي ترڅو د اړیکو کومې ستونزې څخه مخنیوی وشي.
ډیټاشیټ تفصیلات
| جوړونکی | TE Connectivity |
|---|---|
| د پرزې شمېره | HTU21D-F |
| منطق/IO ولټاژ | 1.5 - 3.6 V |
| د بریښنا رسولو ولټاژ | 3.3 V |
| د تولید جریان (عادي) | 0.02 µA (بې کاره)، 450 µA (فعال) |
| د تودوخې حد | -40 څخه تر +125 °C |
| د رطوبت حد | 0 څخه تر 100 % RH |
| ریزولوشن (تودوخه) | 0.01 °C |
| ریزولوشن (رطوبت) | 0.04 % RH |
| بسته بندي | DFN-8 |
- د زیان څخه مخنیوي لپاره د بریښنا رسولو مناسب ولټاژ (1.5 - 3.6 V) ډاډمن کړئ.
- که اړتیا وي په SDA او SCL لاینونو کې پل-اپ ریزسټرونه وکاروئ.
- د I2C اړیکو کې د شور کمولو لپاره تارونه لنډ وساتئ.
- د تېروونکو انپټونو څخه مخنیوي لپاره اړیکې په دقت سره وڅیړئ.
- که د تودوخې اعظمي حد ته نږدې کار کوئ، د تودوخې سنک وکاروئ.
د تارونو د نښلولو لارښوونې

د HTU21D سینسر خپل Arduino سره د نښلولو لپاره، لومړی د بریښنا پنونه ونښلوئ. د سینسر کیڼ پن د Arduino په 3.3V آوټ پوټ سره ونښلوئ. دوهم پن باید ځمکې (GND) سره ونښلول شي. بیا، د سینسر SDA پن د Arduino د A4 پن سره ونښلوئ، کوم چې د I2C اړیکو لپاره د ډیټا لاین په توګه کار کوي. په پای کې، د سینسر SCL پن د Arduino په A5 پن سره ونښلوئ، کوم چې د کلاک لاین په توګه کار کوي. ډاډ ترلاسه کړئ چې ټولې اړیکې خوندي دي ترڅو د باوري اړیکو ساتنه وشي.
که تاسو بله بورډ کاروئ، د SDA او SCL پنونه ممکن توپیر ولري، نو د خپل بورډ مشخصات وګورئ. په ویډیو کې، د تارونو د نښلولو بدیل اختیارونه په لنډه توګه بحث شوي دي (په ویډیو کې په 1:30).
د کوډ مثالونه او تفصیل
موږ به اوس هغه کوډ وګورو چې د HTU21D سینسر سره اړیکه نیسي. لومړی، موږ اړتیا لرو چې د I2C اړیکو او HTU21D سینسر لپاره اړین کتابتونونه شامل کړو. لاندې اقتباس د سیټ اپ فنکشن ښیي:
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
دلته، موږ سریال مانیټر د 9600 د بوډ نرخ سره پیل کوو. بیا موږ د htu.begin() سره د سینسر د پیل کولو هڅه کوو. که سینسر ونه موندل شي، پروګرام به د تېروتنې پیغام چاپ کړي او ودریږي.
بیا، موږ په لوپ فنکشن کې په دوامداره توګه د تودوخې او رطوبت ارزښتونه لوستل کوو:
void loop() {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
Serial.print("Temperature: "); Serial.print(temp); Serial.println(" C");
Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
delay(500);
}
په دې لوپ کې، موږ د htu.readTemperature() په کارولو سره تودوخه لوستو او په temp متغیر کې یې ذخیره کوو. په ورته ډول، موږ د htu.readHumidity() سره رطوبت لوستو. ارزښتونه بیا په هر 500 ملی ثانیه کې سریال مانیټر ته چاپ کیږي.
د ډېر منظم چلند لپاره، تاسو کولای شئ د لوستلو د سمبالولو لپاره فنکشنونه تعریف کړئ. بشپړ کوډ به د دې مقالې لاندې بار شي، چې تاسو ته د بحث شویو ټولو فعالیتونو بشپړ لاسرسی درکوي.
ښکارونه / څه تمه وکړو
کله چې تاسو کوډ خپل Arduino ته پورته کړئ او سریال مانیټر خلاص کړئ، تاسو باید د تودوخې او رطوبت دوامداره لوستل وګورئ. ارزښتونه به په هر نیم ثانیه کې تازه شي. که سینسر د خپل اعظمي حد 125 °C څخه پورته تودوخه کشف کړي، دا ممکن صفر یا غلط ارزښتونه ښکاره کړي. دا د ازموینې پر مهال یوه عامه ستونزه ده چې باید یې وګورئ (په ویډیو کې په 4:30).
د ویډیو وختونه
- [00:00] پېژندنه
- [00:22] د سینسر کتنه
- [01:22] د ډیټاشیټ بیاکتنه
- [02:28] تارونه نښلول
- [03:03] د کتابتون نصبول
- [04:05] د کوډ تشریح (برخه ۱)
- [08:33] د کوډ تشریح (برخه ۲)
- [07:34] ژوندۍ ښکارونه
This tutorial is part of: Digital Relative Humidity & Temperature Sensor HTU21D
- Lesson 35-1: Using the HTU21D Temperature Sensor
- Lesson 35-2: Using the HTU21D Temperature Sensor Custom Code
- Lesson 36: Using the HTU21D Temperature Sensor with an LCD Arduino Step-by-Step Course
- Using Two More HTU21DF Humidity and Temperature Sensors with Arduino
- Displaying Temperature from an HTU21D on an LCD
- Displaying Temperature from an HTU21D as a Bar Graph on an LCD
- How to Use the HTU21DF Humidity and Temperature Sensor with Arduino (Basic Code)
- How to Use the HTU21DF Humidity and Temperature Sensor with Arduino (Custom Code)
++
/***************************************************
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);
}
Things you might need
-
Amazon
-
eBayPurchase HTU21D from eBayebay.us
-
AliExpressPurchase HTU21D or SHT21 from AliExpresss.click.aliexpress.com
Resources & references
-
ExternalAdafruit HTU21D Library (GitHub)github.com
-
ExternalDifference between HTU21DF and HTU21D (image)robojax.com
-
External
-
ExternalHTU21D Datasheet (PDF)cdn-shop.adafruit.com
Files📁
Arduino Libraries (zip)
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB