انجام پروژه با آردوینو, پروژه با آردوینو

سیستم آبیاری خودکار بر پایه آردوینو

انجام پروژه با آردوینو در سیستم آبیاری خودکار با استفاده از Arduino Uno .

اقلام استفاده شده:

آردوینو یونو Arduino UNO
ماژول گیرنده 2 کانال لرن سفید 433
ماژول سنسور خاک FC-28
ماژول سنسور رطوبت hr202
جا باتری 18650 2 تایی
موتور پمپ ورودی خروجی 6 ولت
موتور پمپ قوی مشکی 12 ولت ماشین
موتور پمپ شناور 6 ولت
موتور پمپ قوی 12 ولت
سیم برد بردی 40 تایی دو سر نری
باتری ۱ سل 300mah 25c های پاور پروازی
ماژول رله 5ولت 1کانال Relay module1ch


پک اقلام مورد نیاز:

سیستم آبیاری خودکار بر پایه آردوینو:

کارکرد سیستم آبیاری اتوماتیک

در مورد پروژه سیستم آبیاری خودکار بر پایه آردوینو:

همه ما دوست داریم کمی گیاهان سبز در خانه هایمان داشته باشیم، اینطور نیست؟ گیاهان نیاز به نگهداری بسیار کمی دارند و می توان آنها را برای روزها بدون نظارت رها کرد، اما سفرهای طولانی ما که بیش از یک یا 2 هفته طول می کشد می تواند به دلیل کمبود رطوبت در خاک برای سلامت گیاهان مضر باشد. در چنین شرایطی ممکن است گیاه به دلیل عدم آبیاری مناسب پژمرده شود یا بمیرد. برای حل این مشکل، در این پروژه، ما در حال ساخت یک سیستم آبیاری خودکار با آردوینو Uno هستیم که گیاهان شما را به صورت خودکار آبیاری می کند و حتی زمانی که هفته ها یا ماه ها خارج از شهر هستید، آنها را سالم نگه می دارد. در این پروژه از یک سنسور رطوبت برای حفظ سطح بهینه رطوبت برای گیاهان شما استفاده می شود. این سیستم را می توان هم برای باغچه و هم برای گیاهان داخل خانه اجرا کرد، بنابراین از گیاهان خانگی برگدار خود در زمانی که دور هستید مراقبت کنید.

کارکرد سیستم آبیاری اتوماتیک:

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

سنسور رطوبت خاک:

درک عملکرد سنسور رطوبت خاک بسیار آسان است. دارای 2 پروب با کنتاکت های exposed که مانند یک مقاومت متغیر عمل می کنند که مقاومت آن با توجه به محتوای آب در خاک متفاوت است. این مقاومت با رطوبت خاک نسبت معکوس دارد به این معنی که آب بیشتر در خاک به معنای هدایت بهتر و در نتیجه مقاومت کمتر است. در حالی که آب کمتر در خاک به معنای رسانایی ضعیف است و منجر به مقاومت بیشتر خواهد شد. سنسور با توجه به مقاومت یک خروجی ولتاژ آنالوگ تولید می کند.

این سنسور دارای یک ماژول الکترونیکی است که پروب را به آردوینو متصل می کند. این ماژول دارای یک مقایسه کننده با دقت بالا LM393 است که سیگنال آنالوگ را به یک خروجی دیجیتال تبدیل می کند که با میکروکنترلر تغذیه می شود.

پمپ:

ما به یک پمپ کوچک برای آبیاری گیاه نیاز داریم، اما در مورد باغچه، باید پمپ بزرگتری را راه اندازی کنیم که بتواند حجم بیشتری از آب را بسته به اندازه باغ شما فراهم کند که نمی تواند مستقیماً توسط آردوینو تغذیه شود. بنابراین در صورت نیاز به کار با پمپ بزرگتر، یک درایور برای تامین جریان کافی برای پمپ ضروری است تا نشان دهد که من از یک رله 5 ولت استفاده می کنم. همچنین می توانید از پمپ AC و از رله مناسب استفاده کنید. کار به همان شکلی که در این پروژه نشان داده شده باقی می ماند، فقط باید ورودی برق DC متصل به رله را با یک ورودی برق AC جایگزین کنید و باید آردوینو خود را با یک منبع تغذیه DC جداگانه تغذیه کنید.

