آموزش آردوینوپروژه های آردوینو

پروژه آبیاری اتوماتیک باغ با آردوینو و هشدار SMS

سلام. پروژه آبیاری اتوماتیک باغ با آردوینو و هشدار SMS را آماده کردیم.

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

وقتی چند روز از شهر خارج میشویم، همیشه نگران گل و گیاهان خود هستیم که به صورت مرتب به آبیاری نیاز دارند. در این پروژه آردوینو ما یک سیستم آبدهی خودکار درختان میسازیم که باغ و گلخانه شما را آبیاری میکند و با پیامک به شما هشدار میدهد. در این پروژه ما از یک سنسور رطوبت خاک استفاده کردیم. این سنسور رطوبت خاک را بررسی میکند و اگر سطح رطوبت کم باشد، arduino پمپ آب را فعال میکند تا هنگامی که سطح رطوبت خاک به حد مطلوب برسد. هرگاه سیستم پمپ را روشن و خاموش کند، پیامی از طریق ماژول GSM برای کاربر ارسال میشود. این پروژه قابل استفاده در باغ ها، خانه ها و … است. این سیستم کاملا خودکار است و نیازی به مداخله انسان ندارد.

فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

همچنین پروژه آبیاری خودکار گیاهان با آردوینو را مشاهده کنید.

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

کار با این سیستم آبیاری اتوماتیک گیاه بسیار ساده است. اول از همه باید بدانید این یک سیستم کاملاً خودکار است و برای کنترل سیستم نیازی به نیروی انسانی نیست. از آردوینو برای کنترل کل فرآیند استفاده می شود و از ماژول GSM برای ارسال پیام های اطلاع رسانی به کاربر در تلفن همراه استفاده می شود.

نحوه کار پروژه آبیاری خودکار گیاهان با ارسال پیامک

اگر رطوبت در خاک وجود داشته باشد ، ارتباط بین دو تیغه سنسور رطوبت سنج خاک برقرار میشود و در این حالت پمپ غیرفعال است. در صورتی که رطوبت کم باشد، ترانزیستور خاموش شده و پین D7 ، به حالت High میرود. در این حالت، آردوینو پمپ آب را فعال میکند و پیام “Low Soil Moisture detected. Motor turned ON” به معنای رطوبت کم است، پمپ روشن شد به کاربر ارسال میشود. این پیام قابل شخصی سازی است. و سپس در صورت رسیدن رطوبت به حد مطلوب، Arduino پمپ را خاموش میکند.

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

ماژول GSM Sim800 برای ارسال SMS

در اینجا ما از ماژول TTL SIM800 GSM استفاده کرده ایم. SIM800 یک ماژول چهار باند GSM / GPRS است که به راحتی قابل تعبیه است. ماژول GSM SIM800 یک رابط استاندارد صنعتی ارائه می دهد. SIM800 عملکرد GSM / GPRS 850/900/1800 / 1900MHz را برای صدا ، پیام کوتاه ، اینترنت  ارائه می دهد. طراحی ماژول SIM800 GSM باریک و جمع و جور است.

ماژول GSM Sim800 برای ارسال SMS

ویژگی های ماژول سیم 800

  • ماژول GSM / GPRS چهار باند
  • اندازه کوچک
  • GPRS
  • خروجی TTL

مدار پروژه آبیاری اتوماتیک باغ با آردوینو

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

حسگر رطوبت خاک

از آردوینو برای کنترل کل فرآیند های این سیستم استفاده میشود. خروجی مدار سنسور خاک مستقیما به پین D7 دیجیتال Arduino متصل میشود. از ال ای دی در مدار سنسور استفاده میشود. ال ای دی روشن نشان دهنده وجود رطوبت در خاک است و در حالت خاموش نشان دهنده نبود رطوبت است.

از ماژول GSM Sim 800 برای ارسال پیام کوتاه استفاده میشود. در اینجا ما از ماژول سیم 800 استفاده کرده ایم که ارتباط TTL را استفاده میکند. شما میتوانید از ماژول GSM دیگری مانند Sim900 استفاده کنید. یا اصلا میتوانید استفاده نکنید زیرا فقط نقش اطلاع رسانی دارد و آبیاری خودکار وابسته به وجود این ماژول نیست. از یک رگولاتور LM317 برای تغذیه ماژول GSM استفاده میشود.  در زیر نمودار مدار منبع تغذیه به ماژول TTL sim800 GSM داده شده است:

مدار تغذیه ماژول GSM sim 800 با LM317

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

اگر از ماژول Sim900 TTL استفاده کنید باید از 5 ولت استفاده کنید و اگر بخواهید از ماژول SIM 900 استفاده کنید باید از تغذیه 12 ولت استفاده کنید. یک رله 12V برای کنترل پمپ آب کوچک 220VAC استفاده می شود. رله توسط یک ترانزیستور BC547 هدایت می شود که به پین ​​دیجیتال 11 آردوینو متصل می شود.

اتصال رله برای کنترل پمپ آب

برای نمایش وضعیت و پیام ها از ال سی دی اختیاری نیز استفاده می شود. پین های کنترل ال سی دی، RS و EN به پین ​​های 14 و 15 آردوینو متصل شده و پین های داده LCD D4-D7 به طور مستقیم در پین های 16 ، 17 ، 18 و 19 آردوینو متصل می شوند. LCD در حالت 4 بیتی استفاده می شود و توسط کتابخانه LCD داخلی آردوینو هدایت می شود.

در تصویر زیر میتوانید شماتیک کامل مدار پروژه آبیاری خودکار گلخانه را مشاهده کنید :

شماتیک کامل مدار پروژه آبیاری خودکار گلخانه Arduino

قطعات مورد نیاز

  1. برد آردوینو Uno
  2. ماژول GSM Sim800
  3. ترانزیستور BC547 – دو عدد
  4. ال سی دی کاراکتری 16*2 (اختیاری)
  5. سنسور رطوبت خاک
  6. مقاومت 1 کیلو اهم
  7. مقاومت 10 کیلو اهم
  8. پتانسیومتر 10 کیلو اهم
  9. پتانسیومتر 100 کیلو اهم
  10. تنظیم کننده ولتاژ IC LM317
  11. منبع تغذیه 12v 1A
  12. رله 12v
  13. پمپ آب

کد پروژه آبیاری اتوماتیک باغ با آردوینو

کد این پروژه بسیرا ساده و قابل درک است. کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم. اول از همه ، ما کتابخانه SoftwareSerial را برای راه اندازی پین 2 و 3 به عنوان Rx & Tx ارتباط UART فراخوانی میکنیم. و همچنین کتابخانه LiquidCrystal را برای راه اندازی ال سی دی کاراکتری فراخوانی میکنیم. سپس متغیرهایی را برای موتور ، سنسور رطوبت خاک ، LED و … تعریف کردیم.

#include<SoftwareSerial.h> // کتابخانه ارتباط سریالی
SoftwareSerial Serial1(2,3); // پین های ارتباط سریالی

#include<LiquidCrystal.h> // کتابخانه ال سی دی کاراکتری
LiquidCrystal lcd(14,15,16,17,18,19); // پین های ال سی دی کاراکتری
int led=13;
int flag=0;
String str="";

#define motor 11 // پین فعال سازی موتور با رله
#define sensor 7 // پین سنسور

سپس در تابع setup (void setup)، ارتباط سریال با سرعت 9600 bps آغاز می کنیم و نوع پین ها را تعریف میکنیم. تابع gsmInit برای پیکربندی ماژول GSM فراخوانی می شود.

  Serial1.begin(9600); // نرخ ارتباط سریالی
  Serial.begin(9600);
  pinMode(led, OUTPUT); // تنظیم پین به عنوان خروجی
  pinMode(motor, OUTPUT); // تنظیم پین به عنوان خروجی
  pinMode(sensor, INPUT_PULLUP); // تنظیم پین به صورت ورودی
  lcd.print("Water Irrigaton"); // متن نمایشی در ال سی دی
  lcd.setCursor(4,1); // تنظیم موقعیت متن
  delay(2000); // مدت زمان
  lcd.clear(); // پاکسازی ال سی دی
  lcd.print("IREnx"); // متن نمایشی در ال سی دی
  lcd.setCursor(0,1); // تنظیم موقعیت متن
  lcd.print("Welcomes You"); // متن نمایشی در ال سی دی
  delay(2000); // مدت زمان
  gsmInit(); // پیکربندی ماژول GSM

