اگر از افرادی هستید که در زمینه آبیاری هوشمند و امثال آن فعالیت میکنید توصیه میکنیم که این مقاله را از دست ندهید چون در این مقاله به یکیاز جذابترین سنسورها و نحوه راهاندازی آن توسط سنسوری که در ادامه معرفی میکنیم خواهیم پرداخت. در این مقاله میخواهیم ابتدا به معرفی سنسور تشخیص باران و درنهایت به راهاندازی آن توسط آردوینو بپردازیم.
سنسور تشخیص باران چیست؟
ماژول سنسور باران برای اندازهگیری رطوبت و باران روی سطح برد مشخص، استفاده میشود. این ماژول دارای خروجی دیجیتال بوده به این صورت که اگر رطوبت از مقدار مشخصی بیشتر یا کمتر بود خروجی دیجیتال ۰ و ۱ میشود. این مقدار مشخص یا آستانه رطوبت توسط پتانسیومتر قابل تنظیم میباشد. مدار این ماژول از یک آپ امپ LM339 استفاده می کند که به صورت مقایسه گر بسته شده است که مقدار مقاومت بین کانتکت های روی برد را میخواند و اگر از آستانه بیشتر یا کمتر بود خروجی را صفر و یک می کند. مقدار مقاومت بین کانتکتهای برد با خیسشدن کمشده و در حالت خشک به مقدار ماکزیمم خود قرار دارد. کانتکتهای روی برد درمقابل اکسیدشدن محافظتشده که باعث افزایش طول عمر ماژول می شود.
خروجی دیجیتال ماژول دارای جریان مناسبی در حدود ۱۰۰میلی آمپر بوده که میتواند بهصورت مستقیم رله را خاموش و روشن کند. همچنین این ماژول دارای یک خروجی آنالوگ بوده و مقدار مقاومت خوانده شده را بهصورت آنالوگ بین ۰ تا ۵ ولت به ما میدهد که میتوانید آنرا به مدارات مبدل آنالوگ به دیجیتال متصلکرده و برای تحلیل به یک پردازشگر بدهید.{منبع}
شماتیک ماژول
خب پساز اینکه یک دید کلی نسبت به این سنسور پیدا کردهایم، نوبت به راهاندازی این سنسور توسط آردوینو رسیده است.
شماتیک راهاندازی سنسور تشخیص باران توسط آردوینو
خب پساز اینکه موفق به برقراری اتصالات شدیم حال باید برنامه موردنطر را روی سختافزاری که به شکلبالا متصل کردهایم انتقالدهیم.
برنامهنویسی سنسور تشخیص باران توسط آردوینو
int rainPin = A0; int greenLED = 6; int redLED = 7; // you can adjust the threshold value int thresholdValue = 800; void setup(){ pinMode(rainPin, INPUT); pinMode(greenLED, OUTPUT); pinMode(redLED, OUTPUT); digitalWrite(greenLED, LOW); digitalWrite(redLED, LOW); Serial.begin(9600); } void loop() { // read the input on analog pin 0: int sensorValue = analogRead(rainPin); Serial.print(sensorValue); if(sensorValue < thresholdValue){ Serial.println(" - Doesn't need watering"); digitalWrite(redLED, LOW); digitalWrite(greenLED, HIGH); } else { Serial.println(" - Time to water your plant"); digitalWrite(redLED, HIGH); digitalWrite(greenLED, LOW); } delay(500); }
همانطورکه در برنامه مشخصشدهاست. میتوان مقدار آستانه را در برنامه مشخصکرد و بهعبارتی مقدارحساسیت آنرا تنظیمکرد که بسته به شرایط محیطی این مقدار میتواند متغییر باشد. مطمنا برای خیلی از مخاطبین این سوال پیشآمده است که کاربرد این سنسور دقیقا کجا است؟ اجازهدهید با یک مثال به یکیاز کاربردهای این سنسور بپردازیم. فرضکنید از شما خواستهشدهاست که در شمال کشور دستگاهی درستکنید که عمل آبیاری هوشمند را انجام دهد و بهصورت خودکار مقدار رطوبت و دما و معادن طبیعی خاک و… را اندازهگیری کند و درنهایت طبق شرایط تصمیمگیری کنید که در این لحظه باید چه عملی انجام گیرد. خب اگر کمی جزئیتر به موضوع نگاهکنیم باید شرایط ابو هوایی را هم مورد سنجش قرار دهیم که در این لحظه از زمان مقدار رطوبت، دما و بارندگی و… در چه وضعیتی است. که بخشی از کل این پروژه را سنسوری که معرفی کردیم، میتوان استفادهکرد که کاملا کاربردی است. البته برای محیط های کاملا خاص(نهاینکه برید توی بیابون این سنسورو راش بندازین بعدشم بگین هروقت باورن اومد یه کاری کن اونجا باورن که نمیاد هیچی سنسورم از گرما اتیش میگیره).
امیدوارم که این اموزش هم برای شما مخاطبین عزیز مفید واقع شده باشد.
منبع: سیسوگ