آردوینو پروژه های آردوینو

طراحی و پیاده سازی سیستم هشدار پیامکی نشت آب با SIM800L و آردوینو

water-leakage-alert-system-with-sim800l-sms-and-arduino-digispark
نوشته شده توسط معین صابری

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

 


ماژول SIM800L


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

  • ولتاژ کاری بین ۳٫۴ الی ۴٫۴
  • قابلیت ارسال و دریافت پیامک
  • قابلیت برقراری تماس صوتی دو طرفه
  • قابلیت اتصال به اینترنت و ارسال و دریافت داده
  • پشتیبانی از پروتکل های FTP،HTTP،SMTP و….
  • قابلیت کار در فرکانس های ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰

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

ماژول SIM800L پروژه ترموستات دیجیتال - دیجی اسپارک

 


برد آردوینو در ترموستات دیجیتال


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

برد آردوینو در ترموستات دیجیتال - دیجی اسپارک

 

به کمک برد آردویینو، هم میتوان بر روی نمونه اولیه کار کرد و هم می توان آن را در محصول نهایی نیز به کار برد. دسترسی ساده و استاندار به پایه های ورودی و خروجی، وجود بوت لودر و پروگرام ساده برد، از مزیت های این برد به شمار می رود. همچنین، بر روی این برد، یک کریستال با فرکانس ۱۶ مگاهرتز قرار گرفته که از بابت تامین منبع کلاک، آسوده خاطر خواهیم بود. با توجه به نزدیک بودن زبان برنامه نویسی آردویینو به زبان ++C، کار با آن برای برنامه نویسان این زبان نیز بدون مشکل خواهد بود. از طرفی دیگر،  با توجه به وجود کتابخانه های متعدد و فراوان برای سنسورها  و نمایشگر های مختلف، این قطعات را به سادگی و بدون نگرانی، می توان به این برد متصل نمود. در این پروژه برد آردوینو به عنوان هسته مرکزی، مقدار ورودی آنالوگ که متصل به پایه A0 سنسور باران است را می خواند. سپس در صورتیکه سطح سنسور را خیس تشخیص دهد، به کاربر پیامک هشدار ارسال می نماید.

 


ماژول تشخیص باران


ماژول تشخیص باران، یک ماژول فوق العاده کاربردی جهت تشخیص آب است. این ماژول از ساختار ساده اما کاربردی بهره می برد. ماژول تشخیص باران از دو قسمت صفحه تشخیص آب و برد الکترونیکی تشکیل شده است. در قسمت برد الکترونیکی یک پایه برای خروجی آنالوگ و پایه دیگر برای خروجی دیجیتال تعبیه شده است. در صورتیکه روی قسمت تشخیص باران آب بریزید، خروجی آنالوگ ماژول از ۵ ولت به ۰ ولت تغییر وضعیت خواهد داد.

 

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

 


ماژول کاهنده ولتاژ LM2596


ماژول های کاهنده ولتاژ یکی از ابزارهای مهم و پرکاربرد جهت تبدیل و کاهش ولتاژ ورودی به ولتاژ ایده ال در خروجی است. به کمک این ماژول ها می توانید با قرار دادن ولتاژ مد نظر در ورودی، ولتاژ ایده آل خود در خروجی را دریافت نمایید. ماژول های کاهنده ولتاژ دارای دو نوع ولتاژ خروجی ثابت و متغیر هستند. در نوع ثابت ولتاژ خروجی همواره یک مقدار مشخص خواهد بود. اما در نوع متغیر، شما می توانید ولتاژ مورد نظر خود را تنظیم نمایید. ماژول کاهنده ولتاژ LM2596، یک ماژول کاهنده ولتاژ با خروجی متغیر است. به کمک این ماژول می توانید ولتاژ های ورودی تا ۴۰ ولت را به سادگی در خروجی به میزان مد نظر خود تبدیل کنید.

ماژول کاهنده ولتاژ LM2596 در پروژه ترموستات دیجیتال - دیجی اسپارک

 

