درصدی از بخار آب در یک درجه حرارت یا مقدار بخار آبی که هوا در یک دمای معین قادر به نگهداری می باشد را رطوبت نسبی می نامند. بنابراین می توان گفت که رطوبت نسبی هوا تابعی از مقدار آب و دما است. در این سری از آموزش های آردوینو می خواهیم مقدار رطوبت نسبی هوا را اندازه گیری کنیم. از آنجا که رطوبت به دما وابسته است ما از ماژول DHT11 استفاده کرده ایم، چرا که این سنسور توانایی اندازه گیری رطوبت و دما را به طور همزمان دارد و اطلاعات کاملی را در این زمینه در اختیار ما می گذارد. از این سنسور برای اندازه گیری رطوبت و دما برای مکانهایی که امکان کنترل از راه دور راه دارند می توان استفاده کرد. در ادامه این پروژه آموزشی ابتدا سنسور رطوبت و دماسنج DHT11 را تشریح کرده سپس نحوه اتصال این سنسور به برد آردوینو، برنامه نویسی پروژه و مقایسه آن با سایر هم خانواده های خود پرداخته ایم.
سنسور اندازه گیری رطوبت و دما DHT11
همانطور که در ابتدای پروژه گفته شده، ماژول DHT11 برای اندازه گیری رطوبت نسبی و دمای محیط بسیار مناسب می باشد. این ماژول با ماژول DHT22 از لحاظ عملکرد و پایه های خروجی کاملا یکسان است و فقط از لحاظ ویژگی با یکدیگر کمی متفاوت هستند.
سنسور DHT11 با اندازه گیری مقاومت الکتریکی بین دو پایه الکترود، مقدار بخار آب را تشخیص می دهد. یک حسگر رطوبت بر روی الکترودهای سطح یا لایه وجود دارد تا زمانی که بخار توسط لایه جذب شود، این لایه ها باعث آزاد شدن یون ها می شود که این عمل هدایت الکتریکی بین الکترودها را افزایش می دهد. لازم به ذکر است که مقاومت بین دو الکترود متناسب با رطوبت نسبی تغییر می کند یعنی اگر رطوبت نسبی افزایش پیدا کند مقاومت بین الکترودها کاهش می یابد و اگر رطوبت نسبی کاهش پیدا کند مقاومت بین پایه های الکترود افزایش پیدا می کند.
ویژگی سنسور رطوبت و دما DHT11
1. قیمت مناسب نسبت به کارآیی
2. ولتاژ تغذیه 3 تا 5.5 ولت
3. ماکزیمم جریان مصرفی 2.5میلی آمپر
4. رنج اندازه گیری رطوبت 20 تا 90 درصد RH
5. دقت اندازه گیری رطوبت 5± درصد
6. رنج اندازه گیری دما 0 تا 50 درجه
7. دقت اندازه گیری دما 2± درصد
8. 15.5mm*12mm*5.5mm
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
سنسور اندازه گیری دما و رطوبت DHT11 | 1 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال ماژول به برد آردوینو
نحوه اتصال ماژول DHT11 به برد آردوینو بسیار راحت است، شما می توانید با توجه به شماتیک زیر این اتصال را انجام دهید.
برنامه نویسی پروژه
قبل از برنامه نویسی در نرم افزار آردوینو ابتدا کتابخانه DHT11 را از لینک زیر دانلود نموده و طبق توضیحات زیر، آن را به زیرمجموعه های کتابخانه خود در نرم افزار آردوینو اضافه کنید.
نصب کتابخانه
لازم به ذکر است که نرم افزار برنامه نویسی آردوینو به صورت پیش فرض توانایی پشتیبانی از DHT11 را ندارد بنابراین ما باید library (کتابخانه یا برنامه) مورد نیاز را بر روی آن نصب کنیم. این فرآیند بسیار ساده و راحت است که در زیر نحوه استفاده از آن را توضیح داده ایم.
1. در مرحله اول ابتدا آخرین (جدیدترین) نسخه کتابخانه (DHT11) را از لینک فوق دانلود کنید.
2. پس از دانلود فایل، نرم افزار آردوینو را باز کنید.
3. مسیر زیر را دنبال کنید و در پنجره باز شده فایل کتابخانه DHT11 را که قبلا دانلود کرده اید را انتخاب نمائید:
…Sketch > Include Library > Add .ZIP Library
برنامه کامل پروژه در محیط نرم افزار آردوینو
بعد از اتصال قطعات به یکدیگر و نصب کتابخانه، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include "DHT.h" #define DHTPIN 4 // paye data sensor be 4 arduino vasl shode #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE);//sakht class void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { // in sensor sensor kondi hastesh, baraye setup bayad sabr konim delay(2000); // khundan dama ya rotoobat 250 mili sani'a zaman mibare! float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); } |
سلام
با تشکر از سایت خوبتون
این پروژه یه جای خالی داره
واکنش دادن
من میخوام دما بالا رفت یه رله
و کمبود رطوبت یه رله فعال بشه باید چطوری اینکار رو بکنم؟
سلام دوست عزیز
این پروژه قابل توسعه است، شما می توانید با استفاده از یک ماژول رله تک کانال 5 ولتی یک خروجی رله به برد آردوینو اضافه کنید و سپس با افزودن چند دستور شرطی، بالا و پایین رفتن رطوبت و یا دمای محیط را کنترل نمائید. لطفا توجه داشته باشید برای توسعه پروژه باید به زبان برنامه نویسی آردوینو تسلط اولیه داشته باشید.
سلام،این پروژه گفتین مقاومت میخاد،ولی تو فیلم من ندیدم مقاومت رو وصل کنه
سلام دوست عزیز
در ویدیو این پروژه به دلیل اینکه از ماژول همان سنسور استفاده شده است، بر روی خود ماژول مقاومت نصب شده است و دیگر نیازی به استفاده از مقاومت نیست. اما اگر از سنسور تنها استفاده می کنید باید حتما از مقاومت استفاده کنید.