This tutorial is part of: Dareemaha Qoyaanka Dijital ah & Dareemaha Heerkulka HTU21D
Fiidiyowyo la xiriira Qalabka Dejisan ee Qoyaanka iyo Heerkulka HTU21D. Xiriiriyeyaasha fiidiyowyada kale waxay ku yaalliin maqaalkan hoose.
Casharka 35: Isticmaalka Sensor-ka Heerkulka ee HTU21D ee Arduino
Cashar 35: Isticmaalka Dareemaha Heerkulka HTU21D ee Arduino
Casharkan, waxaan baran doonaa sida loo isku xiro dareemaha heerkulka HTU21D ee Arduino. Dareemahan wuxuu u oggolaanayaa cabbirka saxda ah ee heerkulka iyo qoyaanka iyadoo la isticmaalayo isgaarsiinta I2C, taas oo ka dhigeysa mid fudud in lagu dhex daro mashaariic kala duwan. Marka aad dhammayso casharkan, waxaad awoodi doontaa inaad akhrido qiimaha heerkulka iyo qoyaanka ee dareemaha oo aad ku muujiso Kormeeraha Serial.

Mashruucan, waxaan isticmaali doonnaa maktabadda Adafruit, taas oo bixisa hab toos ah oo lagula xiriiro dareemaha HTU21D. Waxaad baran doontaa sida loo habeeyo fiilooyinka, loo qoro koodhka, iyo inaad fahanto aqoonsiyada muhiimka ah ee lagu isticmaalo barnaamijka. Haddii aad u baahan tahay caddayn qayb kasta oo ka mid ah habka, waxaad tixraaci kartaa fiidiyowga (fiidiyowga 0:00).
Qalabka La Sharaxay
HTU21D waa dareeme qoyaanka iyo heerkulka dhijitaalka ah. Wuxuu ku shaqeeyaa kala duwanaanshaha danab ee 1.5V ilaa 3.6V, taas oo ka dhigaysa mid ku habboon nidaamyada 3.3V iyo 5V labadaba. Dareemuhu wuxuu kula xiriiraa I2C, isagoo u baahan kaliya laba fiilo oo xog lagu kala beddelo: Khadka Xogta Taxanaha ah (SDA) iyo Khadka Saacadda Taxanaha ah (SCL). Dareemuhu wuxuu leeyahay isticmaalka koronto oo aad u hooseeya, isagoo qaadanaya kaliya 0.02 µA marka uu fadhiyo iyo ilaa 450 µA inta lagu jiro cabbirada.
Marka lagu daro dareemaha, waxaad u baahan doontaa looxa Arduino iyo fiilooyin jumper ah si aad wax walba isugu xirto. Xiridda waa mid fudud: sii dareemaha koronto, ku xir khadadka xogta, waad diyaar tahay. Hubso in xiriddaadu ay adag tahay si looga fogaado dhibaatooyinka isgaarsiinta.
Faahfaahinta Xaashida Xogta
| Soo saaraha | TE Connectivity |
|---|---|
| Nambarka qaybta | HTU21D-F |
| Danabka Logic/IO | 1.5 - 3.6 V |
| Danabka sahayda | 3.3 V |
| Korontada soo baxa (caadiga ah) | 0.02 µA (fadhiid), 450 µA (shaqo) |
| Kala duwanaanshaha heerkulka | -40 ilaa +125 °C |
| Kala duwanaanshaha qoyaanka | 0 ilaa 100 % RH |
| Xallinta (heerkulka) | 0.01 °C |
| Xallinta (qoyaanka) | 0.04 % RH |
| Baakad | DFN-8 |
- Hubso in danabka sahaydu uu sax yahay (1.5 - 3.6 V) si looga fogaado waxyeelada.
- Isticmaal resistors-ka kor u jiidaya ee khadadka SDA iyo SCL haddii loo baahdo.
- Ka dhig fiilooyinka gaagaaban si loo yareeyo buuqa isgaarsiinta I2C.
- Si taxadar leh u hubso xiridda si looga fogaado gelinta sabaysan.
- Isticmaal kulayl-qaboojiye haddii aad ku shaqeyneyso meel u dhow xadka ugu sarreeya ee heerkulka.
Tilmaamaha Xiridda

Si aad ugu xirto dareemaha HTU21D ee Arduino-kaaga, ku bilow adigoo ku xiraaya biinanka korontada. Ku xir biinka bidix ee dareemaha ee soo saarista 3.3V ee Arduino. Biinka labaad waa in lagu xiraa dhulka (GND). Marka xigta, ku xir biinka SDA ee dareemaha ee biinka A4 ee Arduino, kaas oo u shaqeeya sidii khadka xogta ee isgaarsiinta I2C. Ugu dambeyntii, ku xir biinka SCL ee dareemaha ee biinka A5 ee Arduino, kaas oo u shaqeeya sidii khadka saacadda. Hubso in dhammaan xiridda ay adag tahay si loo ilaaliyo isgaarsiin lagu kalsoonaan karo.
Haddii aad isticmaalayso loox kale, biinanka SDA iyo SCL way kala duwanaan karaan, marka hubso qeexitaannada looxaaga. Fiidiyowga, ikhtiyaarrada kale ee xiridda ayaa si kooban looga hadlay (fiidiyowga 1:30).
Tusaalooyinka Koodhka & Sharaxaadda
Hadda waxaan eegi doonnaa koodhka isku xira dareemaha HTU21D. Marka hore, waxaan u baahanahay inaan ku darro maktabadaha lagama maarmaanka ah ee isgaarsiinta I2C iyo dareemaha HTU21D. Qaybta soo socota waxay muujinaysaa shaqada setup:
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
Halkan, waxaan bilaabaynaa Kormeeraha Serial heerka baud ee 9600. Kadibna waxaan isku daynaa inaan bilawno dareemaha iyadoo la isticmaalayo htu.begin(). Haddii dareemaha la heli waayo, barnaamijku wuxuu daabici doonaa farriin qalad ah oo wuxuu istaagi doonaa.
Marka xigta, waxaan si joogto ah u akhrinaynaa qiimaha heerkulka iyo qoyaanka shaqada loop:
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);
}
Loop-kan, waxaan akhrinaynaa heerkulka iyadoo la isticmaalayo htu.readTemperature() oo waxaan ku kaydinaynaa doorsoome temp. Sidoo kale, waxaan akhrinaynaa qoyaanka iyadoo la isticmaalayo htu.readHumidity(). Qiimaha ayaa markaas lagu daabacaa Kormeeraha Serial kulli 500 milliseken.
Hab habaysan oo dheeri ah, waxaad qeexi kartaa shaqooyin si ay u maareeyaan akhrinta. Koodhka buuxa ayaa hoos ku soo dejin doona maqaalkan, isagoo ku siinaya gelitaan buuxda oo dhammaan shaqooyinka laga hadlay.
Muuujin / Waxa Laga Filan Karo
Markaad soo geliso koodhka Arduino-kaaga oo aad furto Kormeeraha Serial, waxaad arki doontaa akhrin joogto ah oo heerkulka iyo qoyaanka. Qiimaha ayaa cusboonaysiin doona kulli nus ilbiriqsi. Haddii dareemuhu ogaado heerkul ka sarreeya xadkiisa ugu sarreeya ee 125 °C, waxaa laga yaabaa inuu muujiyo eber ama qiimo qalad ah. Tani waa qodob qalad ah oo caadi ah oo lagu ilaaliyo inta lagu jiro tijaabinta (fiidiyowga 4:30).
Waqtiyada Fiidiyowga
- [00:00] Hordhac
- [00:22] Dulmarka Dareemaha
- [01:22] Dib-u-eegista Xaashida Xogta
- [02:28] Xiridda
- [03:03] Rakibaadda Maktabadda
- [04:05] Sharaxaadda Koodhka (Qaybta 1)
- [08:33] Sharaxaadda Koodhka (Qaybta 2)
- [07:34] Muujin Toos ah
This tutorial is part of: Dareemaha Qoyaanka Dijital ah & Dareemaha Heerkulka 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);
}
Waad u baahan tahay
-
Amaazon
-
eBayPurchase HTU21D from eBayebay.us
-
AliExpressPurchase HTU21D or SHT21 from AliExpresss.click.aliexpress.com
Kheyraadka & Tixraacyada
-
DibeddaAdafruit HTU21D Library (GitHub)github.com
-
DibeddaDifference between HTU21DF and HTU21D (image)robojax.com
-
Dibedda
-
DibeddaHTU21D Datasheet (PDF)cdn-shop.adafruit.com
Faylasha📁
Arduino Libraries (zip)
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB