ویژگی های سنسور دما و رطوبت DHT11
سنسور DHT11، یک سنسور دما و رطوبت دیجیتال است. این سنسور قادر است میزان رطوبت بین 20 تا 80 درصد را با دقت 5% و دما را در بازه ی 0 تا 50 درجه ی سلسیوس، با دقت 2 درجه اندازه گیری کند.
توجه
فرکانس نمونه برداری این سنسور 1Hz است. درنتیجه باید بین دوبار خواندن متوالی سنسور حدقل یک ثانیه زمان وجود داشته باشد، در غیر این صورت، مقادیر خوانده شده اشتباه خواهد بود.
معرفی پایه ها (Pinout) سنسور دما و رطوبت DHT11
سنسور DHT11 دارای 4 پایه است که تنها از 3 پایه آن استفاده می شود. کاربرد این پایه ها به شرح زیر است:
- VCC: تغذیه ماژول – 3 تا 5 ولت
- GND: زمین
- Data: خروجی سنسور
پین اوت (Pinout) این سنسور را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرمافزارهای مورد نیاز
راه اندازی سنسور دما و رطوبت DHT11
گام اول: سیم بندی
مطابق مدار زیر، سنسور را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
به Library manager رفته و کتابخانه ی سنسور دما DHT11 را نصب کنید.
توجه
اگر برای نصب کتابخانه نیاز به راهنمایی بیشتر دارید، این مطلب را بخوانید: آموزش نصب کتابخانه جدید در آردوینو.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید. این کد دما و رطوبت را خوانده و در پنجره ی سریال نمایش می دهد.
/*
DHT11 - Tempertature & Hummidity Sensor
modified on 08 Sep 2020
by Mohammad Reza Akbari @ Electropeak
Home
Based on Adafruit Example
*/
#include "DHT.h"
#define DHTPIN 8 // Digital pin connected to DHT11
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("Initializing... Please wait.");
delay(2000);
}
void loop() {
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.println(f);
delay(2000);
}
خروجی کد به شکل زیر است.
Comments (4)
سلام
شما نوشتید که بازه 0 تا 50 درجه رو نشون میده ولی من سردش کردم بهم منفی هم نشون داد !
سلام.
رنج اندازهگیری دمای این سنسور بر اساس دیتاشیت اون، 0 تا 50 درجه سانتیگراد هست. در نتیجه در صورتی که اون رو بیش از اندازه سرد و یا بیش از اندازه گرم کنید، بسته به کتابخونه مورد استفاده ممکنه که عددی خارج از بازه 0 تا 50 درجه نشون داده بشه، اما این دمای اندازه گرفته شده دقیق و قابل اتکا نیست.
سلام چطوری خروجی کد رو صفحه نمایش نمایش داده میشه ؟
با سلام
با توجه به نمایشگری که انتخاب میکنید.
کتابخانه مربوط به نمایشگر دارای فانکشن هایی برای نمایش متن هستند، از آنها برای این موضوع باید استفاده کنید.