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

ساخت دستگاه live location با ماژول GSM / GPS و تراشه Sim808

نوشته شده توسط آرش کدخدایی

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

 

 


تغذیه مدار


در آموزش قبلی دیدم که کمی تغذیه این مدار پیچیده خواهد بود برای این مورد حتی پیچیده تر چون روشن شدن gprs مستلزم جریان به مراتب بیشتری میباشد. در این آموزش ما از طریق کابل مبدل ttl که ۵v برق دارد تغذیه مدار را تامین میکنیم.

 


وسایل مورد نیاز و اتصالات مدار


برای این پروژه همانند قبل فقط به یک آردوینو که ما از برد آردوینو Arduino Pro mini استفاده کرده ایم و ماژول Sim808 و همچنین آنتن های GPS و gsm نیاز داریم. اتصالات مدار همانند قبل میباشد فقط سه پایه جدید را باید به هم متصل کنیم که در پایین کامل آمده اند:

RST -> 12
RX -> 11
TX -> 10
PWR -> 9
STATUS -> 8
vcc -> vcc
gnd -> gnd

آنتن های gps و gsm هم به مکان های مورد نظر وصل میکنیم.

 

 

 


کتابخانه Sim808


در این آموزش ما از کتابخانه arduino-sim808 استفاده میکنیم شما میتوانید از داخل خود آردوینو قسمت manage libraries این کتابخانه را نصب کنید. همچنین جهت سهولت در استفاده از پورت سریال و لاگ کردن اطلاعات از کتابخانه Arduino-Log استفاده کرده ایم.

 


توابع Sim808 live location


ما از توابع متعددی در این آموزش استفاده کرده ایم که یکی یکی هر کدام را توضیح میدهیم:

تابع شرح تابع
Log.begin(LOG_LEVEL_NOTICE, &Serial) برای شروع لاگ
Log.notice(S_F(“log text”)) فرستادن لاگ به سریال کامپیوتر
SIM808(SIM_RST, SIM_PWR, SIM_STATUS) شناساندن sim808 با استفاده از پایه های RST، PWR و STATUS
sim808.begin(simSerial) تعریف ارتباط sim808 با استفاده از سریال تعریف شده برای پایه های tx و rx
sim808.powerOnOff(true) روشن کردن ماژول sim808
sim808.init() شروع به کار ماژول sim808
sim808.powerOnOffGps(true) روشن کردن gps ماژول sim808
sim808.getGpsStatus(position, POSITION_SIZE) دریافت اطلاعات gps و ذخیره آن در position
sim808.getNetworkRegistrationStatus() دریافت وضعیت اتصال به شبکه سیم کارت
sim808.getSignalQuality() دریافت وضعیت سیگنال سیم کارت
sim808.getGpsField(position, SIM808GpsField, &var) دریافت یکی از فیلد های gps به عنوان مثال زمان، طول و عرض جغرافیایی، تعداد ماهواره و… و ذخیره آن در var
sim808.enableGprs(GPRS_APN, GPRS_USER, GPRS_PASS) روشن کردن اینترنت gprs با استفاده از apn, user , password

Apn همان نام اکسس پوینت سیم کارت مورد نظر میباشد که برای همراه اول mcinet برای ایرانسل mtnirancell و برای رایتل RighTel میباشد.

sim808.httpPost(url, S_F(“text/plain”), buffer, buffer, BUFFER_SIZE) ارسال buffer به url مورد نظر که در واقع یه post request میباشد.

 

 


شرح پروژه


ما قضد داریم که پس از اتصال کامل ماژول sim808 به gps اطلاعات دریافتی را برای یک سرور ارسال کنیم و پس از آن اطلاعات دریافتی از سرور را به هر صورتی که خواستیم استفاده کنید. در این آموزش ما با استفاده از php کد ساده ای نوشتیم که فقط اطلاعات دریافتی را در یک فایل txt ذخیره کند ولی شما میتوانید با انواع کد نویسی سرور بصورت کامل اطلاعات را بصورت زنده در نقشه نمایش دهید. دقت کنید که ما با استفاده از POST Request اطلاعاتی را با نوع text/plain به آدرس مورد نظر ارسال میکنیم.

 

 


کد Sim808 آردوینو


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

 

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

 


کد php مورد استفاده


 

 

حال این فایل php را داخل سروری آپلود میکنیم و آدرس این فایل را با URL درون کد آردوینو جایگزین میکنیم و کد آردوینو را آپلود میکنیم. پس از انجام این مراحل یک فایل کنار فایل php به نام test.txt ساخته میشود که شامل اطلاعات دریافتی از جی پی اس میباشد. با انجام تغییرات در فایل php میتوانید کار های زیادی انجام دهید.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

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

۵۱ دیدگاه

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

    با تشکر
    مهدی انامی

    • ممنون ایده که داشتم رو عملی کردید . من درخواست اینو به صورت پروژه به شما داده بودم که الان خداروشکر همه چی حل شد . فقط یک سوال سرعت ارسال چقدر هست ؟

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

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

  • سلام
    من هنوز برای تغذیه مدار مشکل دارم و ترس از بین رفتن ماژول نمیذاره کار کنم
    لطفا اتصالات را با جزییات بیشتری توضیح دهید
    از اینکه وقت میگذارید بی نهایت ممنونم

    • سلام
      تغذیه این مدار را اگر با تعداد چند تایی باتری لیتیومی انجام دهید تا آمپر مناسبی به مدار برسد به خوبی پاسخ گوست ولی بنده در این آموزش مستقیما آن را با usb لپ تاپ تغذیه کرده ام

    • سلام
      بله حتما. بهتر است ابتدا درباره http request اطلاعات کسب کنید.
      سرور میتونه هر چیزی باشه از رزبری پای گرفته تا سرور مجازی و یا یک هاست ساده که امکان بارگذاری یک فایل php را به ما بدهند و آدرسی در اینترنت داشته باشند حالا یا یک دامنه و یا یک آی پی که امکان دسترسی ما به آن فایل php بارگذاری شده را فراهم کنند. بعد از آن فقط کافیست آدرس این فایل php را در قسمت مربوطه در کد آردوینوی خود جایگزین کنیم.

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

  • با سلام….ببخشید این کد یک بار اجرا میشه؟من میخوام هر ثانیه این اطلاعات فرستاده بشه…ممنون میشم راهنمایی کنید…

  • سلام وقتتون بهیر اگر از اردوینو uno هم استفاده کنیم و و یک اداپتور ۹ ولت برای sim808داشته باشیم بازهم لازمه بغیر از rx,tx.gnd اتصالات دیگه ای برقرارکنیم؟
    واینکه اداپتور ۹ ولت برای سیم ۸۰۸ هست؟

      • راستش متوجه پاسختون نشدم اگر از اداپتوز برای تامین ولتاژ SIM808 استفاده کنیم و باتوجه به اینگه خود سیم رگولاتور داره و ولتاژ رو در رنج مناسب میاره باز هم لازم هست اتصالات VCC و PWR , RST ,..داشته باشیم؟
        و اینکه من از sim 808 EVB-V3.2.2 استفاده میکنم
        تمام گراندها یعنی چی؟یعنی یکبار اتصال گراند سیم به یکی از گراندهای اردوینو کافی نیست؟

      • من کد رو کپی کردم اتصالات هم رو بغیر از PWR و VCC برقرار کردم (چون از اداپتور خارجی برقم رو تامین میکنم)
        ولی کد کامپایل نمیشه مشکلش از چیه؟کامند تعریف سیگنالهای پاور رو هم هاید میکنم باز همین مشکل هست
        ممنون میشم راهنمایی بفرمایید چطور میتونم استفاده کنم
        و اینکه برای سیم کارت ایرانسل کدوم خط از اون سه خط مربوط به تنظیمات سیم کارت باید تغییر کنه و با چه داده های

  • سلام وقت بخیر
    ۱-آیا امکان خرید پروژه اسمبل شده(آماده بکار) مشروط به زمان تست (که در صورت درست کار نکردن مرجوع یا تعویض شود) وجود دارد؟
    ۲-در صورت جواب مثبت بنده یک پنل ردیابی از یک شرکت خریداری نمودم قبل از خرید آیا امکان تست پروژه (محصول) بر روی این پنل وجود دارد ؟ که در صورت جواب دادن روی این پنل سفارش بیشتری را جهت خرید بدهم.
    با سپاس

  • سلام و عرض ادب
    خسته نباشید.
    چند نکته ، گویا سری sim 808 چندین مورد داره.
    بنده از مدل SimCom Sim808 1060C-z1f08 و Arduino Uno استفاده میکنم.
    اگر میشه لطفا به سوالات زیر پاسخ بدید ممنون میشم.

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

    بخش vcc – pwr وجود نداره.

    ۱- برای pwr:
    در عوض به جاش روی این برد یه دکمه پاور گذاشتن و پاور آن-آف شدن دیگه در کد لازم نیست.
    با خوندن کامنتا متوجه شدم که خودش Power On میشه.

    ۲- برای vcc-برق :
    با این اوصاف برای تامین برق من خود arduino رو به با usb به لپ تاپ وصل کردم و پایه های V-in هردو برد رو به هم وصل کردم. اینکار اشتباه هست؟

    ۳- لاگ صحیح هست اما برای ستلایت و gps خروجی ۰ هست. گاهی وقتا هم ovf رو می نویسه
    کلا خروجی ستلایت من همیشه: -۱۱۰۰۷ یا ۳۱۹ هست.
    خروجی لت و لانگ همیشه ۰ یا بعضی وقتا ovf
    با وجود Network Ready بودن ، برام این عبارت لاگ میشه :
    Attenuation : 1 dBm, Estimated quality : 99
    هرچی جست و جو کردم متوجهش نشدم چیه!

    ۴- با وجود ست کردن apn ، تحت هیچ شرایطی gprs فعال نمیشه. نمیدونم مشکل از بورد من هست یا تغییر کد ها ، باز هم اون بخش حلقه دو وایل رو برداشتم ، ریکوئست نمیفرسته (سیم کارت رو تست کردم اینترنتش فعاله و شارژم داره)

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

  • چطوری میتونم IMEI ماژول رو بگیرم ؟
    سوال دیگه‌ای که دارم اینه که اگر به سرور ۵ تا دستگاه وصل کنیم تو ساخت اون فایل test.text چطوری میتونیم بین دستگاها تمایز ایجاد کنیم !؟

    • با سلام
      با ارسال کامند AT+GSN به مدار میتونین این کارو انجام بدید
      برای اینکه چندین دستگاه را به یک سرور متصل کنید کافیه یک کد برای اون دستگاه تعریف کنید و در هر جایی از متنی که توسط httpPost ارسال میشه قرارش بدید تا داخل سرور ذخیره بشه حالا میتونید طبق هر نوع برنامه نویسی که از سمت سرور انجام میدید این دستگاه را شناسایی کنید.