ساخت ردیاب با GPS و ارسال پیام با ماژولSIM808 و آردوینو

blog
۱۳۹۸-۰۴-۲۳
7 دقیقه

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

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

در این پروژه از سری پروژه های آردوینو می‌خواهیم اطلاعات GPS ماژول SIM808 را توسط آردوینو دریافت و سپس در قالب یک پیام به همراه نقشه گوگل (GoogleMap) به مخاطب ارسال کنیم.

برای انجام این پروژه به موارد زیر نیاز است:

ماژول سیم SIM808

آنتن GPS و GSM

راه اندازی SIM808 با آردوینو

آردوینو UNO

برد آردینو UNO

 

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

کدنویسی ماژول SIM808

توصیه‌ای که می‌کنیم قبل از خواندن این بخش،

مقاله راه اندازی GSM Modem با آردوینو (MC60) را مطالعه کنید.

در این بخش به موارد زیر می‌پردازیم.

  • راه اندازی GPS
  • ارسال پیام
  • دریافت پیام
  • تنظیمات فعال سازی
  • اعلام موجودی
  • شناسایی اپراتور
  • تغییر زبان سیم کارت به انگلیسی
  • دریافت شماره تلفن
  • معرفی تابع فیلتر پیام
  • حذف پیام‌های دریافتی جهت مدیرت حافظه
  • ارسال پیام به همراه مختصات GoogleMap
  • معرفی تابع فیلتر برای بدست آوردن مقادیر GPS
  • معرفی تابع ارسال پیام به همراه داشتن TimeOut و Debug

نکته: تمامی قابلیت‌ها با کمی خلاقیت قابل تعمیم برای تمام میکروکنترلرهای دیگر هم می‌باشد

راه اندازی GPS با SIM808

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

دقت کنید که دستورات GPS این ماژول کمی دچار تغییر شده‌اند و این اشتباه را نکنید که دستورات را طبق دیتاشیت‌های قدیمی این ماژول وارد کنید چون به احتمال زیاد دچار خطا خواهید شد. البته این روند برای ورژن های جدید ماژول های این شرکت صادق می‌باشد.

به طور مثال اگر دستور روشن کردن GPS را به صورت AT+CGPSPWR=1 وارد کنید ماژول EEROR را نمایش خواهد داد حال برای رفع این موضوع فقط کافیست که دستور را به صورت AT+CGNSPWR=1 وارد کنید و به طور کلی می‌توان گفت که به جای GPS واژه GNS قرار دهید.

دلیل اینکار هم این است که در سری های قبلی این ماژول‌ها از سیستم GPS پشتیبانی می‌شد اما چند سالی است که ورژن‌های جدید این ماژول ها از سیستم GNSS پشتیبانی می‌کنند و همین امر سبب تغییر برخی از دستورات ماژول شده است.

خب برای راه اندازی GPS ماژول SIM808 به دستورات زیر نیاز داریم.

  • AT+CGNSPWR=1 روشن کردن GPS
  • AT+CGNSPWR=0 خاموش کردن GPS
  • AT+CGNSINF ارسال اطلاعات

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

ارسال پیام در SIM808

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

فعال سازی SIM808

این تابع جهت آماده سازی GSM نوشته شده است و طبق دستوراتی که ارسال می‌شود، اگر ماژول پیامی تحت عنوان CPIN READY دریافت کرد، به این معنی است که ماژول آماده به کار است.

دریافت پیام در SIM808

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

تشخیص اپراتور در SIM808

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

دریافت اعلام موجودی در SIM808

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

تغییر زبان اپراتور به زبان انگلیسی در SIM808

این تابع زبان اپراتور را به زبان انگلیسی جهت دریافت موجودی سیم ‌کارت تغییر می‌دهد، تا در قسمت تابع دریافت موجودی مشکلی پیش نیاید.

دریافت شماره تلفن در SIM808

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

ارسال پیام توسط نقشه GoogleMap

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

