ይህ ትምህርት አካል ነው: ዲጂታል አንጻራዊ የእርጥበት እና የሙቀት መጠን ዳሳሽ HTU21D
ከዲጂታል አንጻራዊ የእርጥበት እና የሙቀት መጠን ዳሳሽ HTU21D ጋር የተያያዙ ቪዲዮዎች። ወደ ሌሎች ቪዲዮዎች የሚወስዱ አገናኞች ከዚህ ጽሑፍ በታች ይገኛሉ።
ትምህርት 35-2፡ የHTU21D የሙቀት ዳሳሽ ብጁ ኮድ መጠቀም
በዚህ ትምህርት ውስጥ፣ የሙቀት እና እርጥበት መጠንን ለመለካት የHTU21D የሙቀት ዳሳሽ ከአርዱኖ ጋር እንዴት እንደምንጠቀም እንመረምራለን። HTU21D በI2C የሚገናኝ አስተማማኝ፣ አነስተኛ ኃይል የሚፈልግ ዳሳሽ ነው፣ ይህም ወደ ፕሮጀክቶችዎ ለማዋሃድ ቀላል ያደርገዋል። በዚህ ትምህርት መጨረሻ ላይ፣ የሙቀት መጠንን በሴልሺየስ፣ ፋራናይት እና ኬልቪን፣ እንዲሁም አንጻራዊ እርጥበትን የሚያነብ የሚሰራ ብጁ ኮድ ይኖርዎታል።

ወደ ሽቦ አያያዥነት እና ኮድ ከመግባታችን በፊት፣ የተካተቱትን ክፍሎች መረዳት አስፈላጊ ነው። የHTU21D ዳሳሽ አነስተኛ ግንኙነቶችን ይፈልጋል፡ ኃይል፣ መሬት እና ለውሂብ ማስተላለፊያ ሁለት የI2C ሽቦዎች። ይህ ቀላልነት ከአየር ሁኔታ ጣቢያዎች እስከ ብልጥ ቤት መሳሪያዎች ድረስ ለተለያዩ አፕሊኬሽኖች እጅግ በጣም ጥሩ ምርጫ ያደርገዋል። ለእይታ መመሪያ፣ ቪዲዮውን በጊዜ ምልክት 03:45 ይመልከቱ።
ሃርድዌር ተብራርቷል
በዚህ ፕሮጀክት ውስጥ ዋናው ክፍል የሙቀት እና እርጥበት የሚለካው HTU21D ዳሳሽ ነው። ይህ ዳሳሽ ከ1.5V እስከ 3.6V ባለው ቮልቴጅ መስራት ይችላል፣ ይህም ለተለያዩ አፕሊኬሽኖች ሁለገብ ያደርገዋል። ከ-40°C እስከ +125°C የሙቀት መጠን እና የ0.04% ጥራት ያለው የእርጥበት መጠን በመለካት ከፍተኛ ጥራት ያላቸውን ንባቦች ይሰጣል።
በተጨማሪም፣ ዳሳሹ ሁለት ፒኖችን የሚፈልግ I2C ግንኙነትን ይጠቀማል፡ SDA (የውሂብ መስመር) እና SCL (የሰዓት መስመር)። ይህ ውስብስብ ሽቦ ሳያስፈልግ ከአርዱኖ እና ከሌሎች ማይክሮ መቆጣጠሪያዎች ጋር ቀላል ውህደት ያስችላል። የAdafruit ቤተ-መጻሕፍት ከዳሳሹ ጋር ያለውን ግንኙነት ያቃልላል፣ የውሂብ ማውጣትን እና የግንኙነት ፕሮቶኮሎችን ያለችግር ይይዛል።
የዳታሼት ዝርዝሮች
| አምራች | TE Connectivity |
|---|---|
| የክፍል ቁጥር | HTU21D-F |
| የሎጂክ/IO ቮልቴጅ | 1.5 – 3.6 ቮ |
| የአቅርቦት ቮልቴጅ | 3.3 ቮ |
| የኤሌክትሪክ ፍጆታ (በእረፍት) | 0.02 µA (በተለምዶ) |
| የኤሌክትሪክ ፍጆታ (በስራ) | 450 µA (በተለምዶ) |
| የሙቀት መጠን ክልል | -40 እስከ +125 °C |
| የእርጥበት ክልል | 0 እስከ 100 %RH |
| ጥራት | 0.04 %RH; 0.01 °C |
| ፓኬጅ | 6-ፒን DFN |
- የዳሳሹን ጉዳት ለማስቀረት ትክክለኛ የኃይል አቅርቦትን ያረጋግጡ።
- በSDA እና SCL መስመሮች ላይ የፑል-አፕ ተከላካዮች ካልተዋሃዱ ይጠቀሙ።
- ጫጫታን ለመቀነስ የዳሳሽ ግንኙነቶችን አጭር ያድርጉ።
- መረጋጋትን ለመጠበቅ በስራ ጊዜ ቮልቴጁን ይቆጣጠሩ።
- በኃይል ፒኖች አጠገብ ለዲኮፕሊንግ ካፓሲተር መጠቀምን ያስቡ።
የሽቦ አያያዥነት መመሪያዎች

