اندازه گیری رطوبت همواره یکی از مهمترین مسائل است چرا که با تغییر کوچکی در دما میزان رطوبت نیز تغییر می کند. همین وابستگی رطوبت به دما باعث شده رطوبت نسبی به دشواری به دست آید. در این سری از آموزش های آردوینو، سنسور تشخیص رطوبت HIH-4030 را معرفی کرده ایم که به راحتی می توان توسط این سنسور میزان رطوبت را اندازه گیری کرد. در ادامه پروژه نحوه عملکرد سنسور رطوبت سنج HIH-4030، طریقه اتصال این ماژول به برد آردوینو و وِیژگی های این سنسور را بررسی و بیان کرده ایم.
سنسور رطوبت HIH-4030
سنسور رطوبت HIH-4030 مقدار رطوبت محیط را برحسب RH% اندازه گیری می کند.
خصوصیات ماژول HIH-4030
1. خروجی آنالوگ و خطی
2. منبع تغذیه 4 تا 5.8 ولت
3. جریان مصرفی بسیار پایین حدود 200 میکروآمپر
4. زمان پاسخ گویی سریع
5. پایدار
دانلود دیتا شیت ماژول HIH-4030
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول رطوبت سنج HIH-4030 | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال ماژول HIH-4030 به برد آردوینو
طریقه اتصال ماژول HIH-4030 به برد آردوینو بسیار راحت است برای این کار کافیست که ابتدا پین 5ولت ماژول HIH-4030 را به پین 5 ولت برد آردوینو متصل کنید سپس پایه GND ماژول را به پین زمین آردوینو اتصال دهید در انتها پین خروجی ماژول را به یکی از پایه های آنالوگ برد آردوینو متصل نمائید، ما از پایه A0 آردوینو استفاده کرده ایم. لازم به ذکر است که مقدار آنالوگ اعدادی بین 0 تا 1023 است که عدد 0 مربوط به 0 ولت و عدد 1023 مربوط به 5 ولت می باشد.
برنامه نویسی پروژه
با توجه به برنامه زیر بادریت برنامه بر روی 9600 قرار گرفته شده است و میزان تاخیر برای هر تکرار جهت مشخص شدن مقدار رطوبت برابر با 1 ثانیه است یعنی هر 1 ثانیه سنسور رطوبت را اندازه گیری می کند و نشان می دهد.
توسط دستور زیر مقدار آنالوگ از پایه A0 برد آردوینو خوانده می شود و به یک عدد دیجیتال در بازه 0 الی 1023 تبدیل می شود.
1 |
adcValue = analogRead(0); |
بعد از تبدیل مقدار آنالوگ به دیجیتال توسط دستور بالا نوبت به محاسبه مقدار ولتاژ در بازه 0 الی 5 ولت می رسد. برای این منظور می توانیم از فرمول زیر استفاده کنیم.
1 |
voltage = (adcValue/1023.0)*5.0; |
به عنوان مثال اگر در فرمول بالا مقدار متغیر adcValue که حاوی مقدار تبدیل شده آنالوگ به دیجیتال است، برابر عدد 250 باشد، متغیر voltage که خروجی فرمول است و میزان ولتاژ را نشان می دهد، برابر با 1/22 ولت خواهد بود:
ولت1.22=5*〈250/1023〉
در خط بعدی با استفاده از دستور زیر مقدار ولتاژ را به درصد رطوبت نسبی تبدیل می کنیم.
1 |
percentRH = (voltage-0.958)/0.0307; |
و اگر بخواهیم مقدار 1.22 ولت را تبدیل به درصدی از رطوبت نسبی کنیم، خواهیم داشت:
8.53%=0.0307/〈0.958-1.22〉
در انتهای برنامه با استفاده از دستور سریال پرینت اقدام به نشان دادن یا چاپ درصد رطوبت نسبی در محیط سریال نرم افزار آردوینو می کنیم.
1 2 |
Serial.print("%RH = "); Serial.println(percentRH,DEC); |
برنامه کامل پروژه در محیط نرم افزار آردوینو
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
float adcValue = 0; float voltage = 0; float percentRH = 0; void setup() { Serial.begin(9600); } void loop() { adcValue = analogRead(0); // Read voltage coming from sensor (adcValue will be between 0-1023) voltage = (adcValue/1023.0)*5.0; // Translate ADC value into a voltage value percentRH = (voltage-0.958)/0.0307; // Translate voltage into percent relative humidity // Print value Serial.print("%RH = "); Serial.println(percentRH,DEC); // Delay for one second delay(1000); } |