QuecPython+GNSS:实现快速定位

概述

QuecPython 结合 GNSS(全球导航卫星系统)模块为物联网设备提供开箱即用的定位能力解决方案。该方案支持 GPS/北斗/GLONASS/Galileo 多系统联合定位,为物联网开发者提供从硬件接入到云端服务的全栈式定位解决方案。

优势特点

  • 多体系定位:支持 GNSS、LBS 和 Wi-Fi 定位功能
  • 极简开发:高度封装 API 接口,无需编写底层驱动

功能概述

主要介绍如何使用 QuecPython 开发板的内置 GNSS 功能实现定位信息的获取,典型的编程工作流程分为以下几个部分:

  • GNSS 初始化
  • 定位数据获取

GNSS 初始化

该方法用于实现模组内置 GNSS 模块功能的初始化。

python 复制代码
quecgnss.init()

API 详情请参考 quecgnss.init

定位数据获取

该方法用于读取 GNSS 定位数据。

复制代码
quecgnss.read(size)

API 详情请参考 quecgnss.read

参数设置

该方法用于设置 GNSS 参数,包括卫星系统、NMEA 语句类型、是否使用 AGNSS 和 APFLASH 等。

python 复制代码
quecgnss.configSet(config_type, config_value)

API 详情请参考 quecgnss.configSet

示例代码

python 复制代码
import quecgnss

# 初始化
quecgnss.init()

# 读取数据
data = quecgnss.read(4096)

# 打印数据
print(data[1].decode())

运行结果

以下为运行结果示例,主要介绍一下定位数据的内容。

复制代码
# 运行结果

167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,28,22,74,98,26,25,16,43,25*77
$GPGSV,2,2,8,26,70,236,28,31,59,12,38,32,55,127,34,4,5,,21*49
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022326.000,A,3149.324624,N,11706.921702,E,0.000,261.541,180222,,E,A*38
$GNGGA,022326.000,3149.324624,N,11706.921702,E,1,12,1.013,-8.580,M,0,M,,*47
$GNGLL,3149.324624,N,11706.921702,E,022326.000,A,A*44
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.773,1.013,1.455*1C
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,27,22,74,98,26,25,16,43,25*78
$GPGSV,2,2,8,26,70,236,28,31,59,12,37,32,55,127,34,4,5,,20*47
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022327.000,A,3149.324611,N,11706.921713,E,0.000,261.541,180222,,E,A*3F
$GNGGA,022327.000,3149.324611,N,11706.921713,E,1,12,1.013,-8.577,M,0,M,,*48
$GNGLL,3149.324611,N,11706.921713,E,022327.000,A,A*43
...... # 数据较多,省略
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.456*11
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.456*18
$GPGSV,2,1,8,3,23,302,27,16,32,220,26,22,73,101,27,25,16,43,27*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,33,32,54,128,28,4,5,,24*44
$BDGSV,2,1,8,163,51,192,33,166,71,11,35,167,52,198,33,169,59,334,34*6E
$BDGSV,2,2,8,170,40,205,32,161,5,,33,164,5,,28,165,5,,30*5F
$GNRMC,022507.000,A,3149.324768,N,11706.922344,E,0.000,261.541,180222,,E,A*31
$GNGGA,022507.000,3149.324768,N,11706.922344,E,1,12,1.120,-8.794,M,0,M,,*48
$GNGLL,3149.324768,N,11706.922344,E,022507.000,A,A*4D
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.455*12
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.455*1B
$GPGSV,2,1,8,3,23,302,26,16,32,220,26,22,73,101,27,25,16,43,26*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,32,32,54,128,28,4,5,,24*45
$BDGSV,2,1,8,163,51,192,24,166,71,11,35,167,52,198,33,169,59,334,34*68
$BDGSV,2,2,8,170,40,205,31,161,5,,33,164,5,,28,165,5,,30*5C
$GNRMC,022508.000,A,3149.324754,N,11706.922338,E,0.002,261.541,180222,,E,A*38
$GNGGA,022508.000,3149.324754,N,11706.922338,E,1,12,1.120,-8.750,M,0,M,,*4B
$GNGLL,3149.324754,N,11706.922338,E,022508.000,A,A*46
$GNGSA,A,3,31,3

# 数据介绍

NMEA端口数据分类:
                $GPGGA 卫星定位信息
                $GPGSA  卫星PRN数据
                $GPGSV  可视卫星信息
                $GPRMC 推荐定位信息
                $GPVTG  地面速度信息
                $GPDTM 大地坐标系信息
                $GPGNS  GNSS定位数据
NMEA语句解析:
GSV 语句的基本格式如下:

                $GPGSV,(1),(2),(3),(4),(5),(6),(7),...,(4),(5),(6),(7)*hh(CR)(LF)

                字段1:GSV 语句总数

                字段2:本句 GSV 的编号

                字段3:可见卫星的总数(00~12,前面的 0 也将被传输)

                字段4:卫星编号(01~32,前面的 0 也将被传输)

                字段5:卫星仰角(00~90 度,前面的 0 也将被传输)

                字段6:卫星方位角(000~359 度,前面的 0 也将被传输)

                字段7:信噪比(00~99dB,没有跟踪到卫星时为空)(就是常说的CN值)