قطعات مورد نیاز برای سیستم آبیاری اتوماتیک:

این پروژه به اجزای بسیار کمی نیاز دارد و اتصال نیز بسیار ساده است. مولفه ها در زیر لیست شده اند:

  • آردوینو * 1
  • سنسور رطوبت * 1
  • ماژول رله 5 ولت * 1
  • پمپ آب مینی 6 ولت با لوله کوچک * 1
  • سیم های اتصال
  • باتری 5 ولت * 1

نمودار مدار سیستم آبیاری اتوماتیک آردوینو:

نمودار مدار کامل سیستم آبیاری اتوماتیک آردوینو در زیر نشان داده شده است:

در این قسمت تمام جزئیات را با کمک نمودار شماتیک توضیح خواهم داد. Arduino UNO مغز کل این پروژه است. موتور پمپ را با توجه به رطوبت موجود در خاک که توسط سنسور رطوبت داده می شود، کنترل می کند.

برای تغذیه مدار، من از یک باتری خارجی استفاده می کنم. می توانید از هر باتری 9 ولتی یا 12 ولتی استفاده کنید. باتری به پین ​​های Vin و زمین آردوینو متصل است و همچنین می توانیم موتور را از طریق رله به این باتری متصل کنیم. خروجی سنسور رطوبت به پین ​​آنالوگ آردوینو متصل است. به یاد داشته باشید که از پایه 5 ولتی آردوینو برای تغذیه سنسور و ماژول رله استفاده کنید.

مونتاژ سیستم آبیاری اتوماتیک:

بیایید با اتصال رله به برد آردوینو شروع کنیم. VCC ماژول رله را به پایه 5 ولت آردوینو وصل کنید و زمین رله را به زمین آردوینو وصل کنید. حالا پایه سیگنال رله را به هر پایه دیجیتال آردوینو به جز پایه 13 وصل کنید. در اینجا من آن را مطابق تصویر زیر به پایه 3 وصل کردم.

مرحله بعدی اتصال سنسور رطوبت خاک به آردوینو است. VCC و gnd سنسور را به پایه 5 ولت و زمین آردوینو وصل کنید. خروجی آنالوگ سنسور به هر پایه آنالوگ آردوینو متصل می شود، در اینجا من آن را به پایه A0 وصل کرده ام (طبق برنامه ما).

در نهایت پمپ را به ماژول رله وصل کنید. یک ماژول رله دارای 3 نقطه اتصال است که مشترک، نرمالی بسته و نرمالی باز هستند. باید پمپ مثبت را به مشترک وصل کنیم و پایه معمولی باز را به مثبت باتری وصل کنیم. شما باید باتری را مطابق با پمپ خود انتخاب کنید. مرحله بعدی اتصال زمین پمپ به زمین آردوینو و در نهایت اتصال شلنگ کوچک به پمپ آب است.

حالا باتری را به مدار وصل کنید و اگر پمپ شروع به کار کرد مدار شما مشکلی ندارد. حالا بیایید کد را در آردوینو آپلود کنیم.

توضیح کد سیستم آبیاری اتوماتیک:

برای این پروژه، ما از هیچ کتابخانه ای استفاده نمی کنیم و فقط از توابع اولیه برای برنامه نویسی استفاده می کنیم. کد بسیار ساده و آسان برای استفاده است. توضیح کد به شرح زیر است:

ما با تعریف تمام اعداد صحیح مورد نیاز در اینجا شروع می کنیم. من از دو عدد صحیح برای ذخیره رطوبت خاک و درصد رطوبت تبدیل شده استفاده کردم.

int soilMoistureValue = 0;
int percentage=0;

حال ما حالت پین را تعریف می کنیم، در اینجا از پایه 3 به عنوان خروجی استفاده شده است و در خط بعدی، Serial Monitor را برای اشکال زدایی مقداردهی اولیه است.

