سیم کارت GSM - GPRS پروژه های آردوینو

افزایش دقت سنسور PIR تشخیص حرکت در دزدگیرهای سیم کارتی Sim800L

increase-pir-sensitivity-in-gsm-burglar-alarm-with-arduino-digispark
نوشته شده توسط معین صابری

دزدگیرهای سیم کارتی یکی از ابزارهای مهم جهت تشخیص و اعلام حضور غیر مجاز افراد در اماکن مختلف به شمار می روند. به کمک این ابزار شما می توانید از طریق تماس تلفنی، از ورود غیر مجاز افراد به محل مورد نظر مطلع شوید. یکی از ابزارهای تشخیص ورود غیر مجاز، سنسورهای مادون قرمز و یا PIR هستند. این سنسورها به کمک امواج IR، می توانند حضور افراد را تشخیص دهند. اما این سنسورها نسبت به امواج GSM بسیار آسیب پذیر بوده و خروجی آن می تواند تحت تاثیر قرار گیرد. به عنوان نمونه، سنسور تشخیص حرکت SR501 به امواج GSM بسیار حساس بوده و خروجی های غیر واقعی تولید خواهد کرد. در این آموزش به طراحی و پیاده سازی دزدگیر سیم کارتی به کمک سنسور PIR، با هدف حذف و کاهش نویز GSM می پردازیم. در ادامه، با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.

 


سنسور تشخیص حرکت PIR SR501


سنسور تشخیص حرکت PIR، مهم ترین و اصلی ترین قطعه الکترونیکی در پروژه دزدگیر سیم کارتی به شمار می رود. این سنسور مبتنی بر فناوری مادون قرمز (IR) بوده و حساس به گرمای بدن موجودات زنده است. سنسور تشخیص حرکت با ارسال امواج مادون قرمز، منتظر بازگشت آن می شود. موج ارسالی در برخورد با گرمای بدن موجودات زنده، دچار تغییراتی شده که این تغییرات در حین بازگشت موج برای سنسور آشکار و حرکت افراد تشخیص داده می شود. سنسور تشخیص حرکت SR501 دارای یک خروجی دیجیتال است. این خروجی با تشخیص حرکت و یا حضور افراد، از ۰ منطقی(۰ ولت) به یک منطقی(۳٫۳ ولت) تغییر وضعیت می دهد. در این پروژه ما خروجی این سنسور را به ورودی آنالوگ آردوینو متصل کرده تا زمانیکه ولتاژ از ۰ ولت تغییر کرد، حرکت را تشخیص دهیم.

سنسور تشخیص حرکت PIR SR501 - دیجی اسپارک

 

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

تنظیمات ماژول تشخیص حرکت PIR HC-SR501 - دیجی اسپارک

 


ماژول SIM800L


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

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

ماژول Sim800L برای ساخت دوربین سیم کارتی

 

در این پروژه ما از این ماژول جهت اعلام هشدار تشخیص حرکت از طریق تماس تلفنی به کاربر استفاده می کنیم. از آنجاییکه ولتاژ کاری این ماژول بین ۳٫۴ الی ۴٫۲ قرار می گیرد، لذا از طریق ماژول کاهنده ولتاژ LM2596، ولتاژ تغذیه را از ۱۲ به ۴٫۲ کاهش دهده و به ماژول متصل می کنیم. برای راه اندازی و کار با این ماژول کاربردی سلسله آموزشی طی ۱۱ مرحله منتشر شده که با کلیک بر روی این لینک می توانید این آموزش ها را دنبال و مطالعه کنید.

 


برد آردوینو UNO


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

 

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

 


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


ماژول کاهنده ولتاژ LM2596، یکی از کاربردی ترین ماژول ها در جهت تغذیه مورد نیاز قطعات و ماژول های مختلف است. به کمک این ماژول می توانید ولتاژ مورد نظر خود را در خروجی تنظیم کنید. خروجی توان این ماژول ۳ آمپر بوده و کاملا مناسب تغذیه ماژول SIM800L است. با توجه به اینکه ماژول SIM800L دارای بازه تغذیه ۳٫۴ الی ۴٫۴ بوده و در لحظه اول راه اندازی نیاز به جریان دو آمپر دارد، ماژول کاهنده ولتاژ LM2596 برای تغذیه ماژول SIM800L، بسیار کاربردی خواهد بود.

Activation of relays via DTMF call with voice report

 


حذف نویز و افزایش دقت سنسور SR501


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

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

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

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

 


شماتیک و اتصالات


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

پروژه افزایش دقت سنسور PIR - دیجی اسپارک

 

مطابق تصویر فوق، اتصالات بین برد آردوینو و ماژول SIM800L را به شکل زیر انجام دهید. پیش از برقراری اتصالات ماژول SIM800L توجه داشته باشید که خروجی ماژول کاهنده LM2596 را پیش از اتصال به ماژول SIM800L، بر روی ۴٫۲ ولت تنظیم نمایید. این ماژول ورودی خودر را مطابق تصویر از پایه VIN آردوینو دریافت می کند.

  • اتصال پایه VCC ماژول SIM800L به خروجی مثبت ماژول کاهنده ولتاژ
  • اتصال پایه GND ماژول SIM800L به خروجی منفی ماژول کاهنده ولتاژ
  • اتصال پایه TX ماژول SIM800L به پایه RX(0) برد آردوینو
  • اتصال پایه (۱)TX آردوینو با دو مقاومت به صورت تقسیم مقاومتی به RX آردوینو

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

  • اتصال پایه VCC سنسور به پایه تغذیه ۵ ولت آردوینو
  • اتصال پایه GND سنسور به پایه GND آردوینو
  • اتصال پایه OUT سنسور به پایه A0 برد آردوینو

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

 


کدهای پروژه


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

 

 


اجرای پروژه


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

پروژه دزدگیر سیم کارتی با سنسور PIR - دیجی اسپارک

 

با اجرای برنامه، باید تا ۶۰۰ ثانیه(۱۰ دقیقه) صبر کنیم تا سنسور کالیبره شود. در این فاصله حرکتی جلوی سنسور نباید انجام شود. پس از گذشت مدت زمان ۱۰ دقیقه، زمانیکه حرکتی جلوی سنسور تشخیص حرکت صورت گیرد، برد آردوینو با ارسال فرمان، ماژول SIM800L را روشن کرده و پس از روشن شدن، با شماره تماس تعیین شده تماس تلفنی برقرار خواهد کرد.

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

 


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


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

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

پس از ارسال پیامک، ماژول SIM800L را خاموش کرده و برای مدت ۱۰ دقیقه(۶۰۰ ثانیه) صبر خواهیم نمود. پس از این مدت زمان، در صورتیکه حرکتی تشخیص داده شود، مجددا ماژول سیم کارت روشن شده و پس از کنترل و انتظار برای اتصال به شبکه، با شماره از پیش تعیین شده تماس خواهیم گرفت. بدین ترتیب با خاموش بودن ماژول مخابراتی حین نمونه برداری سنسور SR501، اثر نویز GSM بر سنسور از بین خواهد رفت.

 


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


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

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۲۴ دیدگاه

  • سلام مهندس بسیار عالی بود
    فقط اگه میشه این پروژه را با پروژه کنترل وسایل با DTMF ترکیب کنید تا پروژه کامل بشه

  • با سلام و خسته نباشید به استاد عزیز
    سوالی که من داشتم این بود که برای کالیبره کردن pir فقط یک بار برای همیشه کافیه یا برای هر بار روشن کردن این سیستم باید ۱۰ دقیقه دوباره کالیبره بشه؟

  • سلامی دوباره
    استاد چیزی که بهش اشاره نکردین این بود که این سیستم هر چند وقت یک بار رفرش میشه تا دوباره زنگ بزنه مثلا اگه شخصی تماس اول را از دست بده و بعد از چندی دوباره سنسور تغییری را احساس کرد میتوان به شماره زنگ بزنه؟

    • سلام
      در این سیستم با تشخیص مجدد، تماس مجددا برقرار خواهد شد.
      حتی می توان شماره های دیگر هم تعریف کرد تا در صورت عدم دریافت پاسخ مناسب، به دیگر شماره ها تماس بگیرد.

      • سلام آقای صابری
        میخواستم بدونم چطور باید به چند شماره زنگ بزنم؟
        کجای کدهارو ویرایش کنم

        • سلام
          بعد از دستور ATD، بریا ۱۵ ثانیه تاخیر دهید، سپس با دستور ATH تماس را قطع کنید. در نهایت به شماره های جدید با دستور ATD تماس بگیرید.

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

    • بله
      چراکه نه
      اما معمولا پیامک را خیلی ها شاید نخوانند، اما تماس را حتما جواب می دهند!

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

  • ببخشید من در این پروژه یه مشکل پیدا کردم.
    بعد از تماس با مخاطب و پایان تماس باید شبکه gsm قطع بشه تا در سنسور تداخل ایجاد نکند. اما بعد از تماس و قطع آن،‌ ماژول همچنان چراغ چشمک زنش ۳ ثانیه یک بار روشن میشه! و وقتی به سیمکارت درون ماژول تماس میگیرم درحال زنگ خوردن است. در حالی که باید ماژول از دسترس خاموش میشد
    مشکل از کجاست میشه کمک کنید

    • خواهش می کنم
      نه، این مشکل نیست، من در ساختار برنامه این مورد را این طور طراحی کردم؛ برای اینکه ممکن است با تماس اول کاربر متوجه موضوع نشود و با تماس های بعدی متوجه شود.

      • من چندین بار تماس را جواب و قطع کردم اما همچنان ماژول به شبکه وصل است. میتوانید بگویید کدام قسمت از برنامه وظیفه قطع کردن ماژول را دارد؟
        قسمت اول در void setup نه. اون قسمت که بعد از هشدار به شماره مخاطب باید ماژولو از شبکه خارج میکرد

  • روز بخیر اقای صابری من میخواستم همین کد رو به صورت پورت سریال مجازی تعریف کنم. یعنی از پایه ۰ و۱ برای ماژول استفاده نشه و از پایه های ۲و۳ استفاده کنم. حالا میخواستم بدونم باید تمام نوشته های SERYAL رو به MY SERYAL تغییر بدم؟ چجوری باید ازش استفاده کنم اگه زحمت نیست میشه یکم راهنمایی کنید. من از برنامه نویسی زیاد سر در نمیارم

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

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