
به نام خدا
پروژه ی کامل اندازه گیری دما و رطوبت با آردوینو به همراه کد برنامه

در این پروژه قصد داریم تا با استفاده از آردوینو و سنسور DHT11 سیستمی بسازیم که دما و رطوبت را به صورت لحظه ای بر روی ال سی دی به ما نشان دهد. از این پروژه در اهداف مختلفی که نیاز به اندازه گیری همزمان دما و رطوبت است می توانیم استفاده کنیم. همانطور که مشخص است این پروژه از سه قسمت اصلی تشکیل شده است . قسمت اول سنسور اندازه گیری دما و رطوبت که DHT11 نام دارد قسمت دوم آردوینوست که تمامیه پروسه را انجام می دهدو سومی هم ال سی دی ست که قرار است خروجی بر روی آن نمایش داده شود. در شکل زیر بلوک دیاگرام سیستم را مشاهده می کنید.

نحوه ی کار این پروژه ارتباط سری یک سیگنال است. ابتدا آردوینو یک سیگنال شروع به سنسور می فرستد و سپس سنسور یک سیگنال که شامل اطلاعات دما و رطوبت است را به آردوینو ارسال می کند و آردوینو آن را به ال سی دی می فرستد تا نمایش داده شود. در تصویر زیر یک سنسور DHT11 را مشاهده می کنید که دارای چهار پین است.

این سنسور بر اساس ارتباط سریال کار می کند و یک پالس مربعی مشخص می فرستد که حاوی اطلاعات دما و رطوبت اطراف سنسور هستند. قبل از دریافت اطالاعات ، همانطور که گفته شد آردوینو باید فرمان شروع پروسه را بدهد. تمام این پروسه ۴ میلی ثانیه طول می کشد.

نکته ی دیگری که باید دقت کنید آن است که مقاومت های پول آپ انتخابی باید درست انتخاب شوند. اگر که سنسور DHT11 را در فاصله ی کمتر از ۲۰ متر قرار می دهیم مقاومت های ۵ کیلو اهمی کافی ست.
شماتیک مدار پروژه ی کامل اندازه گیری دما و رطوبت با آردوینو :

دانلود کد برنامه پروژه ی کامل اندازه گیری دما و رطوبت با آردوینو :
دانلود فایل#include<dht.h> // Including library for dht
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#define dht_dpin 12
dht DHT;
byte degree[8] =
{
۰b00011,
۰b00011,
۰b00000,
۰b00000,
۰b00000,
۰b00000,
۰b00000,
۰b00000
};
void setup()
{
lcd.begin(16, 2);
lcd.createChar(1, degree);
lcd.clear();
lcd.print(" Humidity ");
lcd.setCursor(0,1);
lcd.print(" Measurement ");
delay(2000);
lcd.clear();
lcd.print("Circuit Digest ");
delay(2000);
}
void loop()
{
DHT.read11(dht_dpin);
lcd.setCursor(0,0);
lcd.print("Humidity: ");
lcd.print(DHT.humidity); // printing Humidity on LCD
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print("Temperature:");
lcd.print(DHT.temperature); // Printing temperature on LCD
lcd.write(1);
lcd.print("C");
delay(500);
}
دیدگاهها (0)