void setup() {
  pinMode(3,OUTPUT); 
  Serial.begin(9600);
}
بخش حلقه را با خواندن رطوبت خاک شروع شده است.  از تابع analogRead آردوینو برای خواندن رطوبت خاک استفاده شده و آن را در earthMoistureValue ذخیره شده است. این مقدار از 0 تا 1023 متغیر است.
void loop() {
soilMoistureValue = analogRead(A0); 

در خط زیر، مقادیر سنسور را از 0 تا 100 درصد تبدیل شده که ما از تابع نقشه در آردوینو استفاده می کنیم. به این معنی که اگر خاک خشک باشد، درصد رطوبت خروجی 0٪ و اگر خاک بسیار مرطوب باشد، درصد رطوبت 100٪ است.

percentage = map(soilMoistureValue, 490, 1023, 0, 100);
Serial.println(percentage);

کالیبره کردن سنسور رطوبت مان:
در تابع نقشه، باید مقدار خشک و مقدار مرطوب را تعیین کنیم. برای انجام این کار، باید آن مقادیر را رصد کنیم. با استفاده از کد زیر می توانید این مقادیر را بخوانید:

void setup() {
  Serial.begin(9600);
}
void loop() {
 int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  delay(1);
کد بالا را در آردوینو آپلود کنید و سریال مانیتور را باز کنید. سپس سنسور رطوبت خاک خود را در خاک خشک قرار دهید یا فقط سنسور را در هوا نگه دارید و مقدار آن را بخوانید. اکنون آن مقدار را به جای 490 (ترم دوم تابع نقشه) قرار دهید.

مرحله بعدی این است که سنسور را در خاک مرطوب قرار دهید یا آن را در آب غوطه ور کنید و مقدار را بخوانید و آن مقدار را به جای 1023 (ترم سوم تابع نقشه) اختصاص دهید. این مقادیر حسگرهای شما را به درستی کالیبره می کنند تا نتایج بهتری به دست آورید.

پس از تبدیل مقادیر می توانیم پمپ را با توجه به درصد رطوبت خاک کنترل کنیم. با کمک “If condition” شرط اول را می نویسم، اگر درصد رطوبت به زیر 10 برسد، آردوینو پایه 3 را به LOW تبدیل می کند و پمپ روشن می شود (ماژول رله ما از سیگنال پایین فعال برای trigger استفاده می کند) و آردوینو پمپ روی پیام را در مانیتور سریال چاپ می کند.

If (percentage < 10) 
{
  Serial.println(" pump on");
  digitalWrite(3,LOW);
}

هنگامی که درصد رطوبت به بالای 80 درصد می رسد (که نشان می دهد خاک با آب پر شده است)، آردوینو پمپ را خاموش می کند و “پمپ خاموش” را روی نمایشگر سریال چاپ می کند.

if(percentage >80) 
{
  Serial.println("pump off");
  digitalWrite(3,HIGH); 
}
}

تست سیستم آبیاری اتوماتیک:
پس از آپلود کد در آردوینو، تمام مدار به جز پمپ و پروب سنسور را مانند شکل زیر در یک جعبه پلاستیکی قرار دادم.

حالا سنسور رطوبت را در خاک قرار دهید. برای دقت بیشتر، سنسور را تا حد امکان نزدیک به ریشه گیاهان قرار دهید.

مرحله آخر این است که موتور خود را در یک ظرف پر از آب قرار دهید و آبیاری خودکار شما آماده مراقبت از گیاهان دوست داشتنی شما در مواقعی است که شما در کنارشان نیستید.

ممکن است لازم باشد درصد رطوبت را برای راه اندازی و توقف پمپ تغییر دهید زیرا گیاهان مختلف نیاز آبی متفاوتی دارند. امیدواریم از این پروژه لذت برده باشید و آماده باشید تا سیستم آبیاری خودکار خود را با استفاده از آردوینو بسازید. در صورت داشتن هر گونه سوال، می توانید آن را در قسمت نظرات زیر مطرح کنید.

کد:

int soilMoistureValue = 0;
int percentage=0;
void setup() {
  pinMode(3,OUTPUT);
  Serial.begin(9600);
}
void loop() {
soilMoistureValue = analogRead(A0);
Serial.println(percentage);
percentage = map(soilMoistureValue, 490, 1023, 100, 0);
if(percentage < 10)  
{
  Serial.println(" pump on");
  digitalWrite(3,LOW);
}
if(percentage >80)
{
  Serial.println("pump off");
  digitalWrite(3,HIGH);
}
}

فیلم:

فیلم

منبع این مطالب:

https://circuitdigest.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *