ישנם לווייני GPS רבים ברחבי כדור הארץ המשמשים לספק את המיקום המדויק של כל מקום. יחד עם קואורדינטות המיקום (קו רוחב ואורך), הוא מספק גם נתונים אחרים כמו זמן, תאריך, גובה, זווית מעקב לכיוון וכו '. כבר למדנו לקרוא את נתוני ה- GPS האלה מלווין באמצעות Arduino. אז אנחנו הולכים להכין שעון GPS באמצעות נתוני 'זמן ותאריך' מלוויין ה- GPS. שעון GPS מעודכן הוא מדויק מאוד ומספק את הנתונים בזמן אמת בדיוק של אלפיות השנייה.
רכיבים:
- ארדואינו אונו
- מודול GPS
- LCD בגודל 16x2
- חוטי חיבור
- ספק כוח
הסבר עבודה:
מודול GPS שולח את הנתונים בפורמט NMEA, ראה את הפלט של נתוני GPS בצילום המסך למטה. פורמט NMEA מורכב מכמה משפטים, בהם אנו זקוקים למשפט אחד כדי לחלץ את התאריך והשעה. משפט זה מתחיל מ- $ GPRMC ומכיל את הקואורדינטות, הזמן ומידע שימושי אחר. זה GPRMC $ מתייחס לנתוני GPS / תחבורה ציבורית מינימום מומלצים, ואורך מחרוזת זה הוא כ- 70 תווים. בעבר חילצנו מחרוזת $ GPGGA במערכת מעקב אחר רכב כדי למצוא את הקואורדינטות של קו רוחב ואורך. הנה פלט ה- GPS:
וזה מחרוזת GPRMC $ בעיקר מכילה מהירות, זמן, תאריך ומיקום
$ GPRMC, 123519.000, A, 7791.0381, N, 06727.4434, E, 022.4,084.4,230394,003.1, W * 6 A $ GPRMC, HHMMSS.SSS, A, קו רוחב, N, קו אורך, E, מהירות, זווית, תאריך, MV, W, CMD
מזהה |
תיאור |
RMC |
משפט מינימלי מומלץ C |
HHMMSS.SSS |
זמן בפורמט של דקה שעה שניות ומילישניות. |
א |
סטטוס // A = פעיל ו- V = בטל |
קו רוחב |
קו רוחב 49 מעלות 16.45 דק ' צָפוֹן |
נ |
כיוון N = צפון, S = דרום |
קו אורך |
קו אורך (קואורדינטות) |
ה |
כיוון E = מזרח, W = מערב |
מְהִירוּת |
מהירות בקשרים |
זָוִית |
זווית מעקב במעלות |
תַאֲרִיך |
תאריך ב- UTC |
MV |
וריאציה מגנטית |
W |
כיוון וריאציה E / W |
CMD (* 6A) |
נתוני בדיקת בדיקה |
אנו יכולים לחלץ זמן ותאריך ממחרוזת $ GPRMC על ידי ספירת הפסיקים במחרוזת. בעזרת ארדואינו ותכנות אנו מוצאים מחרוזת $ GPRMC ומאחסנים אותו במערך, ואז ניתן למצוא זמן (פורמט 24 שעות) אחרי פסיק אחד ותאריך ניתן למצוא אחרי תשע פסיקים. זמן ותאריך נשמרים עוד בחוטים.
לוויין GPS מספק זמן ותאריך בזמן אוניברסלי מתואם (UTC), לכן עלינו להמיר אותו בהתאם. כדי להמיר לפי הזמן ההודי, הוספנו 5:30 בשעה UTC, מכיוון שהזמן ההודי הוא 5 וחצי שעות לפני UTC / GMT.
תרשים מעגל:
חיבורי מעגל של שעון ה- GPS של ארדואינו פשוטים. Arduino משמש לשליטה בתהליך כולו, הוא מקבל את נתוני ה- GPS מלווין דרך מודול ה- GPS, מחלץ את התאריך והשעה ממחרוזת $ GPRMC ומציג אותם על גבי LCD.
סיכות נתונים D4, D5, D6, D7 של 16x2 LCD מחוברות לסיכה מס '. 5, 4, 3, 2 של Arduino וסיכת פיקוד RS ו- EN של LCD מחוברים לסיכה 7 ו -6 של Arduino בהתאמה. מקלט GPS מודול סיכה Tx מחובר לסיכה Rx 10 של Arduino. PIN קרקעי של Arduino ו- GPS מחוברים זה לזה. כאן השתמשנו במודול GPS SKG13BL, הפועל בקצב שידור של 9800 bps. Arduino מוגדר גם בקצב שידור של 9800 bps באמצעות הפונקציה "Serial.begin (9800)".
הסבר על תכנות:
בחלק הראשון של התכנות אנו כוללים ספריות ומגדירים סיכות לתקשורת סדרתית LCD ותוכנה. הגדר גם משתנה כלשהו עם מערכים לאחסון נתונים. על ידי שימוש בספרייה הסדרתית של התוכנה כאן, אפשרנו תקשורת טורית בסיכה 10 ו- 11, והפכנו אותם ל- Rx ו- Tx בהתאמה. כברירת מחדל פינים 0 ו- 1 של Arduino משמשים לתקשורת טורית, אך באמצעות ספריית SoftwareSerial אנו יכולים לאפשר תקשורת טורית על פינים דיגיטליים אחרים של Arduino.
#לִכלוֹל
אחריה, אתחלנו את התקשורת הטורית ואת ה- LCD בפונקציית ההתקנה והראינו הודעת קבלת פנים ב- LCD.
לאחר מכן חילצנו זמן ותאריך מהחרוזת שהתקבלה.
בעוד (x
ואז המיר זמן ותאריך לעשרוני ושנה אותם לזמן ההודי (UTC +5: 30)
int UTC_hourDec = UTC_hour.toInt (); int UTC_minutDec = UTC_minut.toInt (); int שני = UTC_second.toInt (); int תאריך = UTC_date.toInt (); חודש int = UTC_month.toInt ();……………
ולבסוף זמן ותאריך הוצגו על גבי LCD באמצעות פונקציית lcd.print , בדוק את הקוד המלא שלמטה.