در این سری از پروژه های آردوینو نحوه اندازه گیری رطوبت و دمای محیط توسط سنسور DHT11 شرح داده شده است. همچنین پروژه طوری طراحی و ساخته شده است که بتوان با صرف کمترین هزینه و زمان میزان این رطوبت و دما را بر روی سگمنت 4دیجیت TM1637 نمایش داده شود. همانطور که در پروژه های قبلی در مورد سگمنت 4 دیجیت توضیحات کاملی داده ایم لازم به ذکر است که این سگمنت ها کاربرد فراوانی در صنعت، تبلیغات، ساعت های دیجیتال و … دارند. در ادامه پروژه نحوه ارتباط سنسور DHT11 به ماژول سگمنت TM1637 و برد آردوینو به طور کامل آمده است و اگر تمایل به ساخت یک دماسنج و رطوبت سنج حرفه ای دارید می توانید پروژه زیر که در سایت الکترونیک98 منتشر گردیده است را مطالعه نموده تا بتوانید در کمترین زمان با هزینه بسیار کم آن را بسازید.
ماژول سگمنت ۴ دیجیت با تراشه TM1637
همانطور که در پروژه های قبلی گفته شد، 7Segmentها دارای پایه های زیادی هستند ولی در صورتی که با ماژول سگمنت 4دیجیت و تراشه TM1637 استفاده شوند، می توان آن ها را تنها با 4 پایه و به صورت I2C کنترل کرد.
ویژگی های ماژول سگمنت ۴ دیجیت
1. ولتاژ مورد نیاز 3.5 تا 5 ولت
2. جریان 80 میلی آمپر
3. دمای نگهداری 25- تا 85+ درجه سانتی گراد
4. پروتکل ارتباطی به صورت I2C
5. تعداد پایه ها 4 عدد
6. نوع کانکتور به صورت پین هدر
7. ابعاد 24*42 میلی متر
سنسور اندازه گیری رطوبت و دما 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 رقمی TM1637 | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال تجهیزات و قطعات به یکدیگر و برد آردوینو بسیار راحت و ساده است به طوری که با توجه به شماتیک شکل زیر این کار را به راحتی می توانید انجام دهید.
برنامه نویسی پروژه
قبل از برنامه نویسی در نرم افزار آردوینو ابتدا کتابخانه های DHT و TM1637 را از لینک های زیر دانلود نموده و طبق توضیحات زیر، آن ها را به صورت جداگانه به زیرمجموعه های کتابخانه خود در نرم افزار آردوینو اضافه کنید.
نصب کتابخانه
لازم به ذکر است که نرم افزار برنامه نویسی آردوینو به صورت پیش فرض توانایی پشتیبانی از DHT و TM1637 را ندارد بنابراین ما باید library (کتابخانه یا برنامه) مورد نیاز را بر روی آن نصب کنیم. این فرآیند بسیار ساده و راحت است که در زیر نحوه استفاده از آن را توضیح داده ایم.
1. در مرحله اول ابتدا آخرین (جدیدترین) نسخه کتابخانه (DHT و TM1637) را از لینک های فوق دانلود کنید.
2. پس از دانلود فایل، نرم افزار آردوینو را باز کنید.
3. مسیر زیر را دنبال کنید و در پنجره باز شده فایل کتابخانه های DHT و TM1637 را که قبلا دانلود کرده اید را انتخاب نمائید:
…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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <dht.h> #include "TM1637.h" //{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //0~9,A,b,C,d,E,F #define dht_pin 2 // Pin sensor is connected to #define CLK 3//Pins for TM1637 #define DIO 4 TM1637 tm1637(CLK,DIO); dht DHT; void setup(){ tm1637.init(); tm1637.set(BRIGHT_DARKEST); //BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7; delay(500); } void loop(){ DHT.read11(dht_pin); int temp = DHT.temperature; int humidity = DHT.humidity; int digitoneT = temp / 10; int digittwoT = temp % 10; int digitoneH = humidity / 10; int digittwoH = humidity % 10; tm1637.display(1,digitoneT); tm1637.display(2,digittwoT); tm1637.display(3,12); // put a C at the end delay (3000); tm1637.display(1,25); tm1637.display(2,digitoneH); tm1637.display(3,digittwoH); //Wait 3 seconds before accessing sensor again. //Fastest should be once every two seconds. delay(3000); }// end loop() |
استاد سلام بنده سنسور DHT11 رو تهیه کردم ولی 4 پایه داره و سنسوری ک شما استفاده کرددی سه پایه داره چیکار کنم حالا!ممنون واقعا
سلام دوست عزیز
لطفا دیتاشیت سنسور DHT11 را از گوگل دانلود و مطالعه فرمائید، یکی از پایه ها نیازی نیست به جای متصل شود.
سلام استاد خسته نباشید . خدا قوت . سوالم اینه که اگه بخوام delay این پروژه رو زیاد کنم به صورتی که تند تند بین رطوبت و دما عوض نشه باید خط 22 و 44 رو تغییر بدم؟ به چه نسبت ؟ (چون توی ویدیویی که گذاشتین عدد ها عوض میشه بین 30c و 42 (توی ویدیو) . من میخوام که زمان نمایش هر کدوم طولانی تر بشه . ممنون میشم راهنماییم کنید
سلام دوست عزیز
در پروژه مذکور هر سه ثانیه یکبار وضعیت دما و رطوبت بر روی نمایشگر نشان داده می شود، برای افزایش این زمان می توانید در خط 44 برنامه
مقدار زمان مورد نظر خود را در واحد میلی ثانیه در داخل پرانتز به جای عدد 3000 وارد نمائید.
و اینکه استاد اگر من اینو با باتری کتابی 9 ولت تغذیه کنم و داعما روشن باشه تا چند روز جواب میده . خواهشا بگید چون مهمه . ممنونم ازتون استاد
این موضوع کاملا به ظرفیت یا همان آمپر ساعت باتری شما بستگی دارد، هر چقدر میزان آمپر ساعت باتری شما بالا باشد زمان بیشتری می تواند مدار را روشن نگاه دارد.
برای محاسبه زمان عملکرد مدار با باتری باید ابتدا جریان مصرفی مدار را با یک مولتی متر اندازه گیری نمائید و سپس با توجه به ظرفیت آمپردهی باتری در ساعت، زمان پاسخدهی را محاسبه نمائید.
استاد خوبم راستش متوجه نشدم چرا توی ویدیو رنگ ال ای دی سون سگمنت یدفعه زیاد شد
در برنامه این پروژه در خط شماره 18 برنامه، شما می توانید میزان روشنایی سون سگمنت ها را تنظیم کنید، در ویدیو مذکور یکبار با حالت پیش فرض برنامه پروژه تست شده و در بخش بعدی مقدار روشنایی سون سگمنت ها توسط خط شماره 18 برنامه افزایش پیدا کرده و دوباره پروژه تست شده است.
استاد اکبری واقعا ممنونم از پاسخگویی شما . تشکر . من توی خط 18 نمیدونم چجوری تغییر بدم روشنایی رو چون عددی نداره! اگه بخوام ثایت باشه باید همین جوری و بدون تغییر بزارم کد رو بدون دستکاری؟ ممنونم واقعا
استاد ممنونم ازتون بالاخره این پروژه رو تموم کردم و دونستم چیکار باید بکنم . وجوود شما برای جامعه علمی واقعا لازمه.تشکر استاد بازم ممنون
با تشکر از لطف و محبت شما، بسیار خوشحالیم که توانستیم با مطالب و پروژه های منتشر شده در سایت، رضایت شما دوست عزیز را بدست آوریم.
با سلام خدمت شما استاد بنده به مشکل جالبی برخوردم اینکه من اینو درست کردم وکار میکنه منتها باید با کابل پرینتری بزنم تا سون سگمنت روشن بشه یعنی با اداپتور میزنم فقط اردوینو روشن میشه و سون سگمنت خاموشه اما کابل پرینتری رو میزنم قشنگ کار میکنه حالا چیکار کنم ممنون
سلام دوست عزیز
اگر از یک منبع تغذیه DC با ولتاژ بین 5 الی حداکثر 12 ولت استفاده کنید باید مدار شما به خوبی کار کند، اما اگر اینگونه نیست. این احتمال وجود دارد تراشه رگولاتور برد آردوینو شما دچار مشکل شده باشد. برای حل این موضوع می توانید از منبع تغذیه 5 ولت DC برای راه اندازی برد آردوینو استفاده کنید و دو سر منبع تغذیه را مستقیم به پایه های GND و 5V برد آردوینو متصل کنید.
باسلام . استاد یک سوال ، برای اضافه کردن کتابخونه ی dht در آردوینو نیاز به فایل zip هست و فایل هایی ک در سایت قرار داره فایل rar هستش . چجوری فایل rar رو به کتابخونه های آردوینو اضافه کنم ؟؟
سلام دوست عزیز
فرمت zip و rar هر دو مربوط به نرم افزار فشرده ساز فایل WinRAR می باشد و هیچ تفاوتی نمی کند چراکه شما باید پس از دانلود فایل با هر فرمتی آنرا از حالت فشرده خارج کنید. برای خارج کردن فایل از حالت فشرده می توانید از برنامه WinRAR استفاده کنید و پس از اینکار فایل را به صورت مستقیم به پوشه کتابخانه آردوینو که معمولا در پوشه Documents ویندوز قرار دارد انتقال دهید.