تنظیم ساعت RTC ماژول SIM800
اگر تا به حال دستگاهی مثل ردیاب های GPS را طراحی کرده اید که با باتری بکاپ یا پشتیبان کار می کند و در پروژه خود از RTC یا ساعت زمان واقعی استفاده کرده اید ، احتمالا در حفظ زمان واقعی دستگاه با مشکل روبرو شده اید . زیرا به محض اینکه باتری را از مدار جدا کنید ، RTC همگام سازی خود را از دست میدهد . حتی ممکن است فضای کافی برای قرار دادن باتری پشتیبان جداگانه برای RTC نداشته باشید .
بنابراین ممکن است دنبال راه حل مناسبی برای همگام سازی و بروزرسانی ساعت RTC دستگاه خود باشید . در این آموزش می خواهیم چندین روش را برای همگام سازی ساعت واقعی ماژولهای سری sim800 را بررسی کنیم
- تنظیم ساعت RTC ماژول SIM800 با SMS
- تنظیم ساعت RTC ماژول SIM800 با بلوتوث
- تنظیم ساعت RTC ماژول SIM800 با شبکه محلی
- تنظیم ساعت RTC ماژول SIM800 با NTP (شبکه اینترنت)
قبل از بررسی روش های تنظیم ساعت RTC ماژول SIM800 ، ابتدا به بررسی فرمان یا AT+COMMAND مربوط به خواندن و تنظیم ساعت ماژول SIM800 می پردازیم .
برای خواندن ساعت ماژول SIM800 از فرمان زیر استفاده می کنیم . جوابی با فرمت “yy/MM/dd,hh:mm:ss±zz” از ماژول دریافت می کنیم . در این عبارت yy معادل سال ، MM ماه ، dd روز ، hh ساعت ، mm دقیقه ، ss ثانیه و zz± تایم زون یا منطقه زمانی است . مقدار Time Zone در تنظیم ساعت بسیار مهم است و اگر مقدار آن درست تنظیم نشود ، مقدار زمان با ساعت رسمی کشور ما اختلاف خواهد داشت . در ادامه به نحوه تنظیم مقدار صحیح Time Zone خواهیم پرداخت .
AT+CCLK? +CCLK: "04/01/01,03:59:51+00" OK
برای تنظیم ساعت و تاریخ از فرمان زیر استفاده می کنیم . به عنوان مثال می خواهیم تاریخ ماژول sim800 را بر روی مقدار 2021/02/03 و ساعت ماژول sim800 را بر روی مقدار 13:07:59 تنظیم می کنیم . تایم زون را هم بر روی 14+ تنظیم می کنیم .
نکته : تاریخ ماژول SIM800 فقط به صورت میلادی قابل تنظیم و خواندن است .
AT+CCLK="21/02/03,13:07:59+14" OK AT+CCLK? +CCLK: "21/02/03,13:07:59+14" OK
حال که با AT+COMMAND تنظیم ساعت RTC ماژول SIM800 آشنا شدیم ، در ادامه به روش های تنظیم ساعت RTC ماژول SIM800 می پردازیم .
موضوعاتی که در این مقاله به آنها پرداخته خواهد شد :
تنظیم ساعت RTC ماژول SIM800 با SMS
ما توسط یک پیامک مقدار ساعت را به ماژول SIM800 ارسال می کنیم . برای مثال متن پیام به شکل “TIME=”hh:mm:ss که hh معادل ساعت و mm معادل دقیقه و ss معادل ثانیه است . متن پیامک را توسط میکروکنترلر از ماژول SIM800 می خوانیم و پس از پردازش به شکل دستور “AT+CCLK=”21/02/02,hh:mm:ss+14 به ماژول sim800 برای تنظیم RTC رسال می کنیم . این روش خوب کار می کند اما این کار باید هر زمان که برق دستگاه قطع می شود انجام شود .
تنظیم ساعت RTC ماژول SIM800 با بلوتوث
در این روش می توانیم به جای ارسال ساعت توسط sms ، همان متن تنظیم ساعت را از طریق نرم افزار یا اپلیکیشن بلوتوث ارسال کنیم . این کار فقط وقتی امکان پذیر است که به دستگاه دسترسی فیزیکی داشته باشید و در نزدیکی آن باشید .
همچنین بخوانید >> آموزش راه اندازی بلوتوث ماژول Sim800
تنظیم ساعت RTC ماژول SIM800 با شبکه محلی LTS
روش بروزرسانی زمان از شبکه محلی یا Local Time Stamp ، شاید بهترین گزینه برای تنظیم RTC ماژول SIM800 باشد و طبق تجربه ما تا کنون خوب عمل کرده است . زیرا این روش رایگان هست و نیاز به پرداخت هزینه اینترنت یا SMS ندارد و برای بروزرسانی زمان مثل روش های قبل نیاز به مداخله دستی ندارد .
برای فعال کردن بروزرسانی زمان از سرور شبکه محلی به ترتیب زیر عمل می کنیم .
ابتدا مقدار ساعت را از ماژول SIM800 می خوانیم تا در پایان بروزرسانی RTC ماژول SIM800 را مشاهده کنیم .
AT+CCLK? +CCLK: "04/01/01,03:59:51+00" OK
سپس دستور زیر را با عدد 1 پیکربندی می کنیم .
AT+CLTS=1 OK
برای اینکه پیکربندی فوق در حافظه ماژول SIM800 به صورت دایمی ذخیره شود و با قطع برق و با ریست ماژول این پیکربندی ار بین نرود و با هر بار ریست ساعت تنظیم شود ، از فرمان زیر استفاده می کنیم .
AT&W OK
بررسی می کنیم عدد 1 تنظیم شده است .
AT+CLTS? +CLTS: 1 OK
بعد از انجام پیکربندی ، ماژول SIM800 باید یک بار ریست شود . برای ریست نرم افزاری ماژول SIM800 از فرمان زیر استفاده می کنیم .
AT+CFUN=1,1 OK
در پایان برای اینکه از بروزرسانی RTC ماژول SIM800 مطمئن شویم ، مقدار ساعت را از ماژول می خوانیم .
AT+CCLK? +CCLK: "21/02/03,13:07:59+14" OK
مشاهده می کنیم که ساعت ماژول از طریق شبکه محلی بدرستی بروزرسانی شد . همچنین مقدار Time Zone نیز با مقدار صحیح منطقه زمانی ایران بروزرسانی شده است .
نکته : ما از این روش بر روی سیمکارت اپراتورهای همراه اول و رایتل توانستیم RTC ماژول SIM800 را تنظیم کنیم . اما توسط سیمکارت اپراتور ایرانسل موفق نشدیم . اگر شما از طریق سیمکارت ایرانسل نتیجه گرفتید و یا پیکربندی و راه کاری برای به نتیجه رسیدن دارید ، از قسمت نظرات کاربران در زیر همین صفحه با ما در میان بگذارید .
تنظیم ساعت RTC ماژول SIM800 با NTP
در روش NTP نیاز به اینترنت GPRS است بنابراین این روش هزینه دارد ، اما نگران نباشید این هزینه خیلی زیاد نیست ولی اگر سیمکارت اعتبار ریالی نداشته باشد ، ماژول SIM800 نمی تواند به اینترنت وصل شود . همچنین ممکن است پاسخ دادن سرور با تاخیر همراه باشد و یا حتی سرور NTP قطع باشد ، بنابراین این روش خیلی قابل اطمینان نیست .
NTP چیست؟
NTP مخفف Network Time Protocol است . NTP یا پروتکل زمان تحت شبکه یکی از قدیمی ترین پروتکلهای مورد استفاده در شبکه های مبتنی بر IP است و در حال حاضر نسخه ای که مورد استفاده قرار دارد NTPv4 می باشد.
با استفاده از این پروتکل امکان هماهنگ نمودن و استفاده از ساعت دقیق در حد ساعت اتمی در شبکه های کامپیوتری بوجود می آید. معمولا در شبکه یا هر سیستم متصل به شبکه جهانی با اتصال به یک تایم سرور امکان تنظیم دقیق ساعت آن سیستم یا سیستمهای آن شبکه بوجود می آید.
NTP از ساعت هماهنگ جهانی یا Coordinated Universal Time (UTC) که یک استاندارد زمان از نوع اتمی است جهت هماهنگی ساعت کامپیوتر ها در حد میلی ثانیه استفاده می کند.
در ادامه می خواهیم RTC ماژول SIM800 را توسط پروتکل NTP با اتصال به اینترنت GPRS و سرورهای NTP انجام بدهیم .
ابتدا ساعت جاری را می خوانیم
AT+CCLK? +CCLK: "04/01/01,03:59:51+00" OK
تنظیمات اتصال به اینترنت GPRS ماژول SIM800 را انجام می دهیم
AT+SAPBR=3,1,"Contype","GPRS" OK
در این آموزش از سیم کارت همراه اول استفاده شده ، بنابراین APN را برابر mcinet قرار می دهیم . اگر از نوع دیگر سیم کارت استفاده می کنید باید از APN اپراتور سرویس دهنده خود استفاده نمائید . APN دو نوع از اپراتورهای پر استفاده در کشور را قرار می دهیم .
ایرانسل mtnirancell
رایتل RighTel
AT+SAPBR=3,1,"APN","mcinet" OK
برای فعال سازی اینترنت GPRS از دستور زیر استفاده می کنیم
AT+SAPBR =1,1 OK
در صورتی که اتصال به اینترنت به درستی صورت پذیرد ، NETWORK LED یا نت لایت به حالت تند تند چشمکزن می شود ، و یک آدرس IP به ما اختصاص پیدا می کند.
AT+SAPBR=2,1 +SAPBR: 1,1,"100.120.204.132" OK
دستور زیر تنظیمات مربوط به اتصال به شبکه می باشد ، با عدد 1 تنظیم می شود .
AT+CNTPCID =1 OK
دستور زیر مهم ترین بخش کار است ، در قسمت اول باید دامین یا آی پی سرور NTP را قرار دهیم ، بخش دوم نیز باید Time Zone منطقه زمانی را وارد کنیم . سرورهای NTP زیادی وجود دارد که ما به دلخواه می توانیم از آنها استفاده کنیم ، لیست تعداد زیادی سرور NTP را در قالب یک فایل تهیه کرده ایم ، که در انتهای همین آموزش می توانید دانلود نمایید .
AT+CNTP ="3.ir.pool.ntp.org",14 OK
دستور زیر عملیات همگام سازی یا بروزرسانی RTC ماژول SIM800 را شروع می کند . اگر عملیات بروزرسانی با موفقیت انجام شود ، ماژول در جواب CNTP: 1+ را برای ما ارسال می کند . تصویر زیر لیست کدهایی است که ماژول در جواب برای ما ارسال می کند .
AT+CNTP OK +CNTP: 1
در پایان یکبار دیگر ساعت را از RTC ماژول SM800 می خوانیم ، ساعت بدرستی از سرور NTP بروزرسانی شده است .
AT+CCLK? +CCLK: "21/02/03,16:33:25+14" OK
Time Zone چیست؟
کره زمین در طول جغرافیایی با خطوط فرضی که از قطب شما به قطب جنوب کشیده شده اند، به بخش های کوچکی تقسیم شده که به آن ها نصف النهار گفته می شود. این تقسیم بندی ها فرضی بوده و فاصله همه نصف النهارها از یکدیگر یکسان است. از میان نصف النهارها فرضی، طبق یک توافق بین المللی نصف النهاری که از منطقه گرینویچ انگلستان می گذرد، به عنوان نصف النهار مبدأ در نظر گرفته شد. ساعت سایر شهرها و کشورها بر اساس تعداد نصف النهاری که از نصف النهار مبدأ گرینویچ فاصله دارند، تنظیم می شود. منطقه زمانی یا Time Zone نیز مربوط به تفاوت ساعت شهرها و کشورها با ساعت مبدأ (گرینویچ) است.
اگر کره زمین که 360 درجه است را بر 24 ساعت یک شبانه روز تقسیم کنیم عدد 15=360/24 بدست می آید . یعنی هر 15 درجه برابر 1 ساعت می باشد . اگر در تصویر بالا دقت کنیم منطقه زمانی ایران در فاصله بین ساعت 3+ و 4+ از گرینویچ قرار دارد . به صورت قرار دادی اختلاف ساعت کشور ایران با گرینویچ برابر3:30+ می باشد . شاید تا به حال در تنظیم ساعت وسایل الکترونیکی خود مانند کامپیوتر یا گوشی همراه با (UTC+03:30)Tehran مواجه شده باشید .
تنظیم Time Zone ماژول Sim800
اگر بخواهیم فواصل را دقیق تر و بر حسب دقیقه حساب کنیم عدد 0.25=15/60 بدست می آید . برای راحتی محاسبات ، عدد اعشاری به دست آمده را در 4 ضرب می کنیم تا به عدد صحیح تبدیل و رند شود . بنابراین از این به بعد برای تنظیم Time Zone ماژول Sim800 به جای مقدار 3:30+ از عدد 3.5×4=14 استفاده می کنیم .
نکته : همانطور که می دانید در کشور ما ایران در 6 ماه اول سال به صورت قراردادی 1+ ساعت به ساعت رسمی کشور اضافه می شود . یعنی فاصله زمانی ما با گرینویچ 4:30+ ساعت محاسبه می شود . بنابراین برای تنظیم مقدار Time Zone ماژول Sim800 باید عدد 4.5×4=18 در نظر گرفته شود .