آموزش آردوینوپروژه های آردوینو

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

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

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

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

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

پیشنهاد میکنم پروژه ردیاب GPS با آردوینو را مشاهده کنید.

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

ماژول 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

اتصالات مدار پروژه ساعت 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 نمایش داده شده میشود.

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

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

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

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

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