اگر به خط بالا دقت کنید می‌بینید که دارای مقادیر مختلفی است حالا این اعداد چه چیزی را بیان می‌کنند؟

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

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

فرمت صحیح به صورت خط زیر می‌باشد:

 

تابع GPS

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

تابع ارسال پیام به همراه داشتن TimeOut و Debug

یکی از مهم‌ترین توابعی که می‌توان گفت از اهمیت بسیار بالایی برخوردار است، همین تابع است.

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

نحوه اتصال برد آردوینو به SIM808

نحوه اتصال SIM808 به آردوینو

کد نهایی

خب حالا وقت تلفیق کدها با یکدیگر رسیده است که تمامی آپشن‌ها را در قالب یک کد پیاده سازی کنیم.

نکته‌ای که حائز اهمیت است، این مقاله صرفا آموزشی است و به روش‌های بسیار ساده کدنویسی شده است تا خوانایی کد برای تمامی خوانندگان واضح باشد. کد را میتوانید از اینجا دانلود کنید.

دقت داشته باشید که ماژول SIM808 جریان زیای را برای اتصال به شبکه همراه نیاز دارد، بنابراین از یک منبع تغذیه کمک بگیرید، همچنین موازی کردن یک خازن 1000nf با منبع تغذیه میتواند به جریان کشی ابتدایی ماژول کمک کند. همچنین دقت داشته باشید که ماژول بدون آنتن GPS و GSM ممکن است به درستی عمل نکند.

 

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

 

امیدواریم که این آموزش هم برای شما مفید واقع شده باشد. با سیسوگ همراه باشید.

اطلاعات
74
0
لینک و اشتراک
profile

BLO OM

متخصص الکترونیک

«السَّلَامُ عَلَیْکَ یَا أَبَا عَبْدِ اللَّهِ، السَّلَامُ عَلَیْکَ وَ رَحْمَهُ اللَّهِ وَ بَرَکَاتُهُ».

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
علی گفت :
۱۴۰۱-۰۸-۲۴ ۱۸:۰۸

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

profile
reza گفت :
۱۴۰۱-۰۱-۲۱ ۱۶:۴۷

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

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۲۲ ۰۹:۴۷

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

profile
reza گفت :
۱۴۰۱-۰۱-۲۲ ۱۱:۲۸

خیلی ممنون
میتونم تنظیمی قرار بدم که کاربر نوع سیمکارت رو خودش وارد کنه ولی دنبال راهکاری برای اتوماتیک کردن این مورد بودم.
ممنون از راهنماییتون.

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۲۲ ۱۲:۲۷

خواهش میکنم

profile
حسین گفت :
۱۴۰۰-۱۲-۰۲ ۱۷:۴۵

با سلام
برنامه فعال سازی sim808 رو آپلود کردم میگه ک رو برد آردینو مگا ۲۵۶۰ کامپایل نمیشه
چیکار کنم؟

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۲۳ ۱۰:۵۵

باید ببینید به کدام بخش از کد داره خطا میده و اون مشکل رو حل کنید

profile
رضا گفت :
۱۴۰۰-۱۱-۲۲ ۱۴:۵۰

سلام مشکل اتصال به سایتهای با پروتکل امن رو دارم تمامی مراحل اتصال رو به درستی رفتم ولی زمان اتصال ERROR 606 میده لطفا کمک کنید
مدل SIM: Revision:1418B04SIM808M32

profile
Zeus ‌ گفت :
۱۴۰۰-۱۱-۲۴ ۰۹:۲۸

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

profile
رضا گفت :
۱۴۰۰-۱۱-۲۶ ۲۳:۲۴

سلام پرتکل ssl برای اتصال به https که متاسفانه متصل نمیشه و از داکیومنت
SIM800 Series_SSL
application Note
استفاده شده

profile
Zeus ‌ گفت :
۱۴۰۰-۱۱-۲۷ ۱۱:۵۴

