4.2 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
، أضف توجيه تضمين لمكتبة 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. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.