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.
IoT-For-Beginners/translations/zh/3-transport/lessons/1-location-tracking/wio-terminal-gps-decode.md

3.1 KiB

解码 GPS 数据 - Wio Terminal

在本节课程中,您将解码从 Wio Terminal 的 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 指令:

    #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 串口读取下一个字符到 gps NMEA 解码器中。每读取一个字符后,它会检查解码器是否读取到有效的语句,然后检查是否读取到有效的位置。如果位置有效,它会将其发送到串口监视器,同时显示参与定位的卫星数量。

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

  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 传感器程序成功实现了数据解码!

免责声明
本文档使用AI翻译服务 Co-op Translator 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原文档的原始语言版本为权威来源。对于关键信息,建议使用专业人工翻译。我们对因使用此翻译而引起的任何误解或误读不承担责任。