نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
محرم

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

انجمن های تخصصی برق و الکترونیک ECA

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

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


 

انواع روش موقعیت یابی

خب بریم اصل متلب که ببینیم کلا قضیه از چه قراریه. برای موقعیت یابی دو روش رایج وجود داره :
1) استفاده از ماهواره های gps که الان همه جا به وفور هستش، مثلا توی گوشی های هوشمند هستش؛ یه گیرنده است که با ماهواره های درحال گردش در فضا ارتباط برقرار می­کنه و موقعیت خودش را به دست میاره؛ استفاده از این سرویس رایگان هستش و هزینه ای نداره؛ چند کشور این سرویس رو دارن پشتیبانی میکنن؛ اولین کشور که در این زمینه فعالیت کرد آمریکا بودش، الان روسیه، چین و اتحادیه اروپا در این زمینه فعال هستن.
2) روش دیگه ای که میتونه موقعیت یابی کنه ولی خطای نسبتا زیادی داره، استفاده از دکل های مخابراتی هست که گوشی تلفن و یا ماژول سیم کارتی مثل  sim800c به اون وصل میشن و یه موقعیت تقریبی از بین سه دکل مخابراتی نزدیک به تلفن همراه به دست میاد و به عنوان موقعیت تقریبی ازش استفاده میشه. مثلا من وقتی امتحان کردم یه کوچه بالاتر رو نشون میداد.
ما در این پروژه از روش دوم استفاده می­کنیم؛ برای استفاده از این روش باید به اینترنت متصل بشیم. پس طبعا باید اینترنت روی سیم کارتمون فعال باشه؛ بعد به کمک یه دستور میتونیم موقعیت تقریبی خودمون ببینیم؛ روش کاری ما در این پروژه اینطور هستش که ما به شماره سیم کارتی که توی دستگاهمون هست زنگ میزنیم؛ مثل پروژهای قبلی دستگاه تماس رو قطع میکنه و این بار مثل پروژه های قبلی که دما رو میفرستاد، یه لینک بهمون اس ام اس میکنه که اگه روش کلیک کنیم، میتونیم موقعیت تقریبیمون رو مشاهد کنیم.
 

قطعات مورد نیاز پروژه ردیاب ماشین

برای این پروژه احتیاج به قطعات زیر داریم:
1) میکروکنترلر ( یه میکرو مگا 16 کافیه، حالا میتونین مگه 32 و … استفاده کنین، ولی مگا 16 جوابه )
2) ماژول sim800c ( این همون ماژول سیم کارت خور هستش که قراره بهش زنگ بزنیم و موقعیتمون رو بگیریم؛ شما میتونین از ارزونترین مدل این ماژول ها ینی sim800l استفاده کنین )
3) سه تا مقاومت یه کیلویی+ خازن برای تغذیه (ی ه هزار میکروفاراد توصیه میشه، اکه بتونین 4 هزار و یا حتی 10 هزار بزارید بهتره، چون نویز تو مدار بخاطر ارتباط اینترنتی یکم زیاد میشه )
نکته خیلی مهم : منبع تغذیه اتون باید بتونه جریان حداقل 2 آمپر رو تامین کنه وگرنه یا ماژول مخابراتی روشن نمیشه و یا اگر بشه حین کار بخاطر اتصال به اینترنت و دریافت تماس خاموش میشه.
 

توضیحات پروژه ردیاب خودرو