የHTU21D የሙቀት ዳሳሽን ለማገናኘት፣ በመጀመሪያ ኃይልን እና መሬትን በማገናኘት ይጀምሩ። የዳሳሹን የግራ ፒን ከ3.3V ምንጭ ጋር ያገናኙ፣ አስፈላጊውን ቮልቴጅ መያዝ መቻሉን ያረጋግጡ። ሁለተኛው ፒን፣ በተለምዶ በቀይ ምልክት የተደረገበት፣ ወደ መሬት መሄድ አለበት።
በመቀጠል፣ የዳሳሹን SDA ፒን በአርዱኖ ላይ ካለው ፒን A4 ጋር ያገናኙ፣ ይህም ለI2C ግንኙነት እንደ የውሂብ መስመር ያገለግላል። ከዚያም የSCL ፒንን ከፒን A5 ጋር ያገናኙ፣ ይህም እንደ የሰዓት መስመር ይሰራል። እነዚህ ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ፣ ምክንያቱም የላላ ሽቦዎች ወደ አልፎ አልፎ ንባቦች ወይም ከዳሳሹ ጋር የመገናኘት ችግር ሊያስከትሉ ይችላሉ።
የኮድ ምሳሌዎች እና ማብራሪያ
በኮዱ ውስጥ፣ አስፈላጊ የሆኑትን ቤተ-መጻሕፍት በማካተት እና ዳሳሹን በማስጀመር እንጀምራለን። መስመሩ Adafruit_HTU21DF htu = Adafruit_HTU21DF(); የዳሳሽ ክፍል ምሳሌ ይፈጥራል። በsetup() ተግባር ውስጥ፣ ተከታታይ ግንኙነትን እንጀምራለን እና ዳሳሹ በትክክል መገናኘቱን እንፈትሻለን።
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("ዳሳሹ አልተገኘም!");
while (1);
}
}
ይህ ቁራጭ ዳሳሹ በትክክል እየሰራ መሆኑን ይፈትሻል። ካልሆነ፣ የስህተት መልእክት ያትማል እና ፕሮግራሙን ያቆማል። በloop() ተግባር ውስጥ፣ የሙቀት እና የእርጥበት እሴቶችን ያለማቋረጥ እናነባለን።
void loop() {
Serial.print(getHTU('C'));
Serial.print("C");
Serial.print(getHTU('H'));
Serial.println("%");
delay(1000);
}
እዚህ፣ ተግባሩ getHTU() የሙቀት መጠንን በሴልሺየስ እና እርጥበትን ለማግኘት በተለያዩ መለኪያዎች ይጠራል። መዘግየቱ ንባቦቹ በየሰከንዱ መወሰዳቸውን ያረጋግጣል፣ ይህም በተከታታይ ሞኒተር ላይ ለስላሳ ውጤት ይሰጣል። ሙሉ ኮዱ ከዚህ ጽሑፍ በታች ለማጣቀሻ ይገኛል።
ማሳያ / ምን እንደሚጠበቅ
ሁሉም ነገር በትክክል ከተገናኘ እና ኮዱ ከተጫነ በኋላ፣ በተከታታይ ሞኒተር ላይ የሙቀት እና የእርጥበት ንባቦች ሲታተሙ ማየት አለብዎት። የሙቀት መጠኑ በሴልሺየስ ይታያል፣ ከዚያም ተጓዳኝ የእርጥበት መቶኛ ይከተላል። ሙቀትን ወደ ዳሳሹ ካመጣሉ፣ የሙቀት መጠኑ በዚሁ መጠን ሲጨምር ማየት አለብዎት (በቪዲዮ 10:15 ላይ)።
የዳሳሹን ገደቦች ይጠንቀቁ፤ የሙቀት መጠኑ ከ125°C በላይ ከሆነ፣ የተሳሳተ ንባብ ሊመልስ ወይም ዜሮ ሊያሳይ ይችላል። በስራ ጊዜ ችግሮችን ለማስቀረት ግንኙነቶችዎ ደህንነታቸው የተጠበቀ እና ዳሳሹ በትክክል ኃይል እንደሚያገኝ ሁልጊዜ ያረጋግጡ።
የቪዲዮ ጊዜ ምልክቶች
- 00:00 መግቢያ
- 03:45 ዳሳሹን ማገናኘት
- 05:30 የኮድ ማብራሪያ
- 10:15 ማሳያ
- 12:00 መደምደሚያ
ይህ ትምህርት አካል ነው: ዲጂታል አንጻራዊ የእርጥበት እና የሙቀት መጠን ዳሳሽ HTU21D
- ትምህርት 35-1፡ የHTU21D የሙቀት ዳሳሽ መጠቀም
- ትምህርት 35፡ ከአርዱኖ ጋር የኤችቲዩ21ዲ የሙቀት ዳሳሽ መጠቀም
- ትምህርት 36፡ የHTU21D የሙቀት ዳሳሽ ከLCD አርዱኢኖ ጋር መጠቀም ደረጃ-በ-ደረጃ ኮርስ
- 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");
}
እንደሚያስፈልግዎት ይችላል
-
አማዞን
-
ኢቤይPurchase HTU21D from eBayebay.us
-
አሊኤክስፕሬስPurchase HTU21D or SHT21 from AliExpresss.click.aliexpress.com
ምንጮች እና ምንጮች
-
ውስጥAdafruit HTU21D Library (GitHub)github.com
-
ውስጥDifference between HTU21DF and HTU21D (image)robojax.com
-
ውስጥHTU21D Datasheet (PDF)cdn-shop.adafruit.com
ፋይሎች📁
የዳታ ማዕከል (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB