شِفر (کود) جستجو

شِفر (کود) آردوینو و ویدیو برای حساس(حس کننده) دما و رطوبت DHT11

شِفر (کود) آردوینو و ویدیو برای حساس(حس کننده) دما و رطوبت DHT11

در این آموزش، نحوهٔ استفاده از حساس(حس کننده) دما و رطوبت DHT11 با آردوینو را بررسی می‌کنیم. این حساس(حس کننده) گزینه‌ای کم‌هزینه برای اندازه‌گیری هر دو پارامتر دما و رطوبت است و آن را به انتخابی ایده‌آل برای پروژه‌های مختلف تبدیل می‌کند. ما سیم‌کشی، شِفر (کود) لازم و چگونگی تعامل اجزا برای ارائهٔ اندازه‌گیری‌های دقیق را پوشش خواهیم داد.

DHT11 Module

تا پایان این آموزش قادر خواهید بود دما را برحسب سلسیوس، فارنهایت و کلوین و همچنین میزان رطوبت را از حساس(حس کننده) DHT11 بخوانید. برای وضوح بیشتر حتماً ویدیو را در زمان‌های مشخص‌شده ببینید (در ویدیو در 00:00).

شرح سخت‌افزار

حساس(حس کننده) DHT11 شامل سه پایه است: زمین، تغذیه و دیتا. پایه زمین به زمین آردوینو متصل می‌شود، در حالی که پایه تغذیه به منبع 5V از آردوینو متصل است. پایه دیتا مسئول ارتباط بین آردوینو و حساس(حس کننده) است و به آردوینو امکان خواندن مقادیر دما و رطوبت را می‌دهد.

این حساس(حس کننده) از خروجی دیجیتال استفاده می‌کند، به این معنی که داده‌ها را به‌صورت سریال به آردوینو ارسال می‌کند. این دستگاه دارای یک ترمیستور برای اندازه‌گیری دما و یک حساس(حس کننده) رطوبت خازنی است. DHT11 سیگنال‌های آنالوگ دریافتی را به سیگنال‌های دیجیتال تبدیل می‌کند و پردازش داده‌ها را برای میکروکنترلرهایی مانند آردوینو ساده‌تر می‌سازد.

جزئیات دیتاشیت

تولیدکنندهASAIR
شماره قطعهDHT11
ولتاژ منطقی/ورودی-خروجی3.3-5.5 ولت
ولتاژ تغذیه3.3-5.5 ولت
جریان خروجی (برای هر کانال)۰٫۵ میلی‌آمپر
جریان پیک (برای هر کانال)2.5 mA
راهنمای فرکانس PWMمربوط نیست
آستانه‌های منطقی ورودی0.3*Vدی‌دیتا 0.7*Vدی دی
افت ولتاژ / RDS(on)/ اشباعقابل اعمال نیست
محدودیت‌های حرارتی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 به آردوینو، مراحل زیر را دنبال کنید:

ابتدا پایه زمین (معمولاً سیاه یا قهوه‌ای) حساس(حس کننده) DHT11 را به زمین (GND) آردوینو متصل کنید. سپس پایه تغذیه (معمولاً قرمز) DHT11 را به خروجی 5V آردوینو وصل کنید. در نهایت پایه داده (معمولاً زرد یا سفید) را به پایه دیجیتال 2 آردوینو وصل کنید. مطمئن شوید از یک مقاومت پول-آپ (حدود 10k اهم) بین پایه داده و پایه تغذیه استفاده کنید تا ارتباط پایدار باشد.

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

در شِفر (کود) آردوینو، کار را با وارد کردن فایل هدر لازم برای حساس(حس کننده) DHT11 آغاز می‌کنیم:

#include 

این خط کتابخانه‌ای را وارد می‌کند که شامل توابع لازم برای برقراری ارتباط با حساس(حس کننده) DHT11 است. سپس یک نمونه از کلاس DHT11 ایجاد می‌کنیم:

dht11 DHT11; // create object of DHT11

این خط شیء DHT11 را مقداردهی اولیه می‌کند که از آن برای خواندن داده‌ها از حساس(حس کننده) استفاده خواهیم کرد. پایه متصل به DHT11 به‌صورت زیر تعریف شده است:

#define dhtpin 2 // set the pin to connect to DHT11

این پایه دادهٔ حساس(حس کننده) را روی پایه 2 آردوینو تنظیم می‌کند. درloop()در تابع، داده‌های حساس(حس کننده) را می‌خوانیم:

DHT11.read(dhtpin);// initialize the reading

این خط فرآیند خواندن را آغاز می‌کند، و رطوبت را می‌توان با:

int humidity = DHT11.humidity;// get humidity

مقدار رطوبت در متغیر ذخیره می‌شودhumidity، که سپس همراه با مقادیر دما تبدیل‌شده به سلسیوس، فارنهایت و کلوین، روی نمایشگر مسلسل چاپ می‌شود

نمایش / چه انتظاری داشته باشید

وقتی شِفر (کود) را اجرا کنید، باید مقادیر دما و رطوبت را در نمایشگر مسلسل ببینید. خوانش‌های دما هر نیم‌ثانیه به‌روزرسانی می‌شوند (در ویدئو در 00:00). اگر حساس(حس کننده) گرم یا خنک شود، متوجه تغییر مقادیر خواهید شد. مراقب باشید، چون DHT11 حداکثر دمایی برابر با 60 درجه سانتی‌گراد دارد؛ عبور از این مقدار ممکن است به خوانش‌های نادرست منجر شود.

برچسب‌های زمانی ویدیو

  • 00:00- معرفی حساس(حس کننده) DHT11
  • 01:30- دستورالعمل‌های سیم‌کشی
  • 02:15- مروری بر شِفر (کود)
  • 03:00- اجرای شِفر (کود) و خروجی مورد انتظار

تصاویر

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.
زبان: 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; 
  }
  
}

منابع و مراجع

فایل‌ها📁

کتابخانه‌های آردوینو (zip)

فایل فریزینگ

راهنمای کاربر