آبیاری هوشمند با آردوینو

مقدمه
سیستم آبیاری هوشمند با استفاده از آردوینو یک پروژه جالب و کاربردی است که میتواند به صورت خودکار گیاهان را آبیاری کند و در مصرف آب صرفهجویی کند. در این سیستم از سنسورها و کنترلر آردوینو برای تشخیص رطوبت خاک و کنترل پمپ آب استفاده میشود.
قطعات مورد نیاز برای انجام پروژه
- برد آردوینو (مانند Arduino Uno)
- سنسور رطوبت خاک
- رله تک کانال
- پمپ آب
- سیمهای اتصال
- منبع تغذیه مناسب برای پمپ آب
- منبع تغذیه مناسب برای آردوینو (معمولاً از طریق USB)
برد آردوینو UNO R3 اورجینال با پردازنده ATmega328P
موجود
| وزن | 25 گرم |
|---|---|
| تعداد در بسته | بسته 1 عددی (تکی), بسته 50 عددی |
موتور پمپ هوا و آب R385 قوی 6 تا 12 ولت
موجود
| تعداد در بسته | بسته 1 عددی (تکی), بسته 100 عددی |
|---|
ماژول رطوبت خاک و زمین YL-100 با ماژول کمکی LM393
موجود
| وزن | 20 گرم |
|---|---|
| طول (میلی متر) | 60 |
| عرض (میلی متر) | 40 |
| ارتفاع (میلی متر) | 10 |
| تعداد در بسته | بسته 1 عددی (تکی), بسته 10 عددی |
ماژول سنسور رطوبت خاک YL-69
موجود
| وزن | 20 گرم |
|---|---|
| طول (میلی متر) | 60 |
| عرض (میلی متر) | 40 |
| ارتفاع (میلی متر) | 10 |
| تعداد در بسته | بسته 1 عددی (تکی), بسته 10 عددی |
موتور پمپ آب کف کش سیم دار 6 ولت سایز بزرگ
ناموجود
| تعداد در بسته | بسته 1 عددی (تکی), بسته 20 عددی |
|---|
مراحل ساخت سیستم هوشمند آبیاری گیاهان
1.سنسور رطوبت خاک:
پایه VCC سنسور را به ۵V آردوینو متصل کنید.
پایه GND سنسور را به GND آردوینو متصل کنید.
پایه سیگنال سنسور را به یکی از پینهای آنالوگ آردوینو (مثلاً A0) متصل کنید.
2. رله:
پایه VCC رله را به ۵V آردوینو متصل کنید.
پایه GND رله را به GND آردوینو متصل کنید.
پایه سیگنال رله را به یکی از پینهای دیجیتال آردوینو (مثلاً پین 7) متصل کنید.
پایههای ورودی رله را به پمپ آب و منبع تغذیه مناسب متصل کنید. توجه داشته باشید که پمپ آب باید ولتاژ مناسب خود را دریافت کند.
3. پمپ آب:
یکی از پایههای پمپ آب را به COM رله و دیگری را به NO (Normally Open) متصل کنید.
4. برنامهنویسی آردوینو:
کد زیر را در نرمافزار آردوینو (Arduino IDE) کپی کنید و در آخر به برد آردوینو خود آپلود نمایید.
const int moistureSensorPin = A0; // پین سنسور رطوبت خاک
const int relayPin = 7; // پین رله برای کنترل پمپ آب
const int moistureThreshold = 300; // حد آستانه رطوبت برای آبیاری (قابل تنظیم)
const int hysteresis = 50; // مقدار هیسترزیس برای جلوگیری از روشن/خاموش شدن مداوم پمپ
bool pumpState = false; // وضعیت پمپ
void setup() {
Serial.begin(9600);
pinMode(moistureSensorPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // پمپ در ابتدا خاموش باشد
}
void loop() {
int moistureLevel = analogRead(moistureSensorPin); // خواندن سطح رطوبت خاک
Serial.print("Moisture Level: ");
Serial.println(moistureLevel);
// بررسی مقدار غیرعادی از سنسور
if (moistureLevel < 0 || moistureLevel > 1023) {
Serial.println("Error: Sensor reading out of range!");
return; // از ادامه اجرا جلوگیری کن
}
// بررسی مقدار رطوبت و کنترل پمپ با هیسترزیس
if (moistureLevel < moistureThreshold && !pumpState) {
digitalWrite(relayPin, HIGH); // پمپ روشن شود
pumpState = true;
Serial.println("Watering the plant...");
}
else if (moistureLevel > (moistureThreshold + hysteresis) && pumpState) {
digitalWrite(relayPin, LOW); // پمپ خاموش شود
pumpState = false;
Serial.println("No watering needed.");
}
delay(10000); // تاخیر 10 ثانیهای برای کاهش خواندن مکرر سنسور
}
توضیحات کد
moistureSensorPin: پینی که سنسور رطوبت خاک به آن متصل است.relayPin: پینی که رله به آن متصل است.moistureThreshold: مقدار آستانه رطوبت که در صورت کمتر بودن از آن، پمپ روشن میشود.- در تابع
setup، پینها تنظیم میشوند و پمپ در ابتدا خاموش میشود. - در تابع
loop، مقدار رطوبت خاک خوانده شده و اگر کمتر از مقدار آستانه باشد، پمپ روشن میشود. در غیر این صورت، پمپ خاموش میماند.
نتیجه گیری
این سیستم به شما امکان میدهد تا به طور خودکار گیاهان خود را بر اساس میزان رطوبت خاک آبیاری کنید و از مصرف بیش از حد آب جلوگیری کنید.


سلام خداقوت در بخش سرهم بندی منظورتون از رله چیه و حتما متور آب و هواR385 لازمه یا چون من همه وسایل رو دارم به جز اون پمپ آبم کمی کوچکتر 6 ولته
مطلب جذابی بود خداقوت
خوشحالیم که مطلب ما مورد پسند شما قرار گرفته است.