Koodu Arduino ati Fidio fun Sensa Iwọn otutu ati Ọrinrin DHT11
Nínú ẹ̀kọ́ yìí, a óò ṣàwárí bí a ṣe lè lo ẹ̀rọ ìwọ̀n-otútù àti ọ̀rinrin DHT11 pẹ̀lú Arduino. Ẹ̀rọ yìí jẹ́ àṣàyàn tí kò gbowó lórí fún wíwọn otútù àti ọ̀rinrin, tí ó sì jẹ́ yíyan tí ó dára fún oríṣiríṣi àwọn iṣẹ́-ọwọ́. A óò ṣàlàyé bí a ṣe ń so wọn pọ̀, kóòdù tí a nílò, àti bí àwọn ẹ̀yà náà ṣe ń ṣiṣẹ́ papọ̀ láti pèsè àwọn ìwọ̀n tí ó péye.

Ní ìparí ẹ̀kọ́ yìí, ìwọ yóò lè ka otútù ní Celsius, Fahrenheit, àti Kelvin, àti pẹ̀lú àwọn ipele ọ̀rinrin láti inú ẹ̀rọ DHT11. Fún ìmúkún òye síwájú sí i, rí i pé o wo fídíò náà ní àwọn àkókò tí a tọ́ka sí (nínú fídíò ní 00:00).
Àlàyé Ohun-èlò
Ẹ̀rọ DHT11 ní àwọn pin mẹ́ta: ilẹ̀, agbára, àti data. Pin ilẹ̀ ń so pọ̀ mọ́ ilẹ̀ Arduino, nígbà tí pin agbára ń so pọ̀ mọ́ 5V láti inú Arduino. Pin data ni ó ń ṣe iṣẹ́ ìbánisọ̀rọ̀ láàárín Arduino àti ẹ̀rọ náà, tí ó ń jẹ́ kí Arduino lè ka àwọn iye otútù àti ọ̀rinrin.
Ẹ̀rọ yìí ń lo ìjàde oní-nọ́ńbà, tí ó túmọ̀ sí pé ó ń fi data ránṣẹ́ ní ọ̀nà serial sí Arduino. Ó ní thermistor fún wíwọn otútù àti ẹ̀rọ ìwọ̀n ọ̀rinrin capacitive. DHT11 ń yí àwọn àmì analog tí ó gbà padà sí àwọn àmì oní-nọ́ńbà, tí ó sì rọrùn fún àwọn microcontroller bíi Arduino láti ṣe ìmúṣẹ data náà.
Àwọn Àlàyé Datasheet
| Olùṣelọ́pọ̀ | ASAIR |
|---|---|
| Nọ́ńbà ẹ̀yà | DHT11 |
| Fóltì Logic/IO | 3.3–5.5 V |
| Fóltì ìpèsè | 3.3–5.5 V |
| Ìjàde lọ́wọ́lọ́wọ́ (fún ikanni kọ̀ọ̀kan) | 0.5 mA |
| Ìjàde tí ó ga jùlọ (fún ikanni kọ̀ọ̀kan) | 2.5 mA |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | Kò sí |
| Àwọn ìpele ìbẹ̀rẹ̀ logic | 0.3*VDD sí 0.7*VDD |
| Ìrẹwẹ̀sì fóltì / RDS(on) / saturation | Kò sí |
| Àwọn ààlà otútù | 0 sí 60 °C |
| Ìpó | 4-pin DIP |
| Àwọn àkíyèsí / àwọn oríṣi | Kò gbowó lórí, rọrùn láti lò |
- Fóltì ìṣiṣẹ́ láàárín 3.3V sí 5.5V.
- Ìjàde lọ́wọ́lọ́wọ́ tí ó ga jùlọ jẹ́ 2.5 mA.
- Ìwọ̀n otútù láti 0 sí 60 ìwọ̀n Celsius.
- Ìwọ̀n ọ̀rinrin láti 20% sí 90%.
- Lo resistor ìfà sókè lórí pin data fún àwọn ìwọ̀n tí ó dúró ṣinṣin.
- Rí i pé ìsopọ̀ tọ́nà láti yẹra fún àwọn input tí ń fòfò.
- Ṣọ́ra fún polarity tí ó yí padà nígbà tí o ń so agbára pọ̀.
- Dúró fún ìwọ̀n tí ó kéré tán ọ̀kan-ìṣẹ́jú-àáyá fún àwọn èsì tí ó péye.
Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti so ẹ̀rọ DHT11 pọ̀ mọ́ Arduino rẹ, tẹ̀lé àwọn ìgbésẹ̀ wọ̀nyí:
Kọ́kọ́, so pin ilẹ̀ (tí ó sábà jẹ́ dudu tàbí brown) ti DHT11 mọ́ ilẹ̀ (GND) lórí Arduino. Lẹ́yìn náà, so pin agbára (tí ó sábà jẹ́ pupa) ti DHT11 mọ́ ìjàde 5V lórí Arduino. Níkẹyìn, so pin data (tí ó sábà jẹ́ ofeefee tàbí funfun) mọ́ pin oní-nọ́ńbà 2 lórí Arduino. Rí i pé o lo resistor ìfà sókè (níwọ̀n 10k ohms) láàárín pin data àti pin agbára láti rí i pé ìbánisọ̀rọ̀ dúró ṣinṣin.
Àwọn Àpẹẹrẹ Kóòdù & Ìṣàlàyé
Nínú kóòdù Arduino, a bẹ̀rẹ̀ nípa fífi fáìlì àkọsórí tí a nílò fún ẹ̀rọ DHT11 sí inú:
#include
Ìlà yìí ń kó àkójọpọ̀ ìwé tí ó ní àwọn iṣẹ́ tí a nílò láti bá ẹ̀rọ DHT11 ṣiṣẹ́. Lẹ́yìn náà, a dá àpẹẹrẹ kan ti ẹ̀ka DHT11:
dht11 DHT11; // ṣẹ̀dá ohun DHT11
Ìlà yìí ń bẹ̀rẹ̀ ohun DHT11 tí a óò lò láti ka data láti inú ẹ̀rọ náà. Pin tí a so mọ́ DHT11 ni a ṣàlàyé bíi:
#define dhtpin 2 // ṣeto pin láti so mọ́ DHT11
Èyí ń ṣeto pin data fún ẹ̀rọ náà sí pin 2 lórí Arduino. Nínú iṣẹ́ loop(), a ka data ẹ̀rọ náà:
DHT11.read(dhtpin);// bẹ̀rẹ̀ ìwọ̀n náà
Ìlà yìí ń bẹ̀rẹ̀ ìlànà ìwọ̀n, àti pé a lè wọ ọ̀rinrin pẹ̀lú:
int humidity = DHT11.humidity;// gba ọ̀rinrin
Iye ọ̀rinrin náà ni a fi pamọ́ sí inú oniyipada humidity, tí a óò sì tẹ̀ jáde sí ibi ìṣàkíyèsí serial pẹ̀lú àwọn iye otútù tí a yí padà sí Celsius, Fahrenheit, àti Kelvin.
Ìṣàfihàn / Ohun Tí Ó Yẹ Kí O Rí
Nígbà tí o bá ṣiṣẹ́ kóòdù náà, o yẹ kí o rí àwọn ìwọ̀n otútù àti ọ̀rinrin tí a fihàn ní ibi ìṣàkíyèsí serial. Àwọn ìwọ̀n otútù yóò máa ṣe àtúnṣe gbogbo ìdajì ìṣẹ́jú-àáyá (nínú fídíò ní 00:00). Bí a bá gbóná tàbí tutù ẹ̀rọ náà, ìwọ yóò kíyèsi pé àwọn iye náà ń yí padà. Ṣọ́ra, nítorí pé DHT11 ní ààlà otútù tí ó ga jùlọ ti 60 ìwọ̀n Celsius; bí ó bá kọjá èyí, ó lè yọrí sí àwọn ìwọ̀n tí kò péye.
Àwọn Àkókò Fídíò
- 00:00 - Ìfihàn sí ẹ̀rọ DHT11
- 01:30 - Àwọn ìtọ́sọ́nà ìsopọ̀
- 02:15 - Àkópọ̀ kóòdù náà
- 03:00 - Ṣiṣẹ́ kóòdù náà àti èsì tí a retí
/*
* This is the Arduino code for the DHT11 module to read temperature and humidity.
* This code can display temperature in:
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
* Watch the video https://youtu.be/FjZBt6eU9b4
*
* Written by Ahmad Nejrabi for Robojax Video
* Date: January 4, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// header file from GitHub: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11
void setup() {
Serial.begin(9600);// setting up serial monitor
}
void loop() {
DHT11.read(dhtpin);// initialize the reading
//code for Robojax.com video
int humidity = DHT11.humidity;// get humidity
Serial.print(getTemp('C'));
Serial.print("C ");
Serial.print(getTemp('F'));
Serial.print("F ");
Serial.print(getTemp('K'));
Serial.print("K ");
Serial.print(" humidity:");
Serial.print (humidity);
Serial.println("% ");
Serial.println();
delay(500);
}
/*
* getTemp(char type)
* type character of upper case.
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
*/
float getTemp(char type) {
float temp = (float)DHT11.temperature;//get temp
if(type =='F')
{
return temp * 1.8 + 32;// convert to Fahrenheit
}else if(type =='K')
{
return temp + 274.15;// convert to Kelvin
}else{
return temp;
}
}
Orisun & itọkasi
-
Ita gbangbaDHT11 library on GitHubgithub.com
Fáìlìs📁
Awọn ile-ikawe Arduino (zip)
-
DHT22 Arduino Library
robojax-DHT22_library.zip0.01 MB
Fayile Fritzing
-
Temperature Sensor DHT11
Temperature Sensor DHT11.fzpz0.01 MB
Iwe Itọsọna Olumulo
-
DHT11 Itọsọna Olumulo
robojax-DHT11_manual.pdf0.82 MB
Awọn faili miiran
-
DHT11 Simple Arduino Library
robojax-DHT11-simple_library.zip