3.9 KiB
פענוח נתוני GPS - Wio Terminal
בחלק זה של השיעור, תפענחו את הודעות NMEA שנקראו מחיישן ה-GPS על ידי ה-Wio Terminal, ותוציאו את קווי הרוחב והאורך.
פענוח נתוני GPS
לאחר קריאת נתוני NMEA הגולמיים מהפורט הסדרתי, ניתן לפענח אותם באמצעות ספריית NMEA בקוד פתוח.
משימה - פענוח נתוני GPS
תכנתו את המכשיר לפענח את נתוני ה-GPS.
-
פתחו את פרויקט האפליקציה
gps-sensor
אם הוא עדיין לא פתוח. -
הוסיפו תלות בספרייה TinyGPSPlus לקובץ
platformio.ini
של הפרויקט. ספרייה זו מכילה קוד לפענוח נתוני NMEA.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
בקובץ
main.cpp
, הוסיפו הוראת include עבור ספריית TinyGPSPlus:#include <TinyGPS++.h>
-
מתחת להצהרה של
Serial3
, הכריזו על אובייקט TinyGPSPlus לעיבוד משפטי NMEA:TinyGPSPlus gps;
-
שנו את תוכן הפונקציה
printGPSData
לתוכן הבא:if (gps.encode(Serial3.read())) { if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); Serial.print(" - from "); Serial.print(gps.satellites.value()); Serial.println(" satellites"); } }
קוד זה קורא את התו הבא מפורט ה-UART הסדרתי לתוך מפענח ה-NMEA
gps
. לאחר כל תו, הוא יבדוק אם המפענח קרא משפט תקין, ואז יבדוק אם הוא קרא מיקום תקין. אם המיקום תקין, הוא ישלח אותו למוניטור הסדרתי, יחד עם מספר הלוויינים שתרמו לתיקון זה. -
בנו והעלו את הקוד ל-Wio Terminal.
-
לאחר העלאה, תוכלו לעקוב אחר נתוני מיקום ה-GPS באמצעות המוניטור הסדרתי.
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- 47.6423109,-122.1390293 - from 3 satellites
💁 תוכלו למצוא את הקוד הזה בתיקייה code-gps-decode/wio-terminal.
😀 תוכנית חיישן ה-GPS שלכם עם פענוח נתונים הצליחה!
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.