با استفاده از ماژول سنسور دیجیتالی دما و رطوبت ارزان قیمت DHT11 محصولی از شرکت AOSONG، به پروژه بعدی آردوینوی خود توانایی حس کردن جهان اطراف را بدهید. اندازه گیری دما و رطوبت با استفاده از این سنسور بسیار ساده بوده، چرا که این سنسور از پیش کالیبره شده است و به اجزا و قطعات دیگری برای راه اندازی و استفاده نیاز ندارد.
اجزای مورد نیاز
شما به اجزای زیر نیاز دارید:
- آردوینو UNO اونو × ۱
- سنسور DHT11 دما و رطوبت × ۱
- برد بورد × ۱
بررسی کلی سخت افزار ماژول DHT11
در قلب ماژول، سنسور دیجیتال دما و رطوبت ساخته شده توسط AOSONG – DHT11 قرار دارد.
سنسور DHT11
این سنسور قادر است میزان رطوبت بین 20 تا 80 درصد را با دقت 5% و دما را در بازهی 0 تا 50 درجهی سلسیوس، با دقت 2 درجه اندازه گیری کند.
توجه داشته باشید که نرخ نمونه برداری DHT11، 1 هرتز است، به این معنی که میتوانید در هر ثانیه، دادههای جدیدی از آن دریافت کنید.
مدار پشتیبانی
ماژول با تمام مدارهای پشتیبانی ضروری ساخته شده است، بنابراین بدون هیچ تجهیزات و مدارات اضافه ای قادر به اندازه گیری دما و رطوبت میباشد.
سنسورهای DHT11 معمولاً برای برقراری ارتباط مناسب بین سنسور و آردوینو به یک مقاومت pull-up خارجی با مقداری برابر با 10KΩ نیاز دارند که بایستی بین VCC و Outpin قرار بگیرد. با این حال، ماژول دارای یک مقاومت pull-up داخلی است، بنابراین نیازی به اضافه کردن این مقاومت به صورت خارجی ندارید. این ماژول همچنین دارای یک خازن جداکننده برای فیلتر کردن نویز در منبع تغذیه است.
DHT11 چگونه دما و رطوبت را اندازه گیری می کند؟
در داخل DHT11، یک حسگر رطوبت به همراه یک ترمیستور وجود دارد.
حسگر رطوبت در حقیقت از دو الکترود و یک لایهی نگهدارندهی رطوبت که در بین این دو الکترود قرار گرفته(مانند یک دیالکتریک) تشکیل شده است.
با جذب بخار آب توسط این لایه، رسانایی بین دوالکترود افزایش یافته که باعث آزاد شدن یونها میشود.
تغییر مقاومت بین دو الکترود و رطوبت نسبی با یکدیگر تناسب معکوس دارند. بدین معنا که با افزایش رطوبت نسبی، مقاومت بین الکترودها کاهش مییابد. در حالی که کاهش رطوبت نسبی باعث افزایش مقاومت بین الکترودها میشود.
DHt11 برای اندازه گیری دما از یک ترمیستور NTC استفاده میکند. ترمیستورها مقاومتهای وابسته به دما میباشند. در حقیقت عبارت NTC به معنای ضریب دمای منفی است، به این معنی که با افزایش دما مقاومت کاهش می یابد.
در طرف دیگر این سنسور، یک PCB کوچک با یک آیسی با پکیج 8 بیتی SOIC-14 وجود دارد. این آیسی با کمک گرفتن از ضرایب کالیبراسیون ذخیره شده بر روی آن، اندازه گیری و پردازش سیگنال آنالوگ اندازهگیری شده را انجام میدهد و سپس با تبدیل آن به سیگنال دیجیتال، مقدار دما و رطوبت اندازه گیری شده را به صورت خروجی ارائه میدهد.
پایه های ماژول DHT11
اتصال ماژول DHT11 نسبتاً آسان است. این سنسور فقط سه پین دارد:
پایه VCC: برق سنسور را تامین میکند. برای تامین تغذیهی سنسور میتوان از ولتاژی بین 3/3 تا 5 ولت استفاده نمود. با این حال، بهتر است از منبع تغذیه 5 ولت استفاده کنید، چرا که در این صورت میتوانید سنسور را در فاصلهی 20 متری از مدار نگه دارید(بدون آنکه در دقت اندازهگیری سنسور تغییری ایجاد شود). اگرچه دستگاه با ولتاژ تغذیه 3.3 ولت نیز کار میکند اما در این صورت طول کابل نباید بیشتر از 1 متر باشد؛ زیرا افت ولتاژ خطی منجر به خطا در اندازه گیری میشود.
پایه OUT: برای ارتباط بین سنسور و آردوینو استفاده میشود.
پایه GND: باید به زمین آردوینو متصل شود.
سیم کشی ماژول DHT11 به آردوینو
بیایید ماژول DHT11 را به آردوینو متصل کنیم.
اتصالات نسبتا ساده هستند. با اتصال پین + (VCC) به خروجی 5 ولت آردوینو شروع کنید و – (GND) را به زمین وصل کنید. در نهایت، پین Out را به پایه دیجیتال شماره 8 وصل کنید.
تصویر زیر، چگونگی اتصال سنسور به آردوینو را نشان میدهد:
نصب کتابخانه DHT
سنسورهای DHT11 برای انتقال داده از پروتکل تک سیم خود استفاده میکنند. برای استفاده از این پروتکل نیاز به زمان بندی دقیق دارید. که خوشبختانه، کتابخانه DHT برای حل کردن تمام این پیچیدگیها نوشته شده است تا بتوانیم دستورات ساده ای برای خواندن داده های دما و رطوبت داشته باشیم.
برای نصب این کتابخانه، Arduino IDE را باز کنید، به Sketch > Include Library > Add .ZIP Library بروید و سپس فایل ZIP DHTlib را که به تازگی دانلود کرده اید انتخاب کنید.
کد آردوینو – مثال پایه
هنگامی که کتابخانه را نصب کردید، میتوانید دستوراتی که در ادامه آورده شده است را در Arduino IDE کپی کنید.
دستورات زیر مقادیر دما و رطوبت نسبی را روی نمایشگر سریال چاپ میکند. این دستورات را امتحان کنید. در ادامه به توضیح جز به جز دستورات میپردازیم.
پس از آپلود دستورات، یک پنجره سریال مانیتور را باز کنید تا خروجی آردوینو را ببینید.
توضیح کد:
در ابتدا بایستی کتابخانهی سنسور را به دستورات اضافه نمایید. سپس بایستی آن پین آردوینو که outpin سنسور به آن متصل است، تعریف شود. سپس یک شی DHT برای دسترسی به توابع خاص مربوط به کتابخانه ایجاد میکنیم.
در تابع “setup”؛ بایستی ارتباط سریال را تعریف کنیم چرا که برای چاپ نتایج از نمایشگر سریال استفاده میکنیم.
در تابع حلقه تکرار برنامه؛ ما با استفاده از تابع read11() داده های را از حسگر میخوانیم. این تابع، شماره پین داده سنسور(outPin) را به عنوان پارامتر ورودی میگیرد.
هنگامی که مقادیر رطوبت و دما محاسبه شد، می توانیم با استفاده از دستورات زیر به آنها دسترسی پیدا کنیم:
شی DHT مقدار دما را بر حسب سانتیگراد (درجه سانتیگراد) برمیگرداند. با استفاده از یک فرمول ساده میتوان آن را به فارنهایت (°F) تبدیل کرد:
T(°F) = T(°C) × 9/5 + 32
کد آردوینو – نمایش نتایج بر روی LCD
گاهی اوقات ممکن است که بخواهید سطح دما و رطوبت را در انکوباتور DIY خود مشاهده کنید. در آن صورت احتمالاً به جای نمایشگر سریال، به LCD کاراکتری 16×2 برای نمایش دما و رطوبت در انکوباتور خود نیاز خواهید داشت. بنابراین، در این مثال، ال سی دی را به همراه ماژول DHT11 به آردوینو متصل میکنیم. خروجی به شکل زیر خواهد بود:
در صورتی که با LCD های کاراکتری 16×2 آشنایی ندارید، میتوانید با مطالعه آموزش زیر با نحوه کار با این نمایشگرها آشنا شوید.
مطابق شکل زیر، میتوانید LCD را به آردوینو متصل کنید:
دستورات زیر، مقادیر دما و رطوبت نسبی را روی LCD کاراکتری 16×2 چاپ میکنند. این دستورات مشابه با دستورات مثال قبل می باشند با این تفاوت که دستورات مربوط به نمایش دما و رطوبت نسبی بر روی نمایشگر به آن اضافه شده است.
مقالات مرتبط رو حتما ببینید
نظر شما برای ما با ارزشه
0 دیدگاه