د آردوینو کوډ او ویډیو د DHT11 تودوخې او رطوبت سینسر لپاره
په دې ټیوټوریل کې به موږ وپلټو چې څنګه د DHT11 د تودوخې او رطوبت سینسر د Arduino سره وکاروو. دا سینسر د تودوخې او رطوبت دواړو اندازه کولو لپاره یو ټیټ لګښت لرونکی انتخاب دی، چې دا د بېلابېلو پروژو لپاره یو بشپړ انتخاب ګرځوي. موږ به د تارونو اړیکه، اړین کوډ، او دا چې اجزا څنګه له یو بل سره تعامل کوي ترڅو دقیق لوستل چمتو کړي، پوښښ کړو.

د دې ټیوټوریل په پای کې به تاسو وکولی شئ د DHT11 سینسر څخه تودوخه په سیلسیس، فارنهایټ او کیلوین کې، او همدارنګه د رطوبت کچه ولولئ. د اضافي روښانتیا لپاره، ډاډ ترلاسه کړئ چې په ښودل شویو وختونو کې ویډیو وګورئ (په ویډیو کې په 00:00).
هارډویر تشریح شوی
د DHT11 سینسر درې پنونه لري: ځمکه، بریښنا، او ډاټا. د ځمکې پن د Arduino له ځمکې سره نښلول کیږي، پداسې حال کې چې د بریښنا پن د Arduino له 5V عرضې سره نښلول کیږي. د ډاټا پن د Arduino او سینسر ترمنځ د اړیکو مسؤل دی، چې Arduino ته اجازه ورکوي د تودوخې او رطوبت ارزښتونه ولولي.
دا سینسر یو ډیجیټل آوټ پوټ کاروي، چې معنی یې دا ده چې دا ډاټا په سیریل بڼه Arduino ته لیږي. دا د تودوخې اندازه کولو لپاره یو ترمیسټر او د رطوبت لپاره یو کپیسیټیو سینسر لري. DHT11 هغه انلاګ سیګنالونه چې ترلاسه کوي په ډیجیټل سیګنالونو بدلوي، چې دا د مایکروکنټرولرونو لکه Arduino لپاره اسانه کوي چې ډاټا پروسس کړي.
ډیټاشیټ تفصیلات
| جوړونکی | ASAIR |
|---|---|
| د پرزې شمېره | DHT11 |
| منطق/IO ولټاژ | 3.3–5.5 V |
| د بریښنا ولټاژ | 3.3–5.5 V |
| د آوټ پوټ جریان (په هر چینل) | 0.5 mA |
| د لوړ جریان (په هر چینل) | 2.5 mA |
| د PWM فریکونسي لارښوونه | N/A |
| د انپوټ منطق حدونه | 0.3*VDD ته 0.7*VDD |
| د ولټاژ کمښت / RDS(on) / سنتریشن | N/A |
| حرارتي حدونه | 0 ته 60 °C |
| بسته بندي | 4-پن DIP |
| یادښتونه / بڼې | ټیټ لګښت، کارول یې اسانه |
- د عملیاتي ولټاژ حد له 3.3V څخه تر 5.5V پورې.
- د اعظمي آوټ پوټ جریان 2.5 mA.
- د تودوخې حد له 0 څخه تر 60 درجو سیلسیس پورې.
- د رطوبت حد له 20٪ څخه تر 90٪ پورې.
- د مستحکم لوستلو لپاره د ډاټا پن باندې پل-اپ ریزسټر وکاروئ.
- د تیریدونکو انپوټونو څخه مخنیوي لپاره سمه اړیکه ډاډمن کړئ.
- کله چې بریښنا نښلوئ د قطبيت د بدلیدو څخه محتاط اوسئ.
- د دقیقو پایلو لپاره لوستل لږ تر لږه 1 ثانیه وځنډوئ.
د تارونو د نښلولو لارښوونې

د DHT11 سینسر خپل Arduino ته د نښلولو لپاره، دا ګامونه تعقیب کړئ:
لومړی، د DHT11 د ځمکې پن (معمولا تور یا نسواري) د Arduino په ځمکه (GND) سره ونښلوئ. بیا، د DHT11 د بریښنا پن (معمولا سور) د Arduino په 5V آوټ پوټ سره ونښلوئ. په پای کې، د ډاټا پن (معمولا ژیړ یا سپین) د Arduino په ډیجیټل پن 2 سره ونښلوئ. ډاډ ترلاسه کړئ چې د ډاټا پن او د بریښنا پن ترمنځ یو پل-اپ ریزسټر (شاوخوا 10k ohms) وکاروئ ترڅو مستحکمه اړیکه ډاډمنه شي.
د کوډ مثالونه او ګام په ګام تشریح
د Arduino په کوډ کې، موږ د DHT11 سینسر لپاره د اړین هیډر فایل په شاملولو سره پیل کوو:
#include
دا کرښه هغه کتابتون واردوي چې د DHT11 سینسر سره د تعامل لپاره اړین دندې لري. بیا، موږ د DHT11 کلاس یوه بیلګه جوړوو:
dht11 DHT11; // د DHT11 اعتراض جوړول
دا کرښه د DHT11 اعتراض پیل کوي چې موږ به یې د سینسر څخه د ډاټا لوستلو لپاره وکاروو. هغه پن چې DHT11 سره نښلول شوی دی په دې ډول تعریف شوی:
#define dhtpin 2 // د DHT11 سره د نښلولو لپاره پن وټاکئ
دا د سینسر لپاره د ډاټا پن د Arduino په پن 2 باندې ټاکي. د loop() په دنده کې، موږ د سینسر ډاټا لوستو:
DHT11.read(dhtpin);// لوستل پیل کړئ
دا کرښه د لوستلو پروسه پیل کوي، او رطوبت په دې ډول ترلاسه کیدی شي:
int humidity = DHT11.humidity;// رطوبت ترلاسه کړئ
د رطوبت ارزښت په humidity متغیر کې زیرمه کیږي، کوم چې بیا د تودوخې ارزښتونو سره چې سیلسیس، فارنهایټ او کیلوین ته بدل شوي، د سیریل مانیټر ته چاپ کیږي.
ښودنه / څه تمه ولرئ
کله چې تاسو کوډ چلوئ، باید د تودوخې او رطوبت لوستل د سیریل مانیټر کې ښکاره شي. د تودوخې لوستل به هر نیم ثانیه کې تازه شي (په ویډیو کې په 00:00). که سینسر ګرم یا یخ شي، تاسو به وګورئ چې ارزښتونه په مطابق بدلیږي. محتاط اوسئ، ځکه چې DHT11 د تودوخې اعظمي حد 60 درجې سیلسیس لري؛ د دې څخه زیاتوالی ممکن غلط لوستل رامینځته کړي.
د ویډیو وختونه
- 00:00 - د DHT11 سینسر پیژندنه
- 01:30 - د تارونو د نښلولو لارښوونې
- 02:15 - د کوډ کتنه
- 03:00 - د کوډ چلول او تمه شوی آوټ پوټ
/*
* 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;
}
}
Resources & references
-
ExternalDHT11 library on GitHubgithub.com
Files📁
Arduino Libraries (zip)
-
DHT22 Arduino Library
robojax-DHT22_library.zip0.01 MB
Fritzing File
-
Temperature Sensor DHT11
Temperature Sensor DHT11.fzpz0.01 MB
User’s Manual
-
DHT11 User's Manual
robojax-DHT11_manual.pdf0.82 MB
Other files
-
DHT11 Simple Arduino Library
robojax-DHT11-simple_library.zip