سیم کارت GSM - GPRS

پروژه هشدار سرعت غیر مجاز و خروج از محدوده خودرو با پیامک Sim800L

car-speed-limit-alarm-with-sim800l-and-distance-limiter-arduino-digispark
نوشته شده توسط معین صابری

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

 


ماژول SIM800L


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

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

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

 

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

 


ماژول GPS از نوع NEO6M


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

 

جهت دریافت موقعیت از ماهواره ها، نیازمند ماژول های گیرنده GP0S هستیم. یکی از این ماژول ها، ماژول های UBLOX هستند. این ماژول ها یکی از پایدارترین و پرکاربردترین گیرنده های GPS بوده که به سادگی با بردهای آردوینو، ESP و سایر میکروکنترلرها راه اندازی می گردد. به کمک این ماژول می توانیم موقعیت دقیق خود را همراه با اطلاعات جانبی نظیر ارتفاع، سرعت، ساعت و تاریخ و… بدست آوریم. در این پروژه از این ماژول جهت تعیین موقعیت و سرعت خودرو استفاده می کنیم. به کمک این ماژول موقعیت مکانی دقیق را بدست آورده و به وسیله ماژول SIM800L، اطلاعات خودرو شامل سرعت و موقیعت جغرافیایی به کاربر پیامک گردد.

 


برد آردوینو UNO


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

 

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

 


باتری لیتیم پلیمر


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

 

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

 


ماژول های افزاینده و کاهنده ولتاژ


برد آردوینو UNO قابلیت تغذیه از طریق کابل USB و جک آداپتور را دارد. همچنین بر روی این برد، پایه ای به نام VIN، به ورودی مثبت جک آداپتور نیز متصل است. به لطف وجود رگولاتورهای ۵ ولت و ۳٫۳ ولتی، برد آردوینو قابلیت تغذیه از طریق پایه VIN و جک آداپتور را در بازه ۶ الی ۱۲ ولت، داراست.  از طرف دیگر، ولتاژ باتری لیتیم پلیمری در بازه ۳٫۴ الی ۴٫۲ قرار می گیرد. در این پروژه ما قصد تغذیه آردوینو از طریق پایه VIN را داریم. بنابراین، ابتدا ولتاژ باتری را به کمک رگولاتور XL6009، تا ۹ ولت بالا می بریم.

 

از طرف دیگر، با توجه به ریپل ها و نوسان های احتمالی در خروجی ماژول XL6009 که می تواند بر عملکرد آردوینو تاثیر گذاشته و موجبب آسیب به آن شود، از ماژول کاهنده ولتاژ  LM2596 بهره می بریم. به کمک ماژول کاهنده، ولتاژ ۹ ولت افزایش یافته را به ۷ ولت، کاهش می دهیم. در رابطه با دلیل این موضوع و اطلاعات تکمیلی، می توانید آموزش جامع افزایش ولتاژ باتری لیتیم پلیمیری را با کلیک بر روی این لینک، دانلود کنید.

 


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


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

 

مطابق تصویر فوق، ابتدا اتصالات ماژول GPS به برد آردوینو را به شکل زیر انجام دهید.

ماژول GPS برد آردوینو UNO
VCC ۵V
GND GND
TX ۶

 

در ادامه اتصالات ماژول SIM800L می توانید به شکل زیر اجرا کنید.

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

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

  • اتصال کابل های مثبت و منفی باتری با رعایت پلاریته به ورودی ماژول افزاینده XL6009
  • تنظیم ولتاژ خروجی ماژول افزاینده بر روی ۹ ولت از طریق مولتی ترن تعبیه شده روی برد
  • اتصال خروجی منفی افزاینده به ورودی منفی کاهنده LM2596
  • اتصال خروجی مثبت افزاینده به کمک یک دیود به ورودی مثبت کاهنده
  • تنظیم خروجی ولتاژ کاهنده روی ۷ ولت و اتصال پایه مثبت خروجی به پایه VIN آردوینو و اتصال پایه منفی خروجی کاهنده به پایه GND آردوینو

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

 


