آردوینو پروژه های آردوینو

راه اندازی HIH-4030 سنسور رطوبت آردوینو Arduino

hih-4030 arduino
نوشته شده توسط علیرضا قربانی

vjhiآموزش راه اندازی سنسور رطوبت hih-4030 با استفاده از آردوینو

رطوبت عجیب غریب است اگر چه ما آن را تمام وقت تجربه می‌کنیم اما چزیزی نیست که معمولا آن را بتوان با هر دقتی حدس زد. احتمالا این به این خاطر است که وقتی ما راجع به رطوبت صحبت می‌کنیم  ، در واقع داریم در مورد رطوبت نسبی حرف می‌زنیم . رطوبت نسبی به دما وابسته است ، بنابراین یک تغییر کوچگ در دما کافیست تا در رطوبت نسبی تغییر ایجاد شود. این موضوع ، حدس زدن مقدار رطوبت را بسیار دشوار می‌کند.خب خوشبختانه سنجش رطوبت نسبی توسط سنسور HIH-4030 بسیار ساده است. در ادامه‌ی آموزش با مرجع  تخصصی آردوینو  ، دیجی اسپارک همراه باشید.

hih 4030
hih 4030

سخت افزار مورد نیاز:

آردوینو UNO  ( همچنین می‌توانید از پکیج استارتر آردوینو استفاده کنید – علاوه بر این در هنگام خرید پکیج استارتر در صورت وارد کردن کد  L2BPLZBQ ، به ۱۵ نفر اول تخفیفی  تعلق می‌گیرد.

سنسور اندازه‌گری رطوبت HIH-4030

ویژگی‌های سنسور رطوبت hih-4030

  • تغذیه ۴٫۵ الی ۸ ولت DC (در این پروژه از ۵ ولت DC استفاده شده است)
  • خروجی آنالوگ تقریبا  خطی
  • جریان مصرفی بسیار پایین حدودا ۲۰۰ میکرو آمپر
  • زمان پاسخ گویی سریع
  • پایدار و رانش عملکرد بسیار پایین

اتصالات

اتصال hih-4030 به آردوینو کار فوق العاده آسانی است.  فقط کافی است تغذیه و ۵ ولت ماژول را متصل کنید سپس خروجی (out) را به یکی از پین‌های آنالوگ برد آردوینو متصل کنید.همچنین شما می‌توانید این ماژول را با ولتاژ ۳٫۳ ولت نیز راه‌اندازی کنید ولی به دلیل اینکه خروجی این سنسور آنالوگ است و به مقدار ٰVCC  سنسور نیز بستگی دارد پس در صورت انجام این کار باید در برنامه نیز تغییر ایجاد نمایید.

اتصال سنسور hih-4030 به آردوینو arduino
اتصال سنسور hih-4030 به آردوینو arduino

برنامه نویسی

همانطور که گفته شد  خروجی این سنسور به صورت آنالوگ است پس باید پین OUT به یکی از پین‌های آنالوگ آردوینو متصل شود. که ما آن را به پین A0 متصل کردیم. مقدار آنالوگ خوانده شده‌ چیزی تقریبا بین ۰ الی ۱۰۲۳ در ۲۵ درجه سانتی گراد می‌باشد. (مقدار ۰ مربوط به ۰ ولت و مقدار ۱۰۲۳ مربوط ۱۰۲۳)

hih-4030 graph
نودار خروجی سنسور در بهترین شرایط کاری ۲۵ درجه سانتی گراد

برنامه‌ی زیر را کپی کرده و بر روی آردوینو خود آپلود کنید.

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);
}

برنامه‌ی فوق مقدار ولتاژ خروجی از سنسور را خوانده و سپس آن را به درصدی از رطوبت تبدیل می‌کند و در آخر نیز میزان رطوبت نسبی محیط را بر روی سریال مانیتور نرم افزار آردوینو به نمایش در می‌آورد. بعد از آپلود برنامه حتما توجه داشته باشید که بادریت سریال مانیتور نرم افزار بر روی ۹۶۰۰ قرار گرفته باشد.

رطوبت هر یک ثانیه ۱ بار چک می‌شود و سپس بر روی سریال مانیتور نرم افزار آردوینو به نمایش در میاید برای چک کردن اینکه رطوبت چگونه تغییر می‌کند ، می‌توانید سنسور را به  دهان خود نزدیک کنید و نتییجه‌ی تغییرات را مشاهده کنید.

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

hih-4030 graph
نودار خروجی سنسور در بهترین شرایط کاری ۲۵ درجه سانتی گراد

قبل از هر چیزی ،نیاز داریم که مقدار خوانده شده پین A0 را به مقدار ولتاژ  تبدیل کنیم. برای  این منظور از رابطه‌ی زیر استفاده می‌کنیم.

Voltage = ((Arduino Value) / 1023) * 5

برای مثال با توجه به رابطه‌ی فوق اگر مقدار خوانده‌ شده‌ی پین A0  برابر ۳۰۰ باشد  ، ولتاژ خروجی سنسور برابر ۱٫۴۷ ولت بوده است. اکنون ما ولتاژ را داریم پس باید آن را به درصد رطوبت نصبی تبدیل کنیم . برای این منظور از رابطه‌ی پایین استفاده می‌کنیم:

فرمول محاسبه ی رطوبت در سنسور hih4030
فرمول محاسبه ی رطوبت در سنسور hih4030

با توجه به به فرمول فوق و مثالی که از قبل داشتیم مقدار رطوبت اینگونه محاسبه می‌شود:

%RH = (1.47 – ۰٫۹۵۸) / ۰٫۰۳۰۷

%RH = 16.7

تمامی فرمول‌های فوق در کد نیز به کار برده شده اند. فقط باید توجه داشته باشید که مقدار ابتدایی سنسور ممکن است دارای تلرانس باشه و از دقت اندازه‌گیری شما کم کند.

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۸ دیدگاه

  • سلام.
    چطور میتونیم فرمولی بنویسیم که در دماهای مختلف رطوبت اصلی و بدون خطا داشته باشیم.
    این محایبات در دمای ۲۵ درجست

    • با سلام
      ضمن تشکر از توجه شما، در حالت کلی پاسخ سوال شما این است که زبان C++ را کامل آموزش ببینید.
      در حالت دوم اینکه برای داشتن اطلاعات با خطای کم بیشتر نیاز به سنسور ایزوله شده دارید.

  • با عرض سلام و ادب و تشکر از سایت بسیار عالیتون ، اساتید این سنسور آنالوگه؟ پایه پهن سنسور که در بالای سنسور قرار گرفته آیا کار خاصی انجام میده ؟ باید حتما این پایه به جایی وصل بشه؟