Gsm Modem, اینترنت اشیاء, توصیه شده, کویکتل

دریافت و تنظیم زمان دقیق توسط GSM Modem

NTP Gsm Modem

دریافت و تنظیم زمان دقیق توسط GSM Modem

و نحوه استفاده پروتکل NTP 

زمان دقیق موضوع مهمی ست که به محض مطرح شدن می‌تواند ساختار طراحی را تا حدی دستخوش تغییر کند.

با مطرح شدن بحث اینترنت چیزها ( اینترنت اشیاء) IOT نیز واژه زمان اهمیت بیشتری پیدا نموده است.

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

 

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

  • استفاده از RTC و تنظیم آن بصورت دستی
  • استفاده از ماژولهای موقعیت یاب شبیه GPS
  • استفاده از GSM Modem ها و شبکه های همراه

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

 

در این پست قصد داریم نحوه گرفتن زمان مبتنی بر GSM Modem  را در ایران متناسب با خدمات ارائه دهنده توسط اپراتورهای همراه در ایران تشریح کنیم.

 

دو راه‌کار و پروتکل مهم در GSM Modem ها جهت گرفتن زمان وجود دارد:

  • NITZ- Network Identity and Time Zone
  • NTP- Network Time Protocol

 

پروتکل NITZ چیست؟

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

برای نمونه مثال زیر جهت استفاده از پروتکل NITZ مخصوص GSM Modem های کویکتل   (Quectel)   استفاده میشود.

 

 

متاسفانه این سرویس در ساختار اپراتورهای همراه ایران از جمله ایرانسل و همراه اول پشتیبانی نمی‌شود و طبق ایمیلی که به ایرانسل ارسال شد آن‌ها نیز ضمن تایید این مسئله از ما خواستند از پروتکل NTP به جای پروتکل NITZ استفاده کنیم.

 

پروتکل NTP چیست؟

این پروتکل توانایی آپدیت زمان از بستر GPRS بین یک سرور NTP و دیوایس‌های متصل به شبکه از جمله GSM Modem ها را دارد.

NTP یکی از قدیمیٰترین پروتکل‌های اینترنت است که از سال 1985 به الان استفاده می‌گردد.

جهت اطلاعات تکمیلی می‌توانید از این صفحه بازدید داشته باشید.

 

پروتکل NTP

 

الگوریتم NTP

 

یکی از محسنات این پروتکل محاسبه‌ی زمان حدودی بین سرور و GSM Modem شما و اعمال آن است که می‌تواند باعث دقیق‌تر شدن این زمان گردد.

تا اینجا متوجه شدیم که برای سنکرون کردن زمان توسط GSM Modem می‌توان از پروتکل NTP استفاده نمود و جهت استفاده از این پروتکل لازم است:

  • اولاً GPRS جی اس ام مودم شما فعال شود.
  • ثانیاً ارتباط با یک NTP Server نیز به‌عنوان مرجع زمان شما برقرار شود.

 

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

یکی از سرورهای NTP در ایران، سرور وب سایت time.day.ir است که این خدمت به رایگان، توسط آدرس ntp.day.ir قابل‌استفاده است.

 

در  زیر نیز می‌توانید نحوه‌ی کانِکت شدن به سرور NTP توسط ماژول GSM Modem Sim800 Or Sim900 را مشاهده نمایید:

نکته: پورت پیش‌فرض NTP پورت 123 است.

 

 

هم‌چنین در زیر، مثال تست شده با ماژول UC20 , UC15 شرکت کویکتل را هم قرار داده‌ایم:

 

 

همانطور که در مثال میبنید بعد از اتمام سنکرون کردن زمان, زمان RTC ماژول GSM بصورت اتوماتیک آپدیت گردیده است و لازم است بدانید زمان گرفته شده زمان UTC میباشد.

 

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

28 دیدگاه در “دریافت و تنظیم زمان دقیق توسط GSM Modem

  1. Avatar for فرخی فرخی گفت:

    با سلام. کدهایی که برای ماژول Qectel گذاشتید برای ماژول M66 جواب نمیده و ERROR میده. میشه راهنمایی کنید؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      دقیقا کدام دستور خطا میده ؟

  2. Avatar for محمد پورخلیلی محمد پورخلیلی گفت:

    سلام لیست سرورهای NTP فعال، اولی ایرانیه :
    عدد بعد از ادرس سرور مشخص کننده تایم زون هست که برای ایران در شش ماه اول سال 18 و شش ماه دوم سال 14 باید ارسال شود. بهتر است لیست سرورها در برنامه ذخیره شود و اگر هر کدام خطا داد از بعدی امتحان شود تا جواب +CNTP: 1 برگرداند.

    ntp.day.ir
    ir.pool.ntp.org
    server 0.asia.pool.ntp.org
    server 1.asia.pool.ntp.org
    server 2.asia.pool.ntp.org
    server 3.asia.pool.ntp.org
    server 0.pool.ntp.org
    server 1.pool.ntp.org
    server 2.pool.ntp.org
    server 3.pool.ntp.org

    time-a-g.nist.gov
    time-b-g.nist.gov
    time-c-g.nist.gov
    time-d-g.nist.gov
    time-d-g.nist.gov
    time-e-g.nist.gov
    time-e-g.nist.gov
    time-a-wwv.nist.gov
    time-b-wwv.nist.gov
    time-c-wwv.nist.gov
    time-d-wwv.nist.gov
    time-d-wwv.nist.gov
    time-e-wwv.nist.gov
    time-e-wwv.nist.gov
    time-a-b.nist.gov
    time-b-b.nist.gov
    time-c-b.nist.gov
    time-d-b.nist.gov
    time-d-b.nist.gov
    time-e-b.nist.gov
    time-e-b.nist.gov
    time.nist.gov
    utcnist.colorado.edu
    utcnist2.colorado.edu

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام سپاسگذار از شما جناب پور خلیلی عزیز

  3. Avatar for emad emad گفت:

    سلام.من با sim800l کار میکنم.دستور AT+CNTP عدد 1 رو نمیده و بجاش عدد 62 میده. لطفا راهنمایی کنید.از همه ntp هاهم استفاده کردم اما نشد

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      در دیتاشت کدهای برگشتی رو نوشته و خطای ۶۲ مربوط به خطای dns هست یعنی dns رو روی ماژول تنظیم نکردید – دو تا راه دارید اول این که دی ان اس رو تنظیم کنید دوم این که از آیپی به جای دامنه استفاده کنید.

      1. Avatar for Emad Emad گفت:

        سلام . ای پی استفاده کردم نشد. میشه بگید چه dns باید تنظیم کنم؟

  4. Avatar for میلاد میلاد گفت:

    سلام
    من دستورات بالا رو چک کردم ولی ساعت و تاریخ ایران بهم نداد!
    امکانش هست راهنمایی کنید باید چیکار کنم
    ماژولم sim800l هست.

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      ببینید وقتی داریم زمان رو از منایع جهانی میخونیم یعتی داریم زمان رو utc دریافت میکنیم و برای این که به زمان ایران تبدیل کنید باید خودتون تایم زون رو روش اعمال کنیم :/
      فکر کنم البته ماژول های gsm قادر باشند تایم زون رو اعمال کنند ولی باید قبلش تایم زون رو بهش بدید

  5. Avatar for مهدی نور مهدی نور گفت:

    سلام
    من با سیم 800c کار می‌کنم و خواستم تجربه ام را با شما به اشتراک بگذارم. اول نتیجه را میگم و اون اینکه سیم کارت ایرانسل تاریخ و زمان صحیحی را نمیده ولی همراه اول کاملاً دقیق کار میکنه و تغییر ساعت 6 ماهه را هم اعمال کرده. اما برای استفاده از این ویژگی، از دستور CLTS استفاده میکنیم که من در حد دانشم توضیحاتی میدم.
    دستور CLTS در دیتاشیت sim800_Series_At_Commands تحت عنوان دریافت زمان محلی درج شده
    1- گام اول: بررسی تنظیمات با دستور
    AT+CLTS? اگر پاسخ 0 باشد یعنی تنظیم خودکار زمان محل غیر فعال است و اگر یک باشد یعنی تنظیم خودکار فعال است.

    2- گام دوم: قرار دادن ماژول روی تنظیم خودکار (دریافت و تنظیم ساعت به صورت خودکار) با دستور
    AT+CLTS=1 اگر پاسخ OK باشد یعنی تنظیم انجام شده و در غیر اینصورت با پیام ERROR مواجه هستیم که می‌تواند دلایل مختلفی داشته باشد

    3- گام سوم: ذخیره تنظیم صورت گرفته با استفاده از دستور AT&W

    4- گام چهارم: ریست کردن ماژول و بررسی ذخیره شدن تنظیمات

    5- گام پنجم: دریافت ساعت و تاریخ محلی با دستور AT+CCLK?
    نکته: خروجی دستور آخر، تاریخ و ساعت است که در انتهای آن نیز وضعیت تغییر 6 ماهه را نیز می‌توان ملاحظه کرد. این وضعیت که dst نام دارد با یکی از اعداد 0، 1، 2و یا reserved مشخص شده که بر عهده اپراتور است. عدد صفر یعنی تغییر ساعت انجام نمی‌شود و 1 یعنی تغییر ساعت به میزان 1 ساعت انجام می‌شود و 2 یعنی تغییر ساعت شش ماهه به مقدار 2 ساعت انجام می‌شود (برای برخی کشورها کاربرد دارد)

    امیدوارم مفید بوده باشد

    1. Avatar for Sisoog OS Sisoog OS گفت:

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

  6. Avatar for محمد محمد گفت:

    سلام
    من در دستور AT+CNTP=”3.asia.pool.ntp.org”,32 عدد 32 را برابر 14 قرار دادم که قبل از عید ساعت به طور دقیق نشان میداد ولی با توجه به اینکه ساعت به یک ساعت جلو کشیده شد که با این دستور ساعت را یک ساعت عقب بعد از عید نشان میدهد مشکل چیست؟؟

    1. Avatar for Sisoog OS Sisoog OS گفت:

      سلام تا جایی که یادم هست ساعت بر اساس GMT تنظیم میشه که با توجه به سناریو کشورها شما میتونید تو قسمت لوکال ساعت GSM یک ساعت جلو یا عقب برید تا درست بشه ساعتتون

    2. Avatar for اسماعیل اسماعیل گفت:

      با سلام اگه میخواین ساعت دقیق داشته باشین بهتره از یکی از سرور های داخل ایران استفاده کنید همیشه ساعت دقیق و دارین اینطوری
      من خودم واسه همچین کاری اول از یه جای مثل YJCیا سایت بانک ها یا همچین جایی PING گرفتم بعد IP که دریافت کردم و جایگزین ادرس بالا کردم و ساعت دقیق و دریافت کردم
      AT+CNTP=”94.182.146.12″,14
      امیدوارم مفید بوده باشه برا دوستانی که بعدا استفاده می کنند

  7. Avatar for پیمان ظفرمندیان پیمان ظفرمندیان گفت:

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

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام
      ممنون بابت نظر لطفتون و همین تعاریف هست که انرژی زیادی به ما جهت انرژی میده
      در مورد دونیت هم به نظر باید بزودی این قضیه را برخلاف میل باطنی فعال کنم 🙂

  8. Avatar for مری مری گفت:

    وقت بخیر
    طبق تست های بنده وقتی سیم کارت های جدید گمراه اول رو روی گوشی (هر مدلی) قرار بدیم اتومات ساعت تنظیم میشه.در حالی که با سیم کارت های قدیمی تر این اتفاق نمیفته.
    در ضمن در سیم کارت های ایراسل هم تنظیم ساعت انجام نمیشه
    شما هم تست کنید
    با سپاس

    1. Avatar for Sisoog Os Sisoog Os گفت:

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

  9. Avatar for مهدی مهدی گفت:

    سلام خسته نباشید. در خصوص گرفتن شبکه time از شبکه GSM از طریق NITZ یه سری تست با sim800 انجام دادم. ماژول های sim800 دارای یک RTC داخلی هستند. توسط دستوری این RTC اپدیت شود. و با استفاده از دستور CCLK مقدار را ساعت را از RTC خواند. تست هایی که برای بار اول انجام میدادم موفق نبود. و مقدار ساعت 0:0 برام برمیگرداند. اما با یه سری تغییرات در کد بعضا مقدار ساعت درست اپدیت میشد. چندین روز این سیستم درست کار میکرد. ولی هنگامی که دستگاه برای نصب بردیم متوجه شدیم دستگاه ساعتش اپدیت نمیشود. و 0:0 برمیگردد. اما دوباره درست شد. اما باز مشکل دارد. کدی که استفاده میکردم:
    دستور های اولیه AT:
    AT+CPIN?\r\n
    AT&W+CLTS=1\r\n
    AT+CLTS=1\r\n
    AT+CLTS=?\r\n
    AT+CMGF=1\r\n
    AT+CSCS=\”GSM\”\r\n
    AT+CSDH=1\r\n
    AT+CSMP=17,167,0,17\r\n
    AT+CMGDA=\”DEL ALL\”\r\n
    داخل loop برنامه هم از دستور زیر برای گرفتن ساعت استفاده میکنم:
    AT+CCLK?\r\n

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

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      با بررسی های انجام شده ، مشخص شد که سرور ntp.day.ir از دسترس خارج شده و برای رفع این مشکل می توانید از سرور آسیا به آدرس
      3.asia.pool.ntp.org
      یا
      0.asia.pool.ntp.org
      استفاده کنید

      1. Avatar for مهدی مهدی گفت:

        سلام خسته نباشید، داخل وبسایت pool.ntp.org مطالعه کردم. ظاهراً چهار تا dns برای ntpدارد.
        server 0.pool.ntp.org
        server 1.pool.ntp.org
        server 2.pool.ntp.org
        server 3.pool.ntp.org
        یه قسمت دیگر هم گفته:
        The 0, 1, 2 and 3.pool.ntp.org names point to a random set of servers that will change every hour. Make sure your computer’s clock is set to something sensible (within a few minutes of the ‘true’ time) –
        سوالم این هست آیا سرویس آن ها روی یک dns ثابت نبست؟ و ممکن هست سوییچ شود؟ داخل sim800فقط میتونیم یک سرور معرفی میکنم. آیا جایگزینی stableتر وجود دارد؟
        تشکر

        1. Avatar for Sisoog Os Sisoog Os گفت:

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

  10. Avatar for امیر امیر گفت:

    الان حتی یه گوشی نوکیا1100 هم موقع روشن شدن ساعتش اتوماتیک تنظیم میشه شما چطور میگید اپراتورها این امکانو ندارن؟؟؟؟

    1. Avatar for Sisoog Os Sisoog Os گفت:

      دوست عزیز بنده گوشی 1100 داشتم هر وقت روشن میشد لازم میدید که ساعت را داخلش تنظیم کرد شاید گوشی شما کمی هوشمند تر هست
      ولی به هر حال این دو پروتکل و حتی نامه نگاری با ایرانسل هم برای این موضوع داخل متن گذاشته شده و در صورتی که شما فکر میکنید پروتکلی غیر از این ها هم میتونه ممنون میشم پیشنهاد بدید تا ما هم استفاده کنیم

  11. Avatar for محمد صادق محمد صادق گفت:

    میشه را جه به دستوراتی که برا SIM800/900 نوشتید یکم بییشتر توضیح بدید؟استفاده از این دستورات شارژ سیم کارت رو هم کم میکنه؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      برای مشادهده جزییات هر دستور می توانید به منوال SIM900/800 مراجعه کنید ، اگر دستور خاصی مد نظرتون هست بگید که توضیح بدیم .
      در خصوص کم شدن شارژ باید عرض کنم که بله ، چون این NTP از بستر شبکه انجام میشه نیاز به دیتا داره و فعال کردن GPRS هزینه بر است ، البته هزینش بسیار ناچیزه .

  12. Avatar for میثم رستم زاده میثم رستم زاده گفت:

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

    1. Avatar for Sisoog Os Sisoog Os گفت:

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *