Mafunzo haya ni sehemu ya: Kitambuzi cha Unyevu na Halijoto cha Dijitali HTU21D
Video zinazohusiana na Kipima Unyevu na Halijoto cha Dijitali HTU21D. Viungo vya video zingine viko chini ya makala haya.
Somo la 35-2: Kutumia Kihisi cha Joto cha HTU21D Msimbo Maalum
Katika mafunzo haya, tutachunguza jinsi ya kutumia kihisi cha joto cha HTU21D na Arduino kupima joto na unyevu. HTU21D ni kihisi cha kuaminika, chenye nguvu ya chini ambacho huwasiliana kupitia I2C, na kurahisisha kuunganishwa katika miradi yako. Kufikia mwisho wa somo hili, utakuwa na msimbo maalum unaofanya kazi ambao unasoma joto katika Celsius, Fahrenheit, na Kelvin, pamoja na unyevu wa jamaa.

Kabla ya kuingia kwenye uunganishaji na msimbo, ni muhimu kuelewa vipengele vinavyohusika. Kihisi cha HTU21D kinahitaji miunganisho michache: nguvu, ardhi, na nyaya mbili za I2C kwa uhamishaji wa data. Urahisi huu hufanya kuwa chaguo bora kwa matumizi mbalimbali, kutoka vituo vya hali ya hewa hadi vifaa vya nyumbani mahiri. Kwa mwongozo wa kuona, rejea video kwenye alama ya muda 03:45.
Vifaa Vimeelezwa
Kipengele kikuu katika mradi huu ni kihisi cha HTU21D, ambacho hupima joto na unyevu. Kihisi hiki kinaweza kufanya kazi kwa voltages kutoka 1.5V hadi 3.6V, na kukifanya kuwa na matumizi mengi kwa programu tofauti. Kinatoa usomaji wa mwonekano wa juu, na vipimo vya joto kutoka -40°C hadi +125°C na usomaji wa unyevu kwa mwonekano wa 0.04%.
Zaidi ya hayo, kihisi kinatumia mawasiliano ya I2C, ambayo yanahitaji pini mbili: SDA (mstari wa data) na SCL (mstari wa saa). Hii inaruhusu uunganishaji rahisi na Arduino na microcontrollers nyingine bila hitaji la nyaya ngumu. Maktaba ya Adafruit hurahisisha mwingiliano na kihisi, ikishughulikia upatikanaji wa data na itifaki za mawasiliano kwa urahisi.
Maelezo ya Datasheet
| Mtengenezaji | TE Connectivity |
|---|---|
| Nambari ya sehemu | HTU21D-F |
| Voltage ya Logic/IO | 1.5 – 3.6 V |
| Voltage ya usambazaji | 3.3 V |
| Matumizi ya sasa (kutofanya kazi) | 0.02 µA (typ.) |
| Matumizi ya sasa (kufanya kazi) | 450 µA (typ.) |
| Kiwango cha joto | -40 hadi +125 °C |
| Kiwango cha unyevu | 0 hadi 100 %RH |
| Mwonekano | 0.04 %RH; 0.01 °C |
| Kifurushi | 6-pin DFN |
- Hakikisha usambazaji sahihi wa nguvu ili kuepuka uharibifu wa kihisi.
- Tumia resistors za kuvuta-juu kwenye mistari ya SDA na SCL ikiwa hazijaunganishwa.
- Weka miunganisho ya kihisi fupi ili kupunguza kelele.
- Fuatilia voltage wakati wa operesheni ili kudumisha utulivu.
- Fikiria kutumia capacitor kwa decoupling karibu na pini za nguvu.
Maagizo ya Uunganishaji