GGA 语句的基本格式如下:

                $GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF)

                字段1:UTC 时间,hhmmss.sss,时分秒格式

                字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

                字段3:纬度N(北纬)或S(南纬)

                字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)

                字段5:经度E(东经)或W(西经)

                字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算

                字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)

                字段8:HDOP水平精度因子(0.5 - 99.9)

                字段9:海拔高度(-9999.9 - 99999.9)

                字段10:海拔高度单位,米

                字段11:地球椭球面相对大地水准面的高度

                字段12:地球椭球面相对大地水准面的高度单位,米

GSA 语句的基本格式如下:

                $GPGSA,(1),(2),(3),(3),,,,,,,,,,(3),(4),(5),(6),(7)*hh(CR)(LF)

                字段1:定位模式,A=自动手动2D/3D,M=手动2D/3D

                字段2:定位类型,1=未定位,2=2D定位,3=3D定位

                字段3:PRN码(伪随机噪声码),第1信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)(最多12个)

                字段4:PDOP综合位置精度因子(0.0 - 500.0)

                字段5:HDOP综合位置精度因子(0.0 - 500.0)

                字段6:VDOP水平精度因子(0.0 - 500.0)

                字段7:卫星系统ID

VTG语句的基本格式如下:

                $GPVTG,(1),(2),(3),(4),(5),(6),(7),(8),(9)*hh(CR)(LF)

                字段1:运动角度,000 - 359,(前导位数不足则补0)

                字段2:T=真北参照系

                字段3:运动角度,000 - 359,(前导位数不足则补0)

                字段4:M=磁北参照系

                字段5:水平运动速度(0.00)(前导位数不足则补0)

                字段6:N=节,Knots

                字段7:水平运动速度(0.00)(前导位数不足则补0)

                字段8:K=公里/时,km/h

                字段9:状态指示 E(航迹推算) A(非DGPS)

RMC语句的基本格式如下:

                $GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13)*hh(CR)(LF)

                字段1:UTC时间,hhmmss.sss格式

                字段2:状态,A=定位,V=未定位

                字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

                字段4:纬度N(北纬)或S(南纬)

                字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

                字段6:经度E(东经)或W(西经)

                字段7:速度,节,Knots

                字段8:方位角,度

                字段9:UTC日期,DDMMYY格式

                字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

                字段11:磁偏角方向,E=东W=西

                字段12:状态指示 E(航迹推算) A(非DGPS)

                字段13:导航状态,V 表示不提供导航状态

DTM语句的基本格式如下:

                 $GNDTM,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>*<9>(CR)(LF)

                <1>本地坐标系代码 W84,P90

                <2>坐标系子代码 空

                <3>纬度偏移量

                <4>纬度半球N(北半球)或S(南半球)

                <5>经度偏移量

                <6>经度半球E(东经)或W(西经)

                <7>高度偏移量

                <8>坐标系代码 W84

                <9>校验码

GNS语句的基本格式如下:

                $GNGNS,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>.<9>,<10>,<11>,<12>,<13>,*<14>(CR)(LF)

                <1> UTC时间: 定位时间 hhmmss.ss------000000.00~235959.99

                <2> 纬度: ddmm.mmmmm------0000.00000~8959.9999

                <3> 南纬北纬: 北纬N,S南纬

                <4>经度:dddmm.mmmmm------0000.00000~17959.99999

                <5>东经西经: 东经E,西经W

                <6>定位模式: N-未定位;A-已定位;D-普通差分定位;P-高精度定位;R-RTK定位固定解;F-RTK定位浮点解;E-估算值;M-注入位置;S-模拟输入

                <7>定位卫星:参与定位卫星,00-99

                <8>HDOP:水平精度因子,0.5-99.9

                <9>海拔:单位:米

                <10>大地水准面: 地球椭球面相对大地水准面的高度

                <11>差异数据时间:GN开头时为空

                <12>基准站ID:GN开头时为空

                <13>导航状态------ C=告警, S=安全, U=不安全, V=无效

                <14>校验和
相关推荐
糖糖单片机设计8 小时前
硬件开发_基于STM32单片机的电脑底座系统
stm32·单片机·嵌入式硬件·物联网·51单片机
蓝蜂物联网1 天前
边缘计算网关赋能智慧农业:物联网边缘计算的创新应用与实践
人工智能·物联网·边缘计算
TDengine (老段)1 天前
TDengine 转化类函数 TO_CHAR 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
蓝蜂物联网1 天前
边缘计算网关与 EMCP 物联网云平台:无缝协作,共筑智能生态
人工智能·物联网·边缘计算
远创智控研发五部1 天前
C200H以太网通道服务监控、人机交互与驱动
物联网·数据采集·以太网模块·工业自动化·欧姆龙plc
绿蕉1 天前
中国5G RedCap基站开通情况及2025年全年计划
物联网·5g redcap·蜂窝通讯
熬夜的猪仔2 天前
第五章 Freertos物联网实战 微信小程序篇
物联网·freertos·微信小程序开发
熬夜的猪仔2 天前
第四章 Freertos物联网实战DHT11温湿度模块
物联网·freertos·dht11温湿度模块
WIZnet3 天前
第二十七章 W55MH32 Interrupt示例
物联网·以太网·wiznet·中断·高性能以太网单片机·w55mh32·toe
时序数据说3 天前
时序数据库主流产品概览
大数据·数据库·物联网·时序数据库·iotdb