در این آموزش ما از یک آداپتور ۱۲ ولت ۵ آمپر جهت تغذیه آردوینو استفاده می کنیم. از طرفی دیگر، از آنجاییکه ولتاز کاری ماژول SIM800L بین ۳٫۴ الی ۴٫۳ است، ما به کمک ماژول کاهنده، ولتاژ را از ۱۲ به ۴ ولت که مناسب راه اندازی ماژول SIM800L است، کاهش می دهیم.

 


شماتیک و اتصالات پروژه


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

شماتیک اتصالات پروژه هشدار پیامکی نشت آب با آردوینو - دیجی اسپارک

 

 در ادامه، مطابق تصویر فوق اتصالات را برقرار می سازیم.

 


اتصالات سنسور باران و آردوینو


  •  اتصال پایه VCC سنسور به پایه ۵ ولت آردوینو
  • اتصال پایه GND سنسور به پایه GND آردوینو
  • اتصال پایه AO سنسور به پایه A0(پایه شماره ۰ آنالوگ آردوینو)
  • اتصال قسمت تشخیص باران با دو کابل به دو پایه بالایی برد آبی رنگ

 


اتصالات ماژول SIM800L


  •  اتصال پایه TX ماژول SIM800L به پایه ۰(RX سخت افزاری) آردوینو
  • اتصال پایه TX سخت افزاری برد آردوینو(پایه شماره ۱) به کمک تقسیم مقاومتی(دو مقاومت یک کیلو) به پایه RX ماژول SIM800L

برای تغذیه سیستم ما از یک آداپتور ۱۲ ولت ۵ آمپر استفاده می کنیم. با اتصال این آداپتور به جک تغذیه آردوینو، برد تغذیه می شود. همچنین این ولتاژ ۱۲ ولت ۵ آمپر در پایه VIN آردوینو قرار می گیرد. در اینجا ما به کمک مبدل کاهنده ولتاژ LM2596 ولتاژ ۱۲ ولت را به ۴ ولت که ایده آل ماژول SIM800L است، تبدیل می کنیم. برای این مورد ورودی مثبت ماژول کاهنده به پایه VIN و ورودی منفی آن به پایه GND آردوینو متصل می شود. سپس خروجی این ماژول را به کمک مولتی ترن، بر روی ۴ ولت تنظیم می کنیم. در نهایت پایه خروجی مثبت ماژول کاهنده به پایه VCC ماژول SIM800L و پایه خروجی منفی ماژول کاهنده به پایه GND ماژول SIM800L متصل می گردد.

 


کدهای پروژه


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

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

 

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

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


اجرای پروژه


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

سریال مانیتور آردوینو وضعیت خروجی های پیامک - دیجی اسپارک

 

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

پروژه هشدار پیامکی نشت آب با برد آردوینو - دیجی اسپارک

 

 در ادامه پیام های دریافتی را به شماره ای که در کد برنامه تعیین کرده اید، می توانید مشاهده کنید.

 

 


تحلیل کدهای پروژه


پس از اجرای پروژه نوبت به تحلیل و بررسی کدهای پروژه می رسد. توجه داشته باشید که در کدهای پروژه به صورت خط به خط توضیح(کامنت) درج شده است. در اینجا نیز به طور خلاصه به بررسی کدها می پردازیم. در ابتدا به کمک تابع  زیر کنترل اتصال به شبکه بررسی می شود.

check_connect()

 

پس از اتصال شبکه، برنامه به طور دائم وضعیت سطح سنسور را بررسی می کند. چنانچه مقدار آنالوگ خوانده شده در ورودی از ۵۱۲ کمتر شود، یعنی سطح سنسور مرطوب شده و آب نشت داده است. در این حالت، چنانچه پیشتر پیامی ارسال نشده باشد و یا از ارسال پیام قبلی بیش از ۳۰ ثانیه گذشته باشد، پیامکی به کاربر ارسال می گردد. توجه داشته باشید که زمانبندی توسط تابع millis() صورت می گیرد. ارسال پیام نیز توسط تابع زیر صورت می گیرد.

send_alarm()

 


لوازم مورد نیاز


  1. مقاومت یک کیلو اهمی
  2. سنسور تشخیص باران
  3. برد آردوینو UNO
  4. آداپتور ۱۲ ولت ۵ آمپر
  5. ماژول کاهنده ولتاژ LM2596
  6. ماژول سیم کارت SIM800L

 


جمع بندی


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

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۴ دیدگاه