راه اندازی سنسور رطوبت خاک خازنی با آردوینو (آموزش جامع)

محتویات
زنده نگه داشتن یک گیاه خانگی میتواند کار سختی باشد، درست است؟ معمولاً فقط کافی است به یاد داشته باشید که آن را آبیاری کنید. خوشبختانه، حسگرهای رطوبت خاک میتوانند به ما کمک کنند که زمان مناسب آبیاری گیاهان را بدانیم و عمر آنها را طولانیتر کنیم.
با این حال، بیشتر حسگرهای ارزانقیمت رطوبت خاک از نوع مقاومتی هستند. در این حسگرها دو شاخه وجود دارد و میزان آب موجود در خاک بر اساس رسانایی بین آنها اندازهگیری میشود. این حسگرها در ابتدا به خوبی کار میکنند، اما به مرور زمان دچار زنگزدگی میشوند، حتی اگر روکش طلا داشته باشند! این زنگزدگی باعث ایجاد اختلال در خوانش دادهها شده و نیاز به تنظیم مجدد کدها را ایجاد میکند. همچنین این حسگرها در خاکهای سست عملکرد خوبی ندارند.
خوشبختانه، گزینهی بهتری وجود دارد: حسگرهای رطوبت خاک خازنی. این حسگرها بر اساس اندازهگیری خازنی کار میکنند و مزایای قابل توجهی نسبت به حسگرهای مقاومتی دارند. آنها تنها یک پروب دارند، فلز بدون پوشش ندارند که دچار زنگزدگی شود و با انتقال الکتریسیته به خاک، آسیبی به گیاهان نمیزنند.
در این آموزش، یاد خواهید گرفت که چگونه از حسگرهای رطوبت خاک خازنی با آردوینو استفاده کنید. در پایان این آموزش، دانش و مهارت لازم برای نگهداری بهتر گیاهان خود را خواهید داشت، بدون نگرانی از کمآبی یا آبیاری بیش از حد. بیایید شروع کنیم!
معرفی سنسور رطوبت خاک خازنی
حسگرهای رطوبت خاک خازنی بسیار شگفتانگیز هستند. کافی است آنها را در خاک فرو کنید تا یک سیگنال آنالوگ متناسب با میزان رطوبت خاک ارائه دهند.
این حسگرها از یک آیسی تایمر 555 استفاده میکنند و با اندازهگیری سرعت شارژ یک خازن از طریق یک مقاومت کار میکنند. در این حسگرها، خازن به صورت یک قطعهی فیزیکی وجود ندارد، بلکه توسط دو مسیر مسی روی برد PCB تشکیل میشود. ظرفیت خازنی این دو مسیر و در نتیجه سرعت شارژ آن، به مقدار آب موجود در اطراف آن بستگی دارد.
مشخصات فنی
در زیر مشخصات فنی این سنسور را میتوانید مشاهده کنید.
- ولتاژ کاری: 3.3۳ تا 5.5 ولت
- جریان کاری: کمتر از 5 میلیآمپر
- ولتاژ خروجی در 5 ولت: حدود 1.5 ولت (برای خاک مرطوب) تا 3 ولت (برای خاک خشک)
- ابعاد پروب حسگر (PCB): 98 در 23 میلیمتر
- طول کابل: 20 سانتیمتر
نحوه کار حسگر رطوبت خاک خازنی
برای درک عملکرد این حسگر، ابتدا باید رفتار خازن در یک مدار RC را درک کنید. در یک مدار سادهی RC، وقتی یک ولتاژ مثبت به ورودی اعمال شود، خازن از طریق مقاومت شروع به شارژ شدن میکند. سرعت شارژ شدن خازن بستگی به مقدار مقاومت و ظرفیت خازن دارد.
در این حسگر، خازن فیزیکی وجود ندارد، بلکه دو مسیر مسی روی برد PCB نقش خازن را ایفا میکنند. این خاصیت به عنوان ظرفیت خازنی انگلی شناخته میشود. با فرو کردن حسگر در خاک، محیط اطراف خازن تغییر میکند و بسته به میزان رطوبت خاک، ظرفیت خازنی نیز تغییر میکند که این امر بر زمان شارژ تأثیر میگذارد.
- خاک خشک → ظرفیت خازنی کمتر → شارژ سریعتر
- خاک مرطوب → ظرفیت خازنی بیشتر → شارژ کندتر
برای درک نحوه عملکرد یک سنسور خازنی رطوبت خاک، ابتدا باید رفتار خازن را در مدار RC درک کنید.
رفتار خازن در مدار RC
در یک مدار RC ساده مانند این، وقتی یک ولتاژ مثبت به ورودی اعمال می شود، خازن (C) از طریق مقاومت (R) شروع به شارژ شدن می کند. همانطور که شارژ شدن انجام می شود، ولتاژ در خازن تغییر می کند. با گذشت زمان، ولتاژ خازن به ولتاژ ورودی تا حد برابر افزایش می یابد. در اینجا، می توانید نموداری را مشاهده کنید که ولتاژ در برابر زمان را برای شارژ خازن نشان می دهد.
مدت زمانی که طول می کشد تا خازن به طور کامل شارژ شود به مقادیر مقاومت و خازن بستگی دارد. اگر R را ثابت نگه دارید و دو مقدار ظرفیت خازنی متفاوت را برای C امتحان کنید، مشاهده خواهید کرد که یک خازن با ظرفیت بزرگتر به زمان بیشتری برای شارژ نیاز دارد.
در حالی که یک خازن با ظرفیت کمتر به زمان کمتری برای شارژ نیاز دارد.
اکنون به سنسور خود بازگردیم، خازن C روی برد سنسور یک خازن واقعی نیست، بلکه فقط دو خط مسی است که مانند یک خازن عمل می کنند. این اثر که به عنوان خازن انگلی شناخته می شود، اغلب در مدارها اتفاق می افتد و معمولاً ناچیز است. با این حال، با بزرگتر کردن عمدی دو خط مسی، می توانیم از این اثر به نفع خود استفاده کنیم.
ظرفیت این خازن انگلی با شکل آثار و محیط اطراف آن (از نظر فنی به عنوان ثابت دی الکتریک شناخته می شود) تعیین می شود. با قرار دادن سنسور در خاک، محیط اطراف خازن بسته به مرطوب یا خشک شدن خاک تغییر می کند. این امر ظرفیت آن را تغییر می دهد و در نتیجه بر زمان شارژ آن تأثیر می گذارد.
هنگامی که خاک خشک است، خازن ظرفیت کمتری دارد و بنابراین به سرعت شارژ می شود. برعکس، زمانی که خاک مرطوب است، خازن ظرفیت بیشتری دارد و بنابراین کندتر شارژ می شود.
برای درک بهتر نحوه اجرای این کار در سنسور، بیایید نمودار مدار زیر را بررسی کنیم.
این سنسور از یک 555 استفاده می کند که به عنوان یک نوسان ساز قابل تنظیم است. امواج مربعی تولید شده توسط 555 به یکپارچه کننده RC تغذیه می شود سپس خازن توسط پروب خاک تشکیل می شود. سیگنال انتگرالگر، بیشتر یک موج مثلثی است که برای تولید خروجی DC به یکسو کننده و خازن صاف کننده وارد می شود.
این خروجی متناسب با میزان رطوبت خاک است. بنابراین اگر خاک خشک باشد، خازن به سرعت شارژ می شود و در نتیجه دامنه موج مثلثی بیشتر می شود و متعاقباً ولتاژ خروجی بالاتری تولید می شود. برعکس، زمانی که خاک خیس است، خازن آهسته تر شارژ می شود و در نتیجه دامنه کمتری از موج مثلثی ایجاد می شود که به نوبه خود ولتاژ خروجی کمتری تولید می کند.
سنسور خازنی رطوبت خاک دارای کانکتور 3 پین JST PH2.0 است. یک سر کابل ارائه شده به این کانکتور متصل می شود، در حالی که سر دیگر یک کانکتور مادگی 3 پین استاندارد است. این کابل دارای کد رنگی است، بنابراین می توانید به راحتی تشخیص دهید که کدام سیم مربوط به چه کاری است: سیاه نشان دهنده زمین، قرمز نشان دهنده VCC و زرد نشان دهنده AOUT است.
- VCC پایه منبع تغذیه است. توصیه می شود سنسور با 3.3 ولت تا 5 ولت تغذیه شود. لطفاً به خاطر داشته باشید که خروجی آنالوگ بسته به ولتاژی که به سنسور داده می شود متفاوت است.
- GND پین زمین است.
- پین AOUT یک خروجی ولتاژ آنالوگ می دهد که متناسب با میزان رطوبت در خاک است. خروجی را می توان با استفاده از ورودی آنالوگ روی میکروکنترلر خواند. با افزایش سطح رطوبت، ولتاژ خروجی کاهش می یابد و بالعکس.
دستورالعملهای استفاده
هنگام استفاده از سنسور، به نکات زیر توجه کنید:
- توصیه میشود که پروب در عمقی قرار نگیرد که از خط محدودیت روی سنسور عبور کند.
- قطعات روی برد ضد آب نیستند، بنابراین مطمئن شوید که با آب یا پاشش آب تماس نداشته باشند. برای محافظت بیشتر، میتوانید از یک تکه لوله حرارتی عریض در اطراف بخش بالایی برد استفاده کنید.
- توجه داشته باشید که لبههای PCB ممکن است به مرور زمان رطوبت جذب کنند و طول عمر سنسور را کاهش دهند. برای افزایش دوام آن، میتوانید از یک پوشش محافظ مانند اپوکسی شفاف استفاده کنید که بر عملکرد سنسور تأثیر نمیگذارد.
اتصال سنسور رطوبت خاک خازنی به Arduino
اتصال سنسور رطوبت خاک خازنی به Arduino بسیار ساده است. شما فقط نیاز به اتصال سه سیم دارید.
- ابتدا سیم قرمز سنسور (VCC) را به منبع تغذیه (3.3 تا 5 ولت) متصل کنید. از همان ولتاژی استفاده کنید که منطق میکروکنترلر شما بر اساس آن است. برای بیشتر Arduino ها، این ولتاژ 5 ولت است. برای دستگاههای با منطق 3.3 ولت، از 3.3 ولت استفاده کنید.
- سپس سیم مشکی (GND) را به زمین متصل کنید.
- در نهایت، سیم زرد (AOUT) را به یکی از پینهای ورودی آنالوگ Arduino متصل کنید. در این مثال، به پین A0 متصل شده است.
اتصالات در جدول زیر آورده شده است:
سنسور رطوبت خاک | برد آردوینو |
---|---|
VCC | 5V |
GND | GND |
AOUT | A0 |
اتصالات در تصویر زیر نشان داده شده است.
یافتن مقادیر آستانه
تعیین درصد دقیق رطوبت خاک بهطور مستقیم از اندازهگیری ها امکانپذیر نیست. با این حال، تعیین محدوده های پایه برای وضعیت های “خیلی خشک”، “خیلی مرطوب” و “مناسب” نسبتاً آسان است.
کد زیر را اجرا کنید و خروجی سنسور را در سه شرایط پایه ثبت کنید:
- هنگامی که خاک به اندازهای خشک است که گیاه نیاز به آبیاری دارد.
- هنگامی که خاک به میزان ایدهآل برای گیاه آبیاری شده است.
- هنگامی که خاک به شدت آبیاری شده و خیلی مرطوب است، که برای گیاه مناسب نیست.
// تعریف ورودی آنالوگ #define sensorPin A0 void setup() { // راهاندازی مانیتور سریال Serial.begin(9600); } void loop() { // خواندن ورودی آنالوگ int value = analogRead(sensorPin); // چاپ مقدار در مانیتور سریال Serial.print("Analog Output:"); Serial.println(value); // یک ثانیه صبر کنید قبل از خواندن بعدی delay(1000); }
با اجرای این کد، باید مقادیری مشابه زیر مشاهده کنید:
- در هوای آزاد: حدود 590
- خاک خشک که نیاز به آبیاری دارد: حدود 380
- رطوبت ایدهآل خاک: بین 277 تا 380
- خاکی که تازه آبیاری شده است: حدود 277
- در یک لیوان آب: حدود 273
این آزمایش ممکن است نیاز به آزمون و خطا داشته باشد. پس از ثبت مقادیر، میتوانید از آنها به عنوان آستانه برای فعالسازی یک عمل استفاده کنید. مثلا فعال کردن شیر برقی و …
کد نمونه آردوینو برای هوشمند سازی آبیاری
کد زیر سطح رطوبت خاک را با استفاده از مقادیر آستانه زیر تخمین میزند:
- کمتر از 277: خاک خیلی مرطوب است
- بین 277 تا 380: رطوبت خاک مناسب است
- بیشتر از 380: خاک خیلی خشک است و نیاز به آبیاری دارد
// تعریف مقادیر آستانه بر اساس مشاهدات شما #define wetSoil 277 // حداکثر مقدار برای خاک "مرطوب" #define drySoil 380 // حداقل مقدار برای خاک "خشک" // تعریف ورودی آنالوگ #define sensorPin A0 void setup() { Serial.begin(9600); } void loop() { // خواندن ورودی آنالوگ و چاپ آن int moisture = analogRead(sensorPin); Serial.print("Analog Output: "); Serial.println(moisture); // تعیین وضعیت رطوبت خاک if (moisture < wetSoil) { Serial.println("Too Wet!"); } else if (moisture >= wetSoil && moisture < drySoil) { Serial.println("Everything is OK!"); } else { Serial.println("Too Dry!"); } Serial.println(); // هر ثانیه یک بار اندازهگیری کنید delay(1000); }
اگر همه چیز درست باشد، باید خروجی مشابه زیر را در مانیتور سریال مشاهده کنید: