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

پروژه آبیاری اتوماتیک باغ با آردوینو و هشدار 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);
        .... ......
        ..... ......

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

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

4.3 (23 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

63 نظر

  1. سلام جناب . چرا اردوینو نمیتونه ماژول رو پیدا کنه و متن Finding Module نشون داده میشه ؟

  2. با سلام و احترام تو این پروژه میتونیم ماژول gsm و ال سی دی کارکتری رو حذف کنیم؟ مورد خاصی ایجاد نمیشه؟

  3. سلام.وقت بخیر. آیا نمیشه با استفاده از ماژول GSM برد رو خاموش و روشن کرد یا کنترلش کرد؟

    1. سلام عزیز
      بله میشه نیاز به تغییر کد هست

  4. سلام ولتاژ مورد نیاز sim 800 کمتر از پنج ولت هست مشکلی بر نمیخوریم مستقیم به پنج ولت وصل کنیم؟

    1. سلام عزیز
      بستگی داره که دقیقا از کدام ماژول Sim800 استفاده میکنید بعضی مدل ها تحمل 5 ولت را دارند

  5. اگه از سنسور رطوبت خاک آماده استفاده بشه و ماژول رله ۵ ولت یک کاناله. که دارای پایه های vcc gnd و سیگنال هست.
    ماژول رله چجوری باید نصب بشه ؟

  6. اگه از سنسور رطوبت خاک آماده استفاده بشه پایه do به پایه ۷ آردوینو .
    وآیا vcc به vcc آردوینو وgnd به پایه gnd آردوینو باید وصل بشه ؟

    1. با توجه به سنسوری که استفاده میکنید VCC را به پایه 5v یا 3.3v آردوینو متصل کنید و GND هم به GND متصل میشود.

  7. آیا میشه از سنسور رطوبت خاک آماده در بازار که پایه های vccوgndوdo داره استفاده اگه میشه باید چجوری در مدار بسته بشه

    1. سلام عزیز
      بله میشه استفاده کنید. پایه DO را به پایه 7 آردوینو باید متصل کنید.

  8. سلام. وقت بخیر
    من میخوام این پروژه رو به عنوان یک پروژه ای دانشگاه ایی انجام بدم، میخواستم بدونم برای شروع این پروژه چه دوره های پیش نیاز اش هست؟ ممنون.

    1. سلام عزیز
      باید دوره آردوینو را مشاهده کنید.

  9. سلام خسته نباشید آموزش بسیار مفید و خوب بود.ولی من همه ی کار ها را انجام دادم و اتصالات و کد را چک کردم همه چیز درسته و زمان کمبود آب گلدان چراغ رله هم روشن میشه ولی پمپ فعال نمیشه مشکل از کجاس؟

    1. سلام عزیز
      اتصالات پمپ صحیح نیست یا پمپ تغذیه خوبی نداره

  10. با سلام خدمت استاد محترم. از راهنماییهای شما تشکر میکنم. من در یک پروژه هوشمند سازی از آردوینوی uno استفاده میکنم اما حجم برنامه زیاد شده و پیام خطا میدهد. البته با کمک دوستان تا حد امکان برنامه را بهینه کرده ایم .اگر ممکن است بفرمایید چگونه میشود این مشکل را حل کرد. با تشکر.

    1. سلام بنده سطح مبتدی هستم.
      چگونه این پیامک به گوشی ارسال می شود ؟
      آیا باید شماره تلفن بارگذاری کنیم؟
      باتشکر از شما

  11. سلام . مهندس میشه نحوه اتصال رله رو توضیح بدید. پایه های مثبت و منفی کدوما هستند.
    مرسی

    1. سلام عزیز، قسمت کویل رله مثبت و منفی نداره به هر شکل که به دو پایه اتصال رو انجام بدید رله فعال میشه

  12. سلام
    این آردوینویی که بنده در مدار خود استفاده نمودم دارای پورت های GND و Vcc=5v و Vin نمی باشد و یا غیرفعال است.
    بنظر شما چگونه باید از این پورت ها استفاده کنم؟(فعال کنم)
    ممنون میشم راهنماییم کنید.

    1. سلام عزیز
      پایه 5V و GND نیازی به فعال کردن ندارند و همیشه 0v و 5v رو دارند
      پایه vin هم ورودی هست و میتونید از طریق این پین آردوینو رو تغذیه کنید تا روشن بشه

    2. آخه Vin هم نداره روی آردوینو توی پروتئوس

    3. در پروتئوس این پین ها موجود نیستند چون نیاز نیست شما آردوینو رو تغذیه کنید. باید از ترمینال های پاور و گراند استفاده کنید. اگر اطلاعاتتون کم هست میتونید دوره آموزش پروتئوس رو ببینید، در این دوره راه اندازی چند پروژه با آردوینو هم انجام میشه.

  13. سلام
    ببخشید من اگر بخواهم اموزش کامل سیستم ابیاری هوشمند را به همراه توضیحات کامل تری از ساخت داشته باشم باید چکار کنم

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

  14. سلام ببخشید من ماژول GSM Sim800 رو نمی‌خوام بزارم اونو نزارم همین کد هارو بزنم درست میشه ؟

    1. سلام عزیز، مشکلی نیست میتونید از sim800 استفاده نکنید.

  15. متن ارورر
    invalid preprocessing directive #defind
    مشکل کتابخانه را حل کرد
    ببخشید اگر از lcd استفاده نکنیم و همچنین ledدر کد پروژه باید قسمت های مربوطه را حذف کنیم یا اگر نوشته شده باشندهم اشکالی نداره

    1. اگر باشند هم مشکلی ایجاد نمیکنه

  16. سلام اقای مهندس شرمنده من بازهم مزاحم شدم
    درباره کد پروژه قسمت فراخوانی تابع softwareserial که برای ارتباط پایه 2و3 و معرفی این دو پایه به عنوان rx&tx من ارورر پیدا نشدن تابع را دریافت می کنم و در بخش که از دستور defind استفاده میشود هم ارورر پردازش نشدن رو میده باید چکار کنم

    1. سلام عزیز، متن ارور رو ارسال کنید

  17. سلام ببخشید اقای مهندس
    این probeکه در شماتیک مدار گفته شده منظور چیه ؟ممنون میشم توضیح بدهید

    1. سلام عزیز. منظور از پراب همون سنسور تشخیص رطوبت هست (دو سیمی که به سنسور متصل میشه)

  18. سلام ببخشید ماژول LM317دقیقا کجای مدار قرار میگیره چون تو نقشه مدار نیست ولی داخل وسایل مورد نیاز هست

    1. سلام عزیز، اگر در شماتیک مدار نیست نیازی نیست استفاده کنید.

  19. سلام
    ببخشید اقای مهندس بجای استفاده از پمپ گفته شده میشه از پمپ کولر استفاده کرد ؟

    1. سلام عزیز، بله در صورتی که رله مورد استفاده با ولتاژ آردوینو و پمپ کولر هماهنگی داشته باشه میتونید استفاده کنید.

  20. سلام
    خیلی ممنون از راهنمایی خوبتون جناب مهندس
    بنظر شما استفاده از پمپ آب صرفه اقتصادی بیشتری داره یا شیر برقی ؟منظور از لحاظ قیمت و راحتی در انجام مراحل آبیاری است

    1. باید با توجه به کاربرد انتخاب کنید.

  21. سلام
    ببخشید اقای مهندس در مورد پروژه ابیاری هوشمند با برد اردوینو میشه بجای اتصال به پمپ آب از |آب شهری استفاده کنیم ؟چطوری باید این کار را انجام دهیم و آیا در کد تغییر ی بوجود می اید ؟

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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