سلام و دورد دوست عزیز
من با ماژٰول های SIM800 مدت زیادی هست که کار نکردم، ولی توی ارتباط SSL اولین چیزی که اهمیت داره اینه که شما درخواست هاتون رو میخوان HTTPS ارسال کنید یا با SSL Socket و مرحله بعد دقت به این مهم هست که آیا کلیدها رو با فرمتی که برای ماژول قابل خوندن هست قرار می‌دید یا نه و آیا میتونید کلیدها رو توسط خود ماژول وریفای کنید یا نه و ….
توصیه می‌کنم از ماژول های کویکتل استفاده کنید مثلا ماژولی مثل MC60 با مدل‌های دیگه- خودم به شخصه SSL این ماژول‌ها رو راه اندازی کردم و اگر مشکلی بود میتونم کمک کنم

profile
پریسا گفت :
۱۴۰۰-۰۹-۲۴ ۱۷:۰۲

سلام وقتتون بخیر
من با ماژول sim808 کار می کنم. تقریبا هفته ی گذشته به دستور AT+CGNSPWR=1 و AT+CGPSPWR=1 جواب میداد و ok بر میگردوند ولی امروز کلا بهشون جواب نمیده. به نظرتون مشکل چیه و چکار کنم درست بشه؟

profile
Sisoog Os گفت :
۱۴۰۰-۱۰-۱۱ ۰۹:۴۹

سلام اگر کلا جواب AT کامند نمیده ببنید LED ها چشمک میزنه یا نه
اگر LED هاش هم چشمک نمیزنه شاید مشکل سخت افزاری پیدا کرده بردتون یا جتی ماژولتون اسیب دیده

profile
نرگس گفت :
۱۴۰۰-۰۸-۲۴ ۱۴:۱۶

با سلام
من سیمکارتم ایرانسل هستش. پاور هم اوکیه و مشکلی نداره. این برنامه رو run کردم ولی شبکه رو not recognized میده و انگار به شبکه ای متصل نمیشه. لیست شبکه های ماژول رو هم چک کردم ایرانسل رو ندیدم توی لیست
برای اینکه شبکه رو بشناسه باید کاری انجام بدم؟

profile
Sisoog Os گفت :
۱۴۰۱-۰۴-۰۵ ۱۱:۰۷

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

profile
نیما گفت :
۱۴۰۰-۰۷-۰۷ ۱۴:۱۵

سلام من sim900a دارم و دارم روی پروژه ساخت gps کار میکنم میخواستم ببینم ایا کد های sim808 که بالا قراردادین به sim900 میخوره یا خیر ؟ و اگه نخوره من از کجا میتونم کمک بگیرم برای کد نویسی ؟

profile
Sisoog Os گفت :
۱۴۰۰-۰۷-۰۷ ۱۶:۰۴

سلام SIm900A فقط GSM هست ولی SIM808 هم جی پی اس داره و هم GSM
کامندهای جی اس ام ها عالبا یکسان هستند و دیتاشیت هر کدوم بهترین رفرنس برای کمک گرفتن هست

profile
مصطفی گفت :
۱۴۰۲-۰۹-۱۵ ۲۳:۰۶

ببخشید sim800l چطور؟؟

profile
Zeus ‌ گفت :
۱۴۰۲-۰۹-۲۳ ۰۶:۱۲

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

profile
امیر گفت :
۱۴۰۰-۰۴-۰۲ ۲۳:۳۹

سلام
ممنون از پروژه خوبتون
من بستم مدارو دقیق و کد رو بارکذاری کردم ولی متاسفانه در قسمت سریال مانیتور ارور
Starting …
Not Recognized رو دریافت میکنم و روی خود برد سیم 808 بعد از زدن دکمه ایستاده ال ای دی قرمز چندبار چشمک میزنه و مجدد خاموش میشه

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

profile
hesam azizi گفت :
۱۴۰۰-۰۲-۰۹ ۱۳:۰۷

سلام کد رو وارد کردم و دوتا خطا اشت اون ها روهم درست کردم ولی هنوز یه خطا میده میشه راهنمایی کنید
exit status 1