سپس وضعیت سنسور در تابع loop loop () خوانده می شود، و موتور مطابق با وضعیت سنسور، روشن یا خاموش می شود و همچنین SMS با استفاده از عملکرد sendSMS به کاربر ارسال می شود.

void loop()
{
    lcd.setCursor(0,0);
    lcd.print("Automatic Mode    ");
    if(digitalRead(sensor)==1 && flag==0)
    {
      delay(1000);
      if(digitalRead(sensor)==1)
      {
        digitalWrite(led, HIGH);
        sendSMS("Low Soil Moisture detected. Motor turned ON"); // متن پیام ارسالی
        lcd.begin(16,2);
        lcd.setCursor(0,1);
        .... ......
        ..... ......

بنابراین با استفاده از این سیستم آبیاری اتوماتیک، نیازی نیست هنگام دور بودن از خانه خود نگران گیاهان خود باشید.

موارد موجود در فایل : شماتیک کامل ، سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

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

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

18 نظر

    1. سلام جناب، کد و شماتیک مدار پروژه ها قرار داده شده و خودتون باید بسازید.

    1. سلام جناب. تغذیه مدار توسط پایه های تغذیه آردوینو انجام میشود.

  1. سلام
    در این پروژه با برد تایمر rtc میشه زمان روشن و خاموش پمپ را کنترل کرد

    1. سلام جناب. در اینصورت نیاز به تغییر جزئی در کد هست.

  2. سلام.
    1.بخش برنامه نویسی آماده هست فقط کپی کنیم یا باید چیزی اضافه کنیم؟؟؟؟
    2.بعد ببخشید میشه زمان روشن و خاموش شدن پمپ را کم و زیاد کنیم ((برای کم و زیاد کردن مقدار آب))؟؟
    3.من از ماژول sim800l استفاده کردم مشکلی نداره؟؟؟؟؟.چون شما800 استفاده کرده بودید.
    ببخشید وقتتون رو گرفتم. ممنون میشم راهنمایی کنید

    1. سلام جناب.
      1. بخش برنامه نویسی آماده هست.
      2. بله میتونید مدت زمان رو تغییر بدید.
      3. فکر نمیکنم تقاوت زیادی باشه اما در اتصالات بایستی دقت بفرمایید.

    2. سلام.
      ببخشید دوباره مزاحم شدم
      2.چطوری می توانم مدت زمان پمپ را تغییر بدم. میشه دقیقا توضیح بدید.
      ممنون میشم راهنمایی کنید

    3. سلام جناب. باید از دستور delay استفاده کنید. اگر نیاز به آموزش بیشتر دارید دوره آموزش آردوینو رو بررسی کنید.

  3. سلام. میشه این پروژه رو بدون ال سی دی کارکتری راه اندازی کرد

    1. سلام جناب. همانطور که نوشته شده، استفاده از LCD کاراکتری در این پروژه اختیاری هست.

  4. سلام
    من پروژه رو درست کردم ولی با GSM مشکل دارم . LEdمدام چشمک میزنه و ثابت نمیشه .

    بعضی وقت ها درست میشه . بعضی وقت ها نه . میتونید در این خصوص راهنمایی بفرمایید .

    1. سلام جناب. چشمک زدن اگر هر 1 ثانیه باشه یعنی اینکه به شبکه متصل نشده. اگر هر 3 ثانیه باشه یعنی همه چی درست هست.

  5. سلام ضمن تشکر از زحمتهای شما نیاز نیست برنانه خاصی نصب کرد ؟شماره همراه چگونه به sim88 ثبت میشه؟

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

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

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