Search Code

د آردوینو کوډ او ویډیو د DHT11 تودوخې او رطوبت سینسر لپاره

د آردوینو کوډ او ویډیو د DHT11 تودوخې او رطوبت سینسر لپاره

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

DHT11 Module

د دې ټیوټوریل په پای کې به تاسو وکولی شئ د 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 ثانیه وځنډوئ.

د تارونو د نښلولو لارښوونې

Arduino wiring for DHT11 Temperature and humidity sensor
Arduino wiring for DHT11 Temperature and humidity sensor

د 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 - د کوډ چلول او تمه شوی آوټ پوټ

Images

Arduino wiring for DHT11 Temperature and humidity sensor
Arduino wiring for DHT11 Temperature and humidity sensor
DHT11 Module
DHT11 Module
DHT11 Module
DHT11 Module
53-This is the Arduino code and video for a DHT11 temperature and humidity sensor.
Language: C++
/*
 * 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

Files📁

Arduino Libraries (zip)

Fritzing File

User’s Manual

Other files