‘sendData’ was not declared in this scope

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

profile
zeus گفت :
۱۴۰۰-۰۳-۰۴ ۲۳:۰۱

این خطایی که دارید میگیرید به این دلیله که تایع sendData رو پیدا نمی کنه

profile
hesam azizi گفت :
۱۴۰۰-۰۲-۰۸ ۱۹:۳۸

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

redefinition of ‘string phone’

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

profile
zeus گفت :
۱۴۰۰-۰۳-۰۴ ۲۳:۰۴

میگه شما دوبار (یا چند بار ) شماره تلفن رو وارد کردید 😐

profile
حسام گفت :
۱۴۰۰-۰۲-۰۸ ۱۸:۳۱

redefinition of ‘String Phone’

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

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

profile
zeus گفت :
۱۴۰۰-۰۳-۰۴ ۲۳:۰۵

به این دلیله خطا که ظاهرا Phone رو چند بار توی برنامه تعریف کردید.

profile
حسام گفت :
۱۴۰۰-۰۲-۰۸ ۱۸:۳۰

Arduino: 1.8.13 (Windows 7), Board: “Arduino Uno”

sketch_apr28a:8:8: error: redefinition of ‘String Phone’

String Phone = “0903584226” ; // like a 0938*****75

^~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:6:8: note: ‘String Phone’ previously declared here

String Phone= “090********”;

^~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino: In function ‘void setup()’:

sketch_apr28a:17:6: error: ‘sendData’ was not declared in this scope

sendData(“AT+CGNSPWR=1”,1000,DEBUG);

^~~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:17:6: note: suggested alternative: ‘data’

sendData(“AT+CGNSPWR=1”,1000,DEBUG);

^~~~~~~~

data

sketch_apr28a:22:15: error: ‘Ooperator’ was not declared in this scope

Operator= Ooperator();

^~~~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:22:15: note: suggested alternative: ‘Operator’

Operator= Ooperator();

^~~~~~~~~

Operator

sketch_apr28a:28:16: error: ‘Operator_Setting’ was not declared in this scope

Operator_Setting(Operator);

^~~~~~~~~~~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:28:16: note: suggested alternative: ‘Operator’

Operator_Setting(Operator);

^~~~~~~~~~~~~~~~

Operator

sketch_apr28a:29:16: error: ‘GSM_Initilaize’ was not declared in this scope

GSM_Initilaize();

^~~~~~~~~~~~~~

sketch_apr28a:30:24: error: ‘balance’ was not declared in this scope

Balance=balance(Ooperator());

^~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:30:24: note: suggested alternative: ‘Balance’

Balance=balance(Ooperator());

^~~~~~~

Balance

sketch_apr28a:33:15: error: ‘Send_Message’ was not declared in this scope

Send_Message(Phone, “Welcome to SIM808”);

^~~~~~~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino: In function ‘void loop()’:

sketch_apr28a:47:24: error: ‘receive_message’ was not declared in this scope

String Read_Message = receive_message();

^~~~~~~~~~~~~~~

C:\Users\SAJAD\Documents\Arduino\sketch_apr28a\sketch_apr28a.ino:47:24: note: suggested alternative: ‘Read_Message’

String Read_Message = receive_message();

^~~~~~~~~~~~~~~

Read_Message

sketch_apr28a:51:17: error: ‘Get_PhoneNumber’ was not declared in this scope

String phones = Get_PhoneNumber(Read_Message);

^~~~~~~~~~~~~~~

sketch_apr28a:55:2: error: ‘sendTabData’ was not declared in this scope

sendTabData(“AT+CGNSINF”,1000,DEBUG);

^~~~~~~~~~~

Multiple libraries were found for “SoftwareSerial.h”

Used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial

Not used: C:\Users\SAJAD\Documents\Arduino\libraries\EspSoftwareSerial

exit status 1

redefinition of ‘String Phone’

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

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

profile
حسام گفت :
۱۴۰۰-۰۲-۰۷ ۲۱:۰۳

