اگر از افرادی هستید که در زمینه آبیاری هوشمند و امثال آن فعالیت میکنید توصیه میکنیم که این مقاله را از دست ندهید چون در این مقاله به یکی از جذاب ترین سنسورها و نحوه راهاندازی آن توسط سنسوری که در ادامه معرفی میکنیم خواهیم پرداخت.
در این قسمت از پروژه های آردوینو میخواهیم ابتدا به معرفی سنسور تشخیص باران و در نهایت به راهاندازی آن توسط آردوینو بپردازیم.
سنسور تشخیص باران چیست؟
ماژول سنسور باران برای اندازه گیری رطوبت و باران روی سطح برد مشخص، استفاده می شود. این ماژول دارای خروجی دیجیتال بوده به این صورت که اگر رطوبت از مقدار مشخصی بیشتر یا کمتر بود خروجی دیجیتال 0 و 1 می شود. این مقدار مشخص یا آستانه رطوبت توسط پتانسیومتر قابل تنظیم می باشد. مدار این ماژول از یک آپ امپ LM339 استفاده می کند که به صورت مقایسه گر بسته شده است که مقدار مقاومت بین کانتکت های روی برد را میخواند و اگر از آستانه بیشتر یا کمتر بود خروجی را صفر و یک می کند. مقدار مقاومت بین کانتکت های برد با خیس شدن کم شده و در حالت خشک به مقدار ماکزیمم خود قرار دارد. کانتکت های روی برد در مقابل اکسیدشدن محافظت شده که باعث افزایش طول عمر ماژول می شود.
خروجی دیجیتال ماژول دارای جریان مناسبی در حدود 100 میلی آمپر بوده که می تواند به صورت مستقیم رله را خاموش و روشن کند. هم چنین این ماژول دارای یک خروجی آنالوگ بوده و مقدار مقاومت خوانده شده را به صورت آنالوگ بین 0 تا 5 ولت به ما می دهد که می توانید آن را به مدارات مبدل آنالوگ به دیجیتال متصل کرده و برای تحلیل به یک پردازشگر بدهید.
خب پس از اینکه یک دید کلی نسبت به این سنسور پیدا کردهایم، نوبت به راهاندازی این سنسور توسط آردوینو رسیده است.
شماتیک راهاندازی سنسور تشخیص باران توسط آردوینو
خب پس از اینکه موفق به برقراری اتصالات شدیم حال باید برنامه موردنطر را روی سختافزاری که به شکل بالا متصل کردهایم انتقال دهیم.
برنامهنویسی سنسور تشخیص باران توسط آردوینو
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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); } |
مطمنا برای خیلی از مخاطبین این سوال پیش آمده است که کاربرد این سنسور دقیقا کجا است؟ اجازه دهید با یک مثال به یکی از کاربردهای این سنسور بپردازیم.
فرض کنید از شما خواسته شده است که در شمال کشور دستگاهی درست کنید که عمل آبیاری هوشمند را انجام دهد و به صورت خودکار مقدار رطوبت و دما و معادن طبیعی خاک و … را اندازهگیری کند و در نهایت طبق شرایط تصمیمگیری کنید که در این لحظه باید چه عملی انجام گیرد. خب اگر کمی جزئی تر به موضوع نگاه کنیم باید شرایط ابو هوایی را هم مورد سنجش قرار دهیم که در این لحظه از زمان مقدار رطوبت، دما و بارندگی و … در چه وضعیتی است. که بخشی از کل این پروژه را سنسوری که معرفی کردیم، میتوان استفاده کرد که کاملا کاربردی است. البته برای محیط های کاملا خاص (نه اینکه برید توی بیابون این سنسورو راش بندازین بعدشم بگین هر وقت باورن اومد یه کاری کن اونجا باورن که نمیاد هیچی سنسورم از گرما اتیش میگره).
امیدوارم که این اموزش هم برای شما مخاطبین عزیز مفید واقع شده باشد.