اگر تو پروژه قبلی که ارسال دما با اس ام اس بود دقت کرده باشید ما یه پایه ri تو ماژول داشتیم زمانیکه با ماژول تماس میگرفتیم این پایه 0 منطقی ( یا همون 0 ولت ) میشد و ما می فهمیدیم که با دستگاه تماس گرفته شده، اینجا توی میکرو یه وقفه خارجی رخ میداد، وارد روتین وقفه میشدیم پس تماس رو قطع میکردیم و دما رو به کاربر ارسال میکردیم، این جا هم دقیقا همینه فقط جای دما باید موقعیت رو بفرستیم. برای پیدا کردن موقعیت اول با دستور at+sapbr=1,1 اینترنت رو فعال میکینم و بعد با دستور at+cipgsmloc=1,1  موقعیت رو پیدا میکنیم. وقتی که دستور موقعیت یابی رو وارد می­کنیم، ماژول موقعیت ( طول و عرض جغرافیایی ) رو به همراه تاریخ و ساعت برامون میفرسته و بعد با یکم برنامه نویسی طول و عرض جغرافیای رو از داده دریافتی استخراج می­کنیم و به کاربر پیامک میکنیم؛ نکته مهم این هست که برای برنامه، من از قابلیت codewizard استفاده کردم، تنظیماتش به اینصورت هست که تو قسمت وقفه خارجی، وقفه خارجی صفر رو به صورت low level  تعریف کردم، تو قسمت تنظیمات مربوط به سریال ارسال و دریافت رو فعال کردم، وقفه دریافت رو هم فعال کردم و بافر گیرنده رو اندازه اش رو روی  248 بایت تنظیم کردم. فرکانس میکرو هم 8 مگاهرتز با اسیلاتور داخلی تنظیم کردم.
قبل از این که سراغ کد برنامه بریم، بهتره یکبار دیگه سازوکار برنامه رو بررسی کنیم. مراحل به این ترتیب هست که شما با دستگاه تماس میگیرین، میکرو با ارسال دستور ath به ماژول sim800c ارتباط تلفنی رو قطع میکنه و متغیر ri2=1 میشه، بعد از روتین وقفه خارج میشه و تو حلقه تکرار بی نهایت بدنه اصلی برنامه، ینی حلقه (while(1 تو تابع  main، با بررسی شرط 1 بودن متغیر ri2 وارد شرط میشه، اینجا ابتدا با دستور at+sapbr=1,1 اینترنت فعال میشه، بعد با دستور 1و1 at+cipgsmloc= موقعیت رو همونطور که در بالا هم گفتیم دریافت می­کنیم. در قسمت پایین کد برنامه رو بررسی می­کنیم.
 
شماتیک پروژه :پروژه ردیاب ماشین با میکروکنترلر مگا 16
 
کد پروژه :

 
 
عکس پروژه در عمل : اول مطلب قرار داده شده.
 
فیلم پروژه : https://www.aparat.com/v/Sf6ai

 
هر جای برنامه موردی و یا مشکلی و یا ابهامی دیدن تو قسمت نظرات لطفا بگید تا با هم بررسیش کنیم.

تعداد مطالب : 4 تا
دانشجوی ارشد معماری کامپیوتر(سخت افزار)، تا الان استاد های خیلی خوبی داشتم مخصوصا تو دوره ارشد، ولی یکی از بهترین اونها، دکتر عبدالرضا پیشوایی از استاد های دوره لیسانس بودن که سیستم های میکروکنترلری به خصوص سیستم های بی سیم رو بهم معرفی کردن، انشالا همیشه هم ایشون وهم تمام استادای دلسوز و زحمتکش مثل ایشون برقرار باشن.
بقیه جلسات : ???
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) پسورد فایل های سایت : www.dmf313.ir

4) نظرات حاوی کد برنامه نویسی تایید نمیشوند ( قالب سایت بهم میریزه )

  1. مهمان

    امیر

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

  2. مهمان

    سینا

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

  3. مهمان

    امید

    خازن به کجا وصل میشه

  4. مهمان

    مهدی قدیری

    خسته نباشین چقدر لقمه رو چرخوندین دور سرتون مهندس

  5. مهمان

    علی

    سلام
    مهندس پروژه نمیشه دانلود کرد اگه امکانش بود لینک دانلود رو بذارین

  6. مهمان

    محمدباقر

    سلام
    من هم مشکل علی آقا رو دارم. چرا پاسخ موقعیت رو 0و0 می ده؟

  7. مهمان

    علی

    سلام مهندس اینو عملی بستم تو اینترنت هم میره پیام هم میده لینک گوگل مپ و اینه0.000000,0.000000
    لطفا راهنمای کنید وقتی تو اینترنت نباشه پیامی که میده 6تا 0 است ممنون میشم راهنمای کنید

  8. مهمان

    میلاد مرادی بیدهندی

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

  9. مهمان

    رضا

    سلام.من واسه تبدیل به hex مشکل دارم.میتونید لطف کنید بگید با چه زبانی یا چه برنامه ای نوشتید که بتونم تبدیل به hex کنم.ممنون

  10. مهمان

    ramin

    سلام خسته نباشید
    #define دقیقا برای چی کاربرد داره؟!
    یک مثال ساده هم براش میزنید که متوجه بشم
    تشکر

  11. مهمان

    کوروش

    سلام
    لطفا دریافت پیامک از ماژول و کنترل رله رو بگذارید . با مگا 16 و کریستال8 یا بدون کریستال. ممنون

  12. مهمان

    بهنام

    سلام
    ببخشید چجوری میتونم فایل شو دانلود کنم

  13. مهمان

    محسن زارع

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

    • نویسنده این مطلب

      معین صابری

      سلام
      ممنونم
      با دستور زیر:
      AT+SAPBR=0,1

  14. مهمان

    SISRSIS

    سلام sim800 رو باید کافیک کنیم

  15. مهمان

    حسین

    سلام آقای صابری،ایمیل تون برای ارتباط بدید

  16. مهمان

    حسین

    سلام،خسته نباشی،دستورات در برنامه کدویزارد،Erorمیده،خواهشا فایلشو بزارین برا دانلود

  17. مهمان

    محمد

    سلام.خسته نباشید و ممنون بابت سایت خوبتون.
    من میخوام با یه ماژول دوربین(ov7670)فیلم (نه عکس) ضبط کنم و روی یک کارت sd ذخیره کنم.آیا میتونم از میکروکنترلر استفاده کنم؟اگه میشه لطفا راهنماییم کنید.اگه با میکرو نمیشه با چی میتونم این کارو انجام بدم که خیلی هزینش بالا نره.(فکر کنم با رزبری پای بشه ولی هزینش بالاست)بهترین چیزی که تو اینترنت پیدا کردم ذخیره کردن عکس با اردوینو بود.

  18. مهمان

    shahin

    سلام
    با روش اول هم اگر امکان داره برامون بزارید ممنون

    • مهمان

      معین صابری

      سلام
      یه مدت نبودم ولی انشالا حتما روش کار میکنم

  19. مهمان

    علی

    سلام/می خواستم بدونم چجوری sim 800c رو تو پروتوس کشیدید من که زدم هیچ ماژولی با این مشخصات نیاورد

    • مدیر سایت

      مهدی دمیرچیلو

      سلام – مطالب آموزش پروتئوس در سطح نت رو دنبال کنید.

  20. مهمان

    علی

    سلام ، خود ماژول sim 800l تنظیماتی نمیخواد ؟؟

  21. مهمان

    مهدی دا

    عالی بود
    دمتون گرم موفق باشید..

  22. مهمان

    جواد

    سلام میخواستم بگم که نمیشه یه جوری برنامه نویسی کرد که مستقیم وصل بشه به گوگل مپ ومکانش رو به مابگه

  23. مهمان

    محمود بهشتی

    سلام و خسته نباشید
    میشه بفرمایید چطوری باید مطمئن بشیم ماژول به اینترنت وصله

    • مهمان

      معین صابری

      سلام
      برای اینکه مطمئن بشید به اینترنت وصله باید دستور زیر رو بزنید:
      AT+SAPBR=2,1
      ماژول در جواب به شما ای پی آدرس رو میگه، در صورتیکه به اینترنت وصل نشده باشه مقدار 0.0.0.0 رو برمیگردونه

  24. مهمان

    محمود بهشتی

    باز هم سلام
    مدار این پیغام رو برام میفرسته
    <>
    بنظرتون مشکل از چیه؟

    • مهمان

      معین صابری

      سلام،والا نمیدونم، یه بررسی کنین ببینین اتصالات درست هستن؟
      ضمنا حتما حتما حتما مطمئن شید یه ماژول به اینترنت متصل شده باشه

  25. مهمان

    محمود بهشتی

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

    • نویسنده این مطلب

      معین صابری

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

  26. نویسنده سایت

    محمدرضا اسلامی

    سلام
    خدا قوت…
    victory

    • نویسنده این مطلب

      معین صابری

      سلام، ممنونم مهندس

  27. مهمان

    amir

    سلام مهندس اون دستورات اسمبلی که تو وقفه ی دریافت نوشتین واسه چیه؟

    • نویسنده این مطلب

      معین صابری

      سلام، اونها رو من ننوشتم کد ویزارد خودش تولید کرده
      تو قسمت اول که عبارت push داره، مقادیر رجیسترهایی که ممکنه توی تابع دریافت وقفه استفاده بشن و مقدارشون تغییر کنه، تو حافظه ای به نام پشته ذخیره میشن که مقدارشون از دست نره
      بعد که کار تابع وقفه تموم میشه و میخواد بیاد بیرون، اون مقادیری رو که ذخیره کرده بود با دستور pop از روی پشته آزاد میکنه

  28. مهمان

    POORIY313

    سلام من یه ایمیل به شما دادم در مورد SX1278 هنوز جواب ندادید! حدود یک هفته شاید بشه
    ممنون میشم پاسخ بدید

    • نویسنده این مطلب

      معین صابری

      سلام، من به همه ایمیل ها جواب میدم
      شما هیچی ایمیلی نفرستادید

      • مهمان

        حسین

        سلام مهندس ایمیل تو بهم بده

  29. مهمان

    محمد

    سلام فروشگاهی که ماژول sim800c گرفتین معرفی کنید؟

    • نویسنده این مطلب

      معین صابری

      سلام، فروشگاه الکترونیک 724