سلام این کد بالا خرابه ؟

profile
zeus گفت :
۱۴۰۰-۰۳-۰۴ ۲۳:۰۷

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

profile
مصطفی گفت :
۱۳۹۹-۱۲-۱۱ ۰۷:۴۴

سلام میشه یک متن خاص ارسال کرد مثلا عدد یک و موقعیت برای ارسال کننده عدد یک ارسال بشه
ممنون

profile
Sisoog Os گفت :
۱۳۹۹-۱۲-۱۲ ۱۴:۰۱

سلام مطمئنا امکان پذیر هست

profile
بابک گفت :
۱۳۹۹-۰۹-۱۱ ۱۸:۳۹

با سلام
دقت GPS این ماژول چقدر است؟

profile
Sisoog Os گفت :
۱۳۹۹-۰۹-۱۱ ۱۹:۰۰

سلام دقت ماژولهای GPS در حالت عادی و البته بهترین کارکرد ذکر میشه کمتر از دو نیم متر

profile
امیرحسین آقاجانی گفت :
۱۳۹۹-۰۵-۱۸ ۰۹:۱۷

ممنون از آموزش خیلی خوبتون..
چطوری میشه به جای ارسال به شماره موبایل،
مثلا یه سایت طراحی کرد که… ( طراحی سایت با خودم، من برنامه نویس وب و بکند php هستم و یه چنتا برنامه gps نوشتم که میاد لوکیشن های مختلف رو روی نقشه نشون میده: مثلاً: https://amirhossein.dev/narmafzaran/mapline.php?loc_id=5 )
آردوینو فقط بیاد چنتا مشخصه مثه Latetude و Longitude و یه چنتا متغیر ثابت رو به یه API ارسال کنه..
با اینترنت..
ممنون میشم راهنماییم کنین.

profile
Sisoog Os گفت :
۱۳۹۹-۰۵-۲۱ ۱۷:۱۲

خواهش میکنم دوست عزیز
لازمه شما با دستورات Get یا Post متغیرها را پاس بدید به ادرسی که میخاهید
AT+Command های SIM8080 مربوطه را نگاه کنید نحوه استفاده از دستورات کاملا مشخص هست

profile
امیر گفت :
۱۳۹۹-۰۵-۰۴ ۱۳:۵۸

سلام
امکان انجام پروژه با شما وجود داره در زمینه GPS ؟

profile
Sisoog Os گفت :
۱۳۹۹-۰۵-۱۷ ۱۰:۱۳

در صورتیکه درخواست انجام پروژه دارید RFQ خودتون را به ادرس Prj At sisoog.com بفرستید حتما بررسی و نتیحه را اعلام خواهیم کرد

profile
آرین گفت :
۱۳۹۹-۰۳-۲۰ ۱۷:۴۳

سلام برنامه ها باید با چه ترتیبی نوشته بشن اول باید راه اندازی GPS نوشته بشه ؟لطفا به ترتیب توضیح بدین؟

profile
زئوس Zeus گفت :
۱۳۹۹-۰۴-۰۲ ۱۱:۴۳

سعی میکنیم انتهای مطلب لینک دانلود پروژه رو قرار بدیم.

profile
حسین گفت :
۱۳۹۹-۰۲-۲۵ ۱۱:۲۳

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

profile
زئوس Zeus گفت :
۱۳۹۹-۰۲-۲۷ ۱۰:۰۱

خواهش میکنم دوست عزیز
نمونه های حرفه ای زیادی رو میتونید توی گیت هاب پیدا کنید 🙂

profile
محمدرضا گفت :
۱۳۹۹-۰۲-۱۶ ۱۰:۴۷

با سلام
من عین مدار شما را شبیه سازی کردم ولی GPS و چراغ سبز رنگ آن به هیچ عنوان روشن نمی شه حتی برق 5 ولت 2 آمپر نیز به آن وصل کردم و همین طور برق 9 ولت ولی باز تغییری حاصل نشد ممنون میشم کمک کنید

profile
زئوس Zeus گفت :
۱۳۹۹-۰۲-۲۴ ۱۱:۱۸

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

profile
محمدی گفت :
۱۳۹۸-۱۰-۲۷ ۱۷:۰۸

سلام میتونید بگید که کدوم کد هارو زیر void setup بنویسیم وکدوم زیر void loop

profile
زئوس Zeus گفت :
۱۳۹۸-۱۰-۳۰ ۱۱:۴۳

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

profile
محمدی گفت :
۱۳۹۸-۱۰-۲۵ ۱۷:۳۹

سلام کد هارو باید زیر void setup نوشت یا زیرvoid loop نوشت

profile
زئوس Zeus گفت :
۱۳۹۸-۱۰-۳۰ ۱۱:۵۵

شما کد زیر رو آزمایش کنید
https://gist.github.com/Sisoog/4824924b4a3acae91ed33cba45f92ff5

profile
مهرداد گفت :
۱۳۹۸-۱۰-۱۴ ۰۸:۱۱

سلام دوستان . من این برنامه را برای کار با آردوینو نانو دانلود کردم و در همان ابتدا خطای costumer , Phone خطا میگیرد.

profile
زئوس Zeus گفت :
۱۳۹۸-۱۰-۲۱ ۱۱:۵۲

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

profile
حسام گفت :
۱۴۰۰-۰۲-۰۷ ۲۱:۴۹

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

profile
علی گفت :
۱۳۹۸-۱۰-۰۲ ۲۱:۳۹

سلام چرا رو خط String Phone= costumer; گیر میده؟
متن خطا ‘costumer’ was not declared in this scope

profile
زئوس Zeus گفت :
۱۳۹۸-۱۰-۰۳ ۰۹:۱۱

سلام دوست عزیز شما به جای costumer باید شماره همراه رو وارد کنید مثلا به این شکل “09xxxxxxxx” که برنامه خطا نگیره

profile
hesam azizi گفت :
۱۴۰۰-۰۲-۰۹ ۱۱:۵۸

من این کار رو کردم ولی یه خطای دیگه داد

profile
حسام گفت :
۱۴۰۰-۰۲-۰۷ ۲۱:۴۹

یعنی چه

profile
علی گفت :
۱۳۹۸-۱۰-۰۳ ۱۳:۴۵

اگه موردی نداره از طریق any desk یه ارتباط بگیریم

profile
زئوس Zeus گفت :
۱۳۹۸-۱۰-۰۴ ۱۵:۴۴

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

profile
علی گفت :
۱۳۹۸-۱۰-۰۳ ۱۳:۴۳

invalid digit “9” in octal constant
سلام الان اینو میده بعد اگه خط رو پاک کنم رو sendData(“AT+CGNSPWR=1”,1000,DEBUG); اروری مشابه قبلی میده
این کد کتابخونه ای نداره؟
بعد چرا دوتا string phone داره یکی چنتا x دادین بهش یکی هم که costumer قضیش چیه؟

profile
داود گفت :
۱۳۹۸-۰۹-۱۶ ۱۲:۳۰

سلام.ببخشید چرا به دستور sendData(“AT+CGNSPWR=1”,1000,DEBUG);
گیر میده ؟؟؟ متن خطا ‘sendData’ was not declared in this scope

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۱۷ ۱۲:۴۶

سلام
تابع sendData در قسمت «تابع ارسال پیام به همراه داشتن TimeOut و Debug» از مقاله تعریف شده است متونید کپی کنید توی متنتون

profile
ابوالفضل گفت :
۱۳۹۸-۰۹-۰۹ ۲۱:۴۱

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۱۱ ۱۰:۰۳
profile
ابوالفضل گفت :
۱۳۹۸-۰۹-۰۷ ۱۳:۱۵

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۹-۰۸ ۱۱:۲۵

احتمالا با یه سرچ کوچولو میتونید نمونه سورس کد رو پیدا کنید 😐

profile
محمد گفت :
۱۳۹۸-۰۷-۱۸ ۲۰:۰۴

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

profile
زئوس Zeus گفت :
۱۳۹۸-۰۷-۲۰ ۱۱:۱۶

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

String word_filter(String str,String start,String end)
{
int Word1 = str.indexOf(start);
int Word2 = str.lastIndexOf(end);
retrun str.substring(Word1 , Word2);
}

profile
محمد رضا نکونام گفت :
۱۳۹۸-۰۵-۱۸ ۱۷:۴۳

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

profile
Sisoog OS گفت :
۱۳۹۸-۰۵-۱۸ ۱۹:۴۴

سلام
دوست عزیز اکثر اینها یک پروتکل ارتباطی دارند که اون را از فروشنده بخاهید و بعد از اون میتونید با تنظیم ای پی و پورت و نوشتن یک برنامه روی سرور خودتون داشته باشید
حتی نرم افزارهای اپن سورسی هم هستند که اکثر پروتکلها را پشتیبانی میکنند و فقط کافیه شما اون را روی سرور نصب کنید و اطلاعات کامل خیلی راحت روی دیتابیس سرور شما میشینه
مثل
https://www.traccar.org/

profile
حسین گفت :
۱۳۹۸-۰۴-۲۴ ۱۶:۲۹

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

profile
BLO OM گفت :
۱۳۹۸-۰۴-۲۵ ۰۹:۴۸

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

بخش دوم سوالتون که چطور اونو روی گوشی بیارید
در بخش اول توضیح دادم که با ارسال پیام این کار صورت میگیره اما فکر میکنم منظور شما تحت اپلیکیشن هست.
برای اینکار شما نیاز به نوشتن یک نرم‌افزار اندروید یا IOS دارید بسته به نوع گوشیتون حالا اتفاقی که میفته
شما باید تابعی رو بنویسید (همون تابع فیلتری که معرفی کردم برای دریافت پیام) برای اندروید که این قابلیت رو داشته باشه دیتای دریافتی رو از هم تفکیک کنه یعنی چی؟ یعنی اینکه فرض کنید شما پیامی با عنوان لینک گوگل + طول جغرافیایی + عرض جغرافیایی برای گوشی ارسال می‌کنید حالا توی نرم‌افزار باید بتونید این رو فیلتر کنید چطور؟ به این روشی که میگم خدمتتون اول پیامتون مثلا BLOOM+ لینک گوگل + طول جغرافیایی + عرض جغرافیایی +bloom برای گوشی ارسال کنید و توی نرم‌افزاری که نوشتید تابع فیلتری رو که گفتم پیاده سازی کنید و تعریف کنید زمانی که پیامی داشتید اولش BLOOM , bloom بود رو تشخیص بده و پس از اینکه تشخیص داد به روی کلید مدنظرتون کلیک کنید و در نهایت به صورت خودکار وارد گوگل مپ خواهد شد

بخش سوم سوالتون
بله برای PC هم کاملا امکان پذیره فقط مستلزم اینه که شما شما یک نرم‌افزار دقیقا طبق توضیحاتی که دادم مجددا بنویسید
البته مدل پیشرفته ترش اینکه شما توسط یک وب سایت که نوشتید پیاده سازی کنید که این مسله هم چیز سختی نیست چون تقریباکسی نرم‌افزاری رو برای PC نمی‌نویسه بلکه همه سعیشون بر اینکه اونو توسط یه وب سایت پیاده سازی کنند.

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

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

امیدوارم توضیحاتی رو که دادم مفید واقع شده باشه برای شما.

موفق باشید

profile
حسین گفت :
۱۳۹۸-۰۴-۲۸ ۱۴:۰۳

سلام .
مرسی . لطف کردید توضیحات کاملی بود . جواب سوالاتم رو گرفتم .

profile
BLO OM گفت :
۱۳۹۸-۰۴-۲۹ ۰۸:۴۲

سلام دوست عزیز
خواهش میکنم وظیفه بود
موفق باشید.

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله