اگر میخواهید ماژول سنسور باران را با استفاده از آردوینو راه اندازی کنید، در این مقاله همراه ما شوید تا بهطور کامل این پروژه را آموزش ببینید.
همه میدانیم که پیشبینی دقیق وضعیت آب و هوا هر سال به دلیل تغییرات زمین، غیر ممکنتر میشود و این موضوع به دلایل مختلفی باعث نگرانی بسیاری از ما شده است. فرض کنید شما وسایل و تجهیزات مهمی را در زیر یک پنجره سقفی قرار دادهاید و با این تصور که هوا کاملا صاف است و خبری از باران نیست، این پنجره را باز گذاشتهاید.
اما پس از مدتی از صدای باران شوکه میشوید و هر جا هستید خود را بلافاصله به سمت پنجره سقفی میرسانید تا وسایلتان را از خیس شدن نجات دهید. اما متوجه میشوید که شاید کمی دیر اقدام کردهاید و باران خسارت زیادی به شما وارد کرده است.
تصور این موضوع ناراحت کننده است، اما خوشبختانه با استفاده از سنسور باران میتوانید از چنین اتفاقی جلوگیری کنید، زیرا این سنسور پس از تشخیص باران میتواند دستور بسته شدن این پنجره سقفی را صادر کند!
سنسور باران چگونه کار میکند؟
نحوه کار این سنسور واقعا ساده است، اما پیش از اینکه بخواهید راه اندازی سنسور باران با آردوینو را آغاز کنید، حتما باید با نحوه کار و اجزای آن بیشتر آشنا شوید.
این سنسور دارای پدی است که همراه با مجموعه ای از مسیرهای مسی روباز، بهعنوان یک مقاومت متغیر (درست مانند یک پتانسیومتر) عمل میکند. مقاومت این پد حسگر با توجه به میزان آبی که بر روی سطح آن قرار دارد، تغییر میکند. در حالت عادی (زمانی که آبی بر روی پد وجود ندارد) بین مسیرهای مسی که به کانکتور متصل هستند، هیچ اتصالی برقرار نیست. اما درصورتیکه بر روی سطح پد حسگر آب ریخته شود، اتصال برقرار شده و بین دو پایه کانکتور یک مقاومت بهوجود میآید.
این مقاومت با میزان آب رابطه عکس دارد:
- آب بیشتر روی سطح به معنی هدایت بهتر و مقاومت کمتر است.
- آب کمتر روی سطح به معنی هدایت ضعیف و مقاومت بیشتر است.
سنسور باران، متناسب با مقاومت، یک ولتاژ خروجی تولید میکند که با اندازهگیری آن میتوانید بفهمید آیا باران میبارد یا نه.
نگاهی به سخت افزار ماژول سنسور تشخیص باران
در اینجا میخواهیم به اجزای مختلف سنسور باران نگاهی بیندازیم. این سنسور از دو قطعه تشکیل شده است:
- پد حسگر
- ماژول
پد حسگر
همانطور که گفتیم، سنسور باران، دارای یک پد حسگر همراه با مجموعهای از مسیرهای مسی روباز است که در محلهای باز، روی پشت بام یا محلی که بتواند در معرض بارندگی باشد، قرار داده میشود. این مسیرهای مسی معمولا بهم متصل نیستند، اما بهوسیله قطرات آب به یکدیگر وصل میشوند.
ماژول
علاوه بر پد حسگر، سنسور باران دارای یک ماژول الکترونیکی نیز است که پد حسگر را به آردوینو متصل میکند. این ماژول مطابق با مقاومت پد حسگر، یک ولتاژ خروجی تولید میکند و این ولتاژ را از طریق پایه خروجی آنالوگ ماژول (AO) مستقیما در دسترس قرار میدهد که بهوسیله آن می توانید شدت بارندگی را تشخیص دهید.
این ولتاژ به مقایسه کننده LM393 نیز فرستاده میشود. این مقایسه کننده ولتاژ را به سیگنال دیجیتال تبدیل میکند و از طریق پایه خروجی دیجیتال، آن را در دسترس قرار میدهد. با خروجی دیجیتال میتوانید وجود یا عدم وجود باران را تشخیص دهید.
علاوه بر این، این ماژول دارای یک پتانسیومتر داخلی برای تنظیم حساسیت خروجی دیجیتال (DO) است. اما این به چه معنا است؟ یعنی شما با استفاده از این پتانسیومتر میتوانید یک حد آستانه تنظیم کنید. با این کار، هر زمان که مقدار آب از حد آستانه بیشتر شود، خروجی ماژول LOW میشود. اما اگر میزان آب از این حد فراتر نرود، خروجی ماژول HIGH خواهد بود.
نکته:
برای افزایش میزان حساسیت خروجی دیجیتال، پیچ پتانسیومتر را به صورت ساعتگرد (↻) بچرخانید. اما برای کاهش حساسیت آن، پیچ پتانسیومتر را خلاف جهت ساعت (⟲) حرکت دهید.
در کنار پتانسیومتر، این ماژول دو LED نیز دارد. یکی از آنها، LED تغذیه است که وقتی ماژول به تغذیه وصل باشد، روشن میشود. LED دیگر، LED وضعیت است که وقتی خروجی دیجیتال LOW شود، روشن خواهد شد.
در بخش بعدی پایههای این ماژول را بررسی میکنیم.
پایههای ماژول سنسور تشخیص باران
سنسور باران بهراحتی قابل استفاده است و تنها 4 پایه دارد. در ادامه در مورد این پایهها توضیح خواهیم داد.
AO (خروجی آنالوگ) : این پایه سیگنال آنالوگی بین 0 تا 5 ولت به شما میدهد.
DO (خروجی دیجیتال) : این پایه، خروجی دیجیتال مدار مقایسه کننده داخلی را به شما میدهد. این پایه را میتوانید به هر کدام از پایههای دیجیتال آردوینو یا مستقیما به یک رله 5V یا تجهیزات مشابه متصل کنید.
GND : این پایه به زمین مدار وصل میشود.
VCC : این پایه، تغذیه سنسور را فراهم میکند. این ولتاژ بین 5V – 3.3V است. لطفا به این نکته توجه داشته باشید که خروجی آنالوگ با توجه به ولتاژ تغذیه تغییر خواهد کرد.
سیم کشی – راه اندازی ماژول سنسور تشخیص باران با آردوینو
راه اندازی ماژول سنسور باران با آردوینو را کمی به تاخیر انداختیم تا شما به طور کامل با این سنسور و پایههای آشنا شوید، اما اکنون زمان آن رسیده است. قطعات لازم برای این پروژه عبارتاند از:
در شروع کار تغذیه ماژول را متصل کنید. برای این کار، پایه VCC ماژول را به ولتاژ 5 ولت آردوینو وصل نمایید. اما نکتهای که در اینجا باید به آن توجه داشته باشید، این است که عمر سنسور زمانیکه در معرض رطوبت قرار میگیرد، کمتر و کمتر میشود. بنابراین، اگر سنسور همیشه به تغذیه متصل باشد، سرعت زنگزدگی آن به شکل قابل توجهی افزایش پیدا میکند.
برای غلبه بر این مشکل، به شما پیشنهاد میکنیم که تنها موقع خواندن اطلاعات، سنسور را به منبع تغذیه متصل کنید. برای این کار کافی است پایه VCC را به یک پایه دیجیتال آردوینو وصل کنید و آن را بر حسب نیاز روی HIGH یا LOW تنظیم نمایید. به علاوه، از آنجاییکه کل جریانی که ماژول با دو ال ای دی روشن مصرف میکند، در حدود 8 میلی آمپر است، میتوانید بدون نگرانی از پایههای دیجیتال آردوینو برای تغذیه ماژول استفاده کنید.
بنابراین با توجه به صحبتهایی که شد، پایه VCC ماژول را به پایه 7 دیجیتال آردوینو و پایه GND را به زمین وصل کنید. در نهایت، پایه DO ماژول را به پایه 8 دیجیتال آردوینو متصل نمایید.
با کمک تصویر زیر میتوانید بهراحتی اتصالات ماژول به آردوینو را انجام دهید:
کالیبره کردن ماژول سنسور باران
برای اینکه بتوانید اطلاعات صحیحی از سنسور باران دریافت کنید، به شما توصیه میکنیم که ابتدا آن را کالیبره کنید. همانطور که قبلا گفتیم، بر روی این سنسور یک پتانسیومتر برای کالیبره کردن خروجی دیجیتال وجود دارد. با چرخاندن پیچ این پتانسیومتر، شما میتوانید حد آستانه ولتاژ را تنظیم کنید. بنابراین، زمانیکه آب از حد آستانه مشخص شده، بیشتر شود، LED وضعیت روشن میشود و خروجی دیجیتال LOW خواهد شد.
اما برای کالیبره کردن این سنسور، ابتدا کمی آبی بر روی پد حسگر بپاشید و پتانسیومتر را به صورت ساعتگرد بچرخانید تا LED وضعیت روشن شود. سپس، پتانسیومتر را بهصورت پادساعتگرد بچرخانید تا LED خاموش شود.
با این کار، کالیبره کردن ماژول سنسور تشخیص باران تمام میشود و اکنون آماده است تا شما از آن استفاده کنید.
آشکارسازی باران – کد آردوینو
وقتی مدار خود را تکمیل کردید، کد زیر را بر روی نرم افزار آردوینو بارگذاری کنید.
سپس، سنسور را در محلی مانند پشت بام قرار دهید تا مستقیما باران بر روی آن بریزد. برای اینکه آب بهراحتی روی سنسور جاری شود، آن را بهصورت مایل با زاویهای در حدود 20 درجه قرار دهید. در اینجا باید به یک نکته دقت داشته باشید که این ماژول سنسور تشخیص باران ضد آب نیست. بنابراین آن را به شکلی در فضای باز قرار دهید که تنها پد حسگر در تماس با باران قرار بگیرد.
// Sensor pins
#define sensorPower 7
#define sensorPin 8
void setup() {
pinMode(sensorPower, OUTPUT);
// Initially keep the sensor OFF
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
//get the reading from the function below and print it
int val = readSensor();
Serial.print("Digital Output: ");
Serial.println(val);
// Determine status of rain
if (val) {
Serial.println("Status: Clear");
} else {
Serial.println("Status: It's raining");
}
delay(1000); // Take a reading every second
Serial.println();
}
// This function returns the sensor output
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // Allow power to settle
int val = digitalRead(sensorPin); // Read the sensor output
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // Return the value
}
زمانیکه نمونه کد بالا در نرم افزار آردوینو آپلود شد، پنجره سریال مانیتور را باز کنید تا خروجی آردوینو را مشاهده نمایید. با باز کردن پنجره سریال مانیتور، درصورتیکه هوا صاف باشد، شما باید خروجی دیجیتال HIGH را مشاهده کنید. برای اینکه مطمئن شوید سنسور میتواند باران را تشخیص دهد، کمی آب بر روی پد حسگر بریزید.
توضیحات کد:
اما برای اینکه درک بهتری داشته باشید که این نمونه کد دقیقا چه کاری انجام میدهد، در این قسمت باهم کد بالا را بررسی میکنیم. دستورات این کد، با معرفی پایههای آردوینو که به پایههای VCC و DO متصل شده است، شروع میشود.
#define sensorPower 7
#define sensorPin 8
همانطور که میبینید، در بخش Setup، شما باید ابتدا پایههای تغذیه سنسور را به عنوان خروجی تعریف کنید و آن را LOW قرار دهید تا در ابتدای کار، سنسور تغذیه نشود. علاوه بر این، شما باید در این بخش سریال مانیتور را نیز تنظیم کنید.
pinMode(sensorPower, OUTPUT);
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
در بخش loop دستورات نیز، باید تابع ()readSensor را در فاصله زمانی 1 ثانیه فراخوانی کنید و مقدار بازگشتی را همراه با وضعیت هوا چاپ کنید.
int val = readSensor();
Serial.print("Digital Output: ");
Serial.println(val);
if (val) {
Serial.println("Status: Clear");
} else {
Serial.println("Status: It's raining");
}
delay(1000);
تابع ()readSensor مقدار خروجی دیجیتال سنسور باران را به شما میدهد. این تابع سنسور را روشن میکند، 10میلی ثانیه صبر میکند، مقدار دیجیتال حسگر را میخواند، حسگر را خاموش میکند و سپس نتیجه را برمیگرداند.
int readSensor() {
digitalWrite(sensorPower, HIGH);
delay(10);
int val = digitalRead(sensorPin);
digitalWrite(sensorPower, LOW);
return val;
}
اکنون شما میدانید که این دستورات چگونه عمل میکنند و شما چگونه میتوانید در آن تغییراتی ایجاد کنید.
خلاصه
با خواندن این مقاله یاد گرفتید که سنسور باران دارای یک پد حسگر و ماژول است. پد حسگر دقیقا محلی است که باید در معرض باران یا به طور کلی آب قرار بگیرد. مقاومت این پد با توجه به میزان آبی که بر روی آن قرار دارد، کم یا زیاد میشود. ماژول سنسور نیز، این اطلاعات را از پد دریافت میکند و با توجه به میزان مقاومت پد، سیگنالهای دیجیتال یا آنالوگ تولید میکند. در نهایت، ماژول این سیگنالها را از طریق پایههای مربوطه در دسترس شما قرار میدهد تا بتوانید وجود یا عدم وجود باران را تشخیص دهید.
با فهم عملکرد این سنسور، راه اندازی آن برای شما بسیار آسان خواهد شد. امیدواریم که با این مقاله بتوانید بدون هیچ مشکلی این پروژه را انجام دهید. اما اگر به کمک نیاز داشتید، سوالات خود را حتما برای ما کامنت کنید تا سریعا پاسخ آنها را دریافت کنید.
۴ دیدگاه. Leave new
سلام و خسته نباشید خدمت شما.
اموزش هاتون خیلی عالیه ،ازتون ممنونم.
یه سوالی داشتم،اگه همین سنسور رو برای خودرو بخوایم راه اندازی کنیم مثلا وقتی بارون بارید،سنسور بتونه برف پاک کن ماشینو روشن کنه.
وقتی low میشه مسلما باید یه چیزیو روشن کنه،خب اینجا ما برف پاکنو چطوری میتونیم روشن کنیم؟؟؟
سلام و درود بر شما وحید عزیز
خیلی ممنونیم از اینک همراه ما هستید و از آموزش های آکادمی روبوایکیو راضی و خشنود هستید 🙂
روشن شدن برف پاک کن با تحریک رله برف پاک کن انجام میشه. بنابراین یکی از روش های پیادهسازی این موضوع اینه که با آردوینو، رله برف پاک کن رو خاموش و روشن کنید. برای آشنایی با رله و نحوه کنترل اون٬ آموزش راه اندازی رله با آردوینو را مطالعه کنید.
با درود : از دید من جهت راه اندازی خوب توضیح داده نشده است ۴ میله فلزی یا همان سوکت توضیح داده نشده کدام پایه ورودی ولتاژ منفی و کدام پایه ولتاژ مثبت و کدام پایه یا پایه ها به رله وصل می گردد فقط یک پایه GND به زمین و سه پایه سوکت کدام منفی برق و کدام مثبت برق می باشد در هر صورت توضیحات گمراه کننده می باشد البته برای من تازه کار. با سپاس
سلام و درود خدمت شما علی عزیز
زمین یا GND منفی تغذیه (به قول شما منفی برق)، VCC مثبت تغذیه و دو پایه دیگر خروجی آنالوگ و دیجیتال هستند.
موفق باشید.