Ili kuunganisha kihisi cha joto cha HTU21D, anza kwa kuunganisha nguvu na ardhi. Unganisha pini ya kushoto ya kihisi kwenye chanzo cha 3.3V, ukihakikisha inaweza kushughulikia voltage inayohitajika. Pini ya pili, ambayo kwa kawaida imewekwa alama nyekundu, inapaswa kwenda kwenye ardhi.
Ifuatayo, unganisha pini ya SDA ya kihisi kwenye pini A4 kwenye Arduino, ambayo hutumika kama mstari wa data kwa mawasiliano ya I2C. Kisha, unganisha pini ya SCL kwenye pini A5, ambayo hufanya kama mstari wa saa. Hakikisha miunganisho hii ni salama, kwani nyaya zisizo imara zinaweza kusababisha usomaji wa mara kwa mara au kushindwa kuwasiliana na kihisi.
Mifano ya Msimbo & Mwongozo
Katika msimbo, tunaanza kwa kujumuisha maktaba muhimu na kuanzisha kihisi. Mstari Adafruit_HTU21DF htu = Adafruit_HTU21DF(); huunda mfano wa darasa la kihisi. Katika kazi ya setup(), tunaanza mawasiliano ya serial na kuangalia ikiwa kihisi kimeunganishwa vizuri.
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
Kipande hiki kinaangalia ikiwa kihisi kinafanya kazi vizuri. Ikiwa sivyo, kinachapisha ujumbe wa hitilafu na kusimamisha programu. Katika kazi ya loop(), tunasoma maadili ya joto na unyevu kila wakati.
void loop() {
Serial.print(getHTU('C'));
Serial.print("C");
Serial.print(getHTU('H'));
Serial.println("%");
delay(1000);
}
Hapa, kazi getHTU() inaitwa na vigezo tofauti kupata joto katika Celsius na unyevu. Kuchelewesha kunahakikisha usomaji unachukuliwa kila sekunde, ikitoa matokeo laini kwenye kichunguzi cha serial. Msimbo kamili unapatikana kwa marejeo chini ya makala.
Maonyesho / Nini cha Kutarajia
Mara tu kila kitu kimeunganishwa vizuri na msimbo umepakiwa, unapaswa kuona usomaji wa joto na unyevu ukichapishwa kwenye kichunguzi cha serial. Joto litaonyeshwa katika Celsius, ikifuatiwa na asilimia ya unyevu inayolingana. Ikiwa utaweka joto kwenye kihisi, unapaswa kuona joto likiongezeka ipasavyo (katika video saa 10:15).
Kuwa makini na mipaka ya kihisi; ikiwa joto linazidi 125°C, linaweza kurudisha usomaji usio sahihi au kuonyesha sifuri. Hakikisha miunganisho yako ni salama na kihisi kinatumiwa nguvu vizuri ili kuepuka matatizo yoyote wakati wa operesheni.
Alama za Muda za Video
- 00:00 Utangulizi
- 03:45 Kuunganisha Kihisi
- 05:30 Mwongozo wa Msimbo
- 10:15 Maonyesho
- 12:00 Hitimisho
Mafunzo haya ni sehemu ya: Kitambuzi cha Unyevu na Halijoto cha Dijitali HTU21D
- Somo la 35-1: Kutumia Kihisi cha Joto cha HTU21D
- Somo la 35: Kutumia Kihisi cha Joto cha HTU21D na Arduino
- Somo la 36: Kutumia Kihisi cha Joto cha HTU21D na LCD Kozi ya Hatua kwa Hatua ya Arduino
- 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)
/*
* Robojax Arduino Step-by-Step Course
* Part 4: Temperature Sensors
* Lesson 35: HTU21D Temperature Sensor Custom code
* Written/Updated by Ahmad Shamshiri on July 13, 2019
* in Ajax, Ontario, Canada
Please watch video instructions here https://youtu.be/LyA0yAKlf9E
This code is available at http://robojax.com/course1/?vid=lecture35
with over 100 lectures free on YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339
If you found this tutorial helpful, please support me so I can continue creating.
Make a donation using PayPal http://robojax.com/L/?id=64
* Code is available at http://robojax.com/learn/arduino
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*
**************************************************
*
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 displays 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 htu = Adafruit_HTU21DF();
void setup() {
//Get the code for the course: http://robojax.com/L/?id=339
Serial.begin(9600);
Serial.println("Robojax.com");
Serial.println("HTU21D-F test");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//Get the code for the course: http://robojax.com/L/?id=339
Serial.print(getHTU('C'));
printDegree();
Serial.println("C");
Serial.print(getHTU('F'));
printDegree();
Serial.println("F");
Serial.print(getHTU('K'));
Serial.println("K");
Serial.println(" ");
Serial.print("Humidity:");
Serial.print(getHTU('H'));
Serial.println("%");
if(getHTU('C') <81)
{
//digitalWrite(5, LOW);
}
delay(1000);
}
/*
* @brief returns temperature or relative humidity
* @param "type" is character
* C = Celsius
* K = Kelvin
* F = Fahrenheit
* H = Humidity
* @return returns one of the values above
* Usage: to get Fahrenheit type: getHTU('F')
* to print it on serial monitor Serial.println(getHTU('F'));
* Written by Ahmad Shamshiri on July 13, 2019
* in Ajax, Ontario, Canada
* www.Robojax.com
*/
float getHTU(char type)
{
//Get the code for the course: http://robojax.com/L/?id=339
float value;
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
if(type =='F')
{
value = temp *9/5 + 32;//convert to Fahrenheit
}else if(type =='K')
{
value = temp + 273.15;//convert to Kelvin
}else if(type =='H')
{
value = rel_hum;//return relative humidity
}else{
value = temp;// return Celsius
}
return value;
}//
/*
* @brief prints degree symbol on serial monitor
* @param none
* @return returns nothing
* Written by Ahmad Shamshiri on July 13, 2019
* for Robojax Tutorial Robojax.com
*/
void printDegree()
{
Serial.print("\xC2");
Serial.print("\xB0");
}
Tänker att du kanske behöver
-
Amazon
-
eBayPurchase HTU21D from eBayebay.us
-
AliExpressPurchase HTU21D or SHT21 from AliExpresss.click.aliexpress.com
Resurser och referenser
-
Extern.Adafruit HTU21D Library (GitHub)github.com
-
Extern.Difference between HTU21DF and HTU21D (image)robojax.com
-
Extern.
-
Extern.HTU21D Datasheet (PDF)cdn-shop.adafruit.com
Filer📁
Datablad (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB