پروژه الکترونیکپروژه تاریخ و ساعتپروژه های آردوینو

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

سلام. راه اندازی ساعت با ماژول GPS و آردوینو + آموزش کامل را آماده کردیم.

پروژه تاریخ و ساعت با ماژول جی پی اس و Arduino

بسیاری از ماهواره های GPS در اطراف زمین وجود دارند که برای تهیه مکان دقیق هر چیزی استفاده می شوند. این ماهواره ها در کنار مختصات موقعیت مکانی (طول و عرض جغرافیایی)، داده های دیگری مانند زمان ، تاریخ ، ارتفاع ، زاویه و … را نیز در اختیار ما قرار می دهند. در این پروژه آردوینو میخواهیم با استفاده از داده های زمان و تاریخ دریافتی از ماهواره های جی پی اس، یک ساعت مبتنی بر GPS درست کنیم. این نوع ساعت بسیار دقیق است و داده های زمان را دقت میلی ثانیه ارائه میدهد.

یک ماهواره GPS زمان و تاریخ را در زمان (UTC) فراهم می کند، بنابراین ما باید آن را تبدیل کنیم. برای تبدیل به وقت ایران، باید 3:30 به زمان جهانی اضافه کنیم.

ماژول GPS چطور ساعت و تاریخ را به ما میدهد ؟

ماژول GPS داده های مربوط به موقعیت را در به صورت لحظه ای می فرستد، و داده های زیادی را با فرمت NMEA می فرستد (تصویر زیر). فرمت NMEA شامل چند جمله است که ما در آن فقط به یک جمله نیاز داریم. این جمله از $ GPGGA شروع می شود و حاوی مختصات ، زمان و سایر اطلاعات مفید است.

فرمت NMEA

می توانیم با شمارش کاما (,) در رشته ، مختصات را از رشته $ GPGGA استخراج کنیم.

همچنین پروژه ساعت باینری با آردوینو را مشاهده کنید.

فرمت NMEA چیست ؟

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

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47
$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
واحد توضیح
$GPGGA فرمت اطلاعات موقعیت جهانی
HHMMSS.SSS زمان بر حسب ساعت ، دقیقه ، ثانیه و میلی ثانیه
Latitude عرض جغرافیایی
N جهت N= شمال و S= جنوب
Longitude عرض جغرافیایی
E جهت E= شرق و W= غرب
FQ کیفیت اطلاعات
NOS شماره ماهواره های استفاده شده
HDP دقت افقی
Altitude ارتفاع بر حسب متر از سطح دریا
M متر
Height ارتفاع
Checksum چک کردن اطلاعات

 

توضیحات مدار پروژه

اتصالات مدار پروژه ساعت GPS آردوینو ساده است. شماتیک مدار در تصویر زیر نشان داده شده است. از Arduino برای کنترل کل فرایند استفاده می شود، داده های GPS را از طریق ماهواره از طریق ماهواره GPS دریافت می کند، تاریخ و زمان را از رشته $ GPRMC استخراج می کند و آن ها را را بر روی LCD نشان می دهد.

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.

پروژه تاریخ و ساعت با ماژول جی پی اس و Arduino

پین های داده D4، D5، D6، D7 از ال سی دی کاراکتری به پین 5 ، 4 ، 3 ، 2 آردوینو ​​شماره وصل می شوند. و پین فرمان RS و EN از LCD به ترتیب به پین ​​7 و 6 آردوینو وصل شده اند.  در اینجا ما از ماژول GPS SKG13BL استفاده کرده ایم که با سرعت 9800 bps کار می کند. پس آردوینو را با استفاده از عملکرد “Serial.begin (9800)” در نرخ baud 9800 bps تنظیم میکنیم.

قطعات مورد نیاز

  1. برد آردوینو Uno
  2. ماژول GPS SKG13BL
  3. ال سی دی کاراکتری 16*2

توضیحات برنامه نویسی پروژه

کد کامل پروژه در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم.

ابتدا کتابخانه ها را فراخوانی میکنیم و پین های ارتبط سریال با ماژول جی پی اس و ارتباط با ال سی دی را تعریف میکنیم. همچنین برخی از متغیر ها را نیز برای ذخیره داده ها تعریف میکنیم. با استفاده از کتابخانه Softwareserial ما ارتباط بین پین های Rx و Tx ماژول GPS و پین های 10 و 11 آردوینو را برقرار میکنیم. به طور پیش فرض از پین 0 و 1 آردوینو برای ارتباط سریال استفاده می شود اما با استفاده از کتابخانه SoftwareSerial می توان ارتباط سریال را روی سایر پین های دیجیتال آردوینو امکان پذیر کرد.

#include<LiquidCrystal.h> // کتابخانه ال سی دی
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // پین های ال سی دی

#include <SoftwareSerial.h> // کتابخانه ارتباط سریال
SoftwareSerial Serial1(10, 11); // RX, TX ارتباط سریال
... ....
.... ....

سپس یک پیام خوش آمد را نمایش میدهیم و مقادیر زمان و تاریخ را دریافت و استخراج میکنیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

سپس زمان و تاریخ را از رشته دریافت شده استخراج می کنیم.

while(x<str_lenth)
    {
     if(str[x]==',')
     comma++;
      if(comma==1)
      {
        x++;
        UTC_hour+=str[x++];
        ... ....
        .... ....

و سپس زمان و تاریخ را به اعشار تبدیل کرده و آن را به زمان تهران تغییر میدهیم. (UTC +3:30)

int UTC_hourDec=UTC_hour.toInt();
int UTC_minutDec=UTC_minut.toInt();
int Second=UTC_second.toInt();
int Date=UTC_date.toInt();
int Month=UTC_month.toInt();
... ....
.... ....

و در آخر زمان با استفاده از عملکرد lcd.print بر روی LCD نمایش داده شده میشود.

موارد موجود در فایل : سورس کد ، شماتیک پروژه

پروژه ها رایگان هستند. برای دانلود فایل های پروژه باید در سایت عضو باشید. ثبت نام / ورود

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

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