کدهای پروژه


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

  • حین آپلود کد، تغذیه متصل به پایه VIN را جدا کرده و سپس کابل USB را به برد متصل کنید.
  • هنگام آپلود کدها روی برد، کابل متصل به پایه RX برد آردوینو را جدا کرده و پس از آپلود، مجددا متصل کنید.

 

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

 

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

 


اجرای پروژه و نحوه تنظیم محدودیت جغرافیایی و سرعت


در این قسمت به اجرای پروژه می پردازیم. جهت اجرای  صحیح این پروژه، توجه به نکات زیر ضروریست.

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

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

 

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

!speed,distance,lat,lng#

مطابق فرمت فوق، داده های ارسالی با ! شروع و با # پایان می یابند. هر داده(فیلد) نیز با یک ویرگول از داده بعدی جدا می گردد. این داده ها به شرح زیر تعریف می گردند.

  • speed: به کمک این فیلد حداکثر سرت مجاز تریف می گردد. در صورتیکه خودرو سرعتی بیش از سر مجاز طی کند، مورد طی یک پیامک به کاربر اعلام می گردد.
  • distance: به کمک این متغیر حداکثر فاصله به کیلومتر تعیین می گردد. به کمک این متغیر تعیین می کنید که از نقطه مورد نظر شما، خودرو چند کیلومتر مجاز است تا دورتر شود.
  • lat:  به کمک این متغیر شما عرض جغرافیایی مبدایی که خودرو مجاز است از آن دور شود را تعیین می کنید.
  • lng: به کمک این متغیر شما طول جغرافیایی مبدایی که خودرو مجاز است از آن دور شود را تعیین می کنید.

توجه: در رابطه با تعیین حصار جغرافیایی(محدودیت جغرافیایی) توجه داشته باشید که این حصار به صورت یک دایره تعریف می شود. متغیر distance شعاع این دایره و متغیر های lat و lng مرکزیت این دایره را تعیین می کنند.

تصویر زیر نمایی از نحوه ارسال پیامک تعیین محدودیت را به همراه جواب دریافتی مشخص می کند. در این تصویر حداکثر سرت مجاز ۸۰ کیلومتر، حداکثر فاصله مجاز ۳ هزار متر(سه کیلومتر) و طول و عرض جغرافیایی مبدا نیز به صورتی که در تصویر مشاهده می کنید، مشخص است.

 

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

 


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


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

 

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

 

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

 


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


  1. ماژول رگولاتور افزاینده XL6009
  2. ماژول کاهنده ولتاژ با ورودی ۴ الی ۶۰ LM2596HVS
  3. انوع باتری
  4. انواع فیوز
  5. ماژول شارژ باتری های لیتیمی
  6. دیود ۱N5408
  7. مقاومت یک کیلو اهمی
  8. برد آردوینو UNO
  9. ماژول SIM00L
  10. ماژول GPS-NEO6M

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۸ دیدگاه

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

  • سلام چه پروژه عالی
    ۱-می شود به جای باتری به برق ماشین وصل کرد؟
    ۲-یک پیشنهاد می شود یک سنسور حرکتی مثل pir هم اضافه کرد که نقش یک دزدگیر راهم اعمال کند که وقتی که بشود روشن و خاموش هم کرد که اگر وقتی روشن بود اگر کسی وارد شد پیامک بدهد

    • سلام و ممنونم از شما
      ۱-بله این مورد امکان پذیر است. از آنجاییکه برق خودروهای سواری معمولا بین ۱۲ الی ۱۵ ولت در حال نوسان است، م ی توان به آردوینو متصل نمود. البته بهتر است به دلیل نوسانات، از رگولاتور استفاده شود.
      ۲-سنسور PIR تحت نویز GSM دچار اختلال می شود؛ در این رابطه آموزشی در حال انتشار است.

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

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

  • سلام خیلی ممنون از مطلب عالیتون، کتابخانه TinyGPS++ رو از کجا دانلود کنیم؟؟
    لطفا لینکش رو قرار بدید داخل گوگل چیزی پیدا نکردم

    • سلام و ممنونم از شما
      در نرم افزار آردوینو منوی Tools و گزینه manage libraries کلیک کنید. سپس در کادر ظاهر شده، عبارت TinyGps++ را تایپ کرده و کتابخانه مربوط را نصب نمایید.