解析GPS数据-Wio终端


文档摘要

解析GPS数据 - Wio终端 在本课程的这一部分中,您将解码由Wio终端从GPS传感器读取的NMEA消息,并提取纬度和经度。 解析GPS数据 一旦从串行端口读取了原始的NMEA数据,就可以使用开源的NMEA库进行解码。 任务 - 解析GPS数据 编写程序以解码GPS数据。 如果尚未打开,请打开 应用程序项目。 向项目的 文件添加一个库依赖项,该库是TinyGPSPlus,它包含了解码NMEA数据的代码。 在 中,为TinyGPSPlus库添加一个包含指令: 在 声明之后,声明一个TinyGPSPlus对象来处理NMEA语句: 将 函数的内容更改为以下内容: 这段代码会从UART串行端口读取下一个字符到NMEA解码器 中。

解析GPS数据 - Wio终端

在本课程的这一部分中,您将解码由Wio终端从GPS传感器读取的NMEA消息,并提取纬度和经度。

解析GPS数据

一旦从串行端口读取了原始的NMEA数据,就可以使用开源的NMEA库进行解码。

任务 - 解析GPS数据

编写程序以解码GPS数据。

  1. 如果尚未打开,请打开gps-sensor应用程序项目。

  2. 向项目的platformio.ini文件添加一个库依赖项,该库是TinyGPSPlus,它包含了解码NMEA数据的代码。

    lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
  3. main.cpp中,为TinyGPSPlus库添加一个包含指令:

    #include <TinyGPS++.h>
  4. Serial3声明之后,声明一个TinyGPSPlus对象来处理NMEA语句:

    TinyGPSPlus gps;
  5. 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中。每读取一个字符后,它会检查解码器是否已读取有效句子,然后检查是否已读取有效位置。如果位置有效,则将其发送到串行监视器,并附上参与此定位的卫星数量。

  6. 构建并上传代码到Wio终端。

  7. 上传完成后,您可以使用串行监视器监控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传感器程序成功了!

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U