به آموزش آردوینو ( قسمت بیست و چهارم – ماژول دما و رطوبت) خوش اومدید.
بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۸ انجام شد!
ماژول DHT11
DHT11 یک سنسور رطوبت و دما است که خروجی دیجیتال کالیبره شده تولید میکند. سنسور DHT11 از یک عنصر حسگر رطوبت خازنی و یک ترمیستور برای سنجش دما استفاده میکند.تغییر در مقدار ظرفیت با تغییر در سطح رطوبت رخ میدهد. این مقادیر مقاومت را تغییر داده و آنها را به شکل دیجیتال تغییر میدهد. برای اندازهگیری دما، این سنسور از یک ترمیستور با ضریب دمای منفی استفاده میکند که باعث کاهش مقدار مقاومت آن با افزایش دما میشود.
VCC :این پایه تغذیه سنسور هست که میتونید به ولتاژ ۳.۳ ولت تا ۵.۵ ولت وصلش کنید.
نکته : دقت کنید اگه تغذیه سنسور رو به ولتاژ ولت (ولتاژ برد آردوینو)متصل کنید میتونید فاصله بین سنسور DHT11 را از برد آردوینو تا ۲۰ متر افزایش بدید.
در صورتی که اگه از ولتاژ۳.۳ ولت استفاده کنید این فاصله به ۱ متر کاهش پیدا میکند.
GND : این پایه به زمین مشترک مدار متصل میشود.
َِDATA : این پایه خروجی سنسور هست که داده های مربوط به دما و رطوبت رل با خودش حمل میکنه و باید به برد آردوینو متصل شود.
بازر Buzzer
بازر وسیله ای است که می تواند سیگنال های صوتی را به صدا تبدیل کند . دارای دو پین آند و کاتد است .تقریبا شبیه به میکروفن می باشد اما با فرکانس مشخص و تعیین شده که باعث ایجاد صدای مخصوص به خودش میشود .
آموزش کامل بازر در قسمت هشتم داده شده است.
پیاده سازی عملی پروژه
مدار را مانند شکل زیر ببندید . به پایه های DHT11 توجه کنید و پین دیتای آن را به پین شماره هشت آردوینو وصل کنید.
شبیه سازی پروژه در پروتئوس
یک برد آردوینو ، یک DHT11 را در پروتئوس از قسمت Devices به صفحه بیافزایید و آنها را مانند شکل وصل کنید.
نصب کتابخانه های ضروری
.برای نصب کتابخانه DHT11 مراحل زیر رو طی میکنیم:
از منویSketck گزینه Include Library و سپس روی Manage Library کلیک میکنیم .
در کادر عبارت DHT رو تایپ میکنیم و Enter میزنیم تا لیست کتابخانه ها ظاهر بشه و آخرین ورژن کتابخانه مورد نظر را نصب میکنیم.
کد های دستوری
اول باید کتابخانه ماژول DHT11/DHT22 را فراخوانی کنیم.
سپس پین ۸ را برای دیتای سنسور و ۹ را برای بازر تعریف میکنیم.
#include "DHT.h"
#define outPin 15
#define buzz 13
در قسمت بعدی یه object برای خوندن اطلاعات از ماژول DHT11/DHT22 تعریف میکنیم ودر setup تنظیمات ارتباط سریال مانیتور رو هم با دستور Serial.begin مقدار دهی میکنیم.
#define DHTTYPE DHT11
DHT dht(outPin, DHTTYPE);
void setup()
{
Serial.begin(9600);
}
در تابع loop :
با استفاده از تابع dht.begin مقادیر مربوط به دما و رطوبت رو از ماژول دریافت میکنیم .
با دستور dht.readTemperature مقدار دما را دریافت میکنیم.
با دستور dht.readHumidity مقدار رطوبت را در یافت میکنیم.
با Serial.print مقادیر بدست امده از مراحل قبل را روی سریال مانیتور نمایش میدهیم.
سپس میتوانیم تعیین کنیم اگر دما و رطوبت از محدوده تعیین شده توسط خودمان خارج شد بازر با اصوات مختلف برای دو المان به صدا در بیاید.
void loop()
{
int readData = DHT.read11(outPin);
float t = DHT.temperature;
float h = DHT.humidity;
Serial.print("Temperature = ");
Serial.print(t);
Serial.print("°C ");
Serial.print("\nHumidity = ");
Serial.print(h);
Serial.println("% ");
Serial.println("");
if (t < 25 || t > 40)
{
tone(buzz, 200, 2000);
}
noTone(buzz);
if (h < 30 || h > 60)
{
tone(buzz, 4000);
}
delay(2000);
}
کد کامل پروژه
#include <dht.h>
#define outPin 8
#define buzz 9
dht DHT;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int readData = DHT.read11(outPin);
float t = DHT.temperature;
float h = DHT.humidity;
Serial.print("Temperature = ");
Serial.print(t);
Serial.print("°C ");
Serial.print("\nHumidity = ");
Serial.print(h);
Serial.println("% ");
Serial.println("");
if (t < 25 || t > 40)
{
tone(buzz, 200, 2000);
}
noTone(buzz);
if (h < 30 || h > 60)
{
tone(buzz, 4000);
}
delay(2000);
}
پایان آموزش آردوینو ( قسمت بیست و چهارم – ماژول دما و رطوبت )