解码 GPS 数据 - Wio Terminal
在本节课程中,您将解码从 Wio Terminal 的 GPS 传感器读取的 NMEA 消息,并提取纬度和经度。
解码 GPS 数据
一旦从串口读取到原始的 NMEA 数据,就可以使用开源的 NMEA 库对其进行解码。
任务 - 解码 GPS 数据
编程设备以解码 GPS 数据。
如果尚未打开
gps-sensor应用项目,请将其打开。在项目的
platformio.ini文件中添加 TinyGPSPlus 库的依赖项。该库包含解码 NMEA 数据的代码。inilib_deps = mikalhart/TinyGPSPlus @ 1.0.2在
main.cpp中,为 TinyGPSPlus 库添加一个 include 指令:cpp#include <TinyGPS++.h>在
Serial3声明的下方,声明一个 TinyGPSPlus 对象,用于处理 NMEA 语句:cppTinyGPSPlus gps;将
printGPSData函数的内容更改为以下内容:cppif (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 串口读取下一个字符到
gpsNMEA 解码器中。每读取一个字符后,它会检查解码器是否读取到有效的语句,然后检查是否读取到有效的位置。如果位置有效,它会将其发送到串口监视器,同时显示参与定位的卫星数量。构建并上传代码到 Wio Terminal。
上传完成后,您可以使用串口监视器查看 GPS 位置信息。
text> 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 传感器程序成功实现了数据解码!