You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.1 KiB
3.1 KiB
解码 GPS 数据 - Wio Terminal
在本节课程中,您将解码从 Wio Terminal 的 GPS 传感器读取的 NMEA 消息,并提取纬度和经度。
解码 GPS 数据
一旦从串口读取到原始的 NMEA 数据,就可以使用开源的 NMEA 库对其进行解码。
任务 - 解码 GPS 数据
编程设备以解码 GPS 数据。
-
如果尚未打开
gps-sensor
应用项目,请将其打开。 -
在项目的
platformio.ini
文件中添加 TinyGPSPlus 库的依赖项。该库包含解码 NMEA 数据的代码。lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
在
main.cpp
中,为 TinyGPSPlus 库添加一个 include 指令:#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 串口读取下一个字符到
gps
NMEA 解码器中。每读取一个字符后,它会检查解码器是否读取到有效的语句,然后检查是否读取到有效的位置。如果位置有效,它会将其发送到串口监视器,同时显示参与定位的卫星数量。 -
构建并上传代码到 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 传感器程序成功实现了数据解码!
免责声明:
本文档使用AI翻译服务 Co-op Translator 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原文档的原始语言版本为权威来源。对于关键信息,建议使用专业人工翻译。我们对因使用此翻译而引起的任何误解或误读不承担责任。