智能定位器方案基于 EC200UEUAA QuecPython 标准开发板实现,具有以下特性:
版本号:V2.0.0
从 Github 仓库获取源代码步骤如下:
Win10 系统按照下图进行硬件连接:
![]()
LTE 字样的天线连接座上GNSS 字样的天线连接座上GNSS_EN 字样的两根排针短接,使能开发板内置 GNSS 功能按照以下步骤创建、配置并连接阿里云物联网平台:
详情可参考阿里云说明文档:创建产品与设备。
![]()
![]()
详情可参考阿里云说明文档:为产品定义物模型。
物模型可以更直观的看到上传的数据值,本解决方案提供了物模型 demo,可直接导入工程项目中 object_model_demo/ali_cloud_object_model.json 文件自动生成,无需手动创建。
![]()
本节重点阐述用户在业务上需要关注的配置或代码如何修改,以便用户能够快速上手。
在开始前,先用 VSCode 打开项目工程源码,找到 code 中的以 settings_ 开头的配置文件进行配置。
本方案支持两个可选平台:阿里 IoT 和 Thingsboard。这里主要介绍使用阿里 IoT 的配置与连接。
settings_server.py 用于配置 IoT 平台连接信息
![]()
settings_loc.py 用于配置定位模块的配置信息(内置 GNSS/外挂 GNSS 串口,基站/Wifi 定位的认证信息)
本解决方案基于 EC200UEUAA QuecPython 标准开发板的内置 GNSS 功能实现。
settings_user.py 用于配置用户业务功能的相关配置参数(如报警开关、低电阈值等)
完成硬件连接的工作后,开发板会自动开机,查看电脑设备管理器的端口列表中是否出现包含 Quectel USB 字样的 COM 口。
![]()
参考此章节,烧录固件包 QPY_OCPU_BETA0001_EC200U_EUAA_FW 至开发板。
执行 _main.py 脚本后,程序开始运行,在交互页面即可查看项目运行状态:
程序要运行一段时间后才能获取到 GNSS 定位信息,具体可参考相关文档说明。
![]()
在阿里云物联网平台可查看设备状态信息。
![]()
通过在线调试下发指令到设备端进行设备控制与数据交互。
![]()
固件升级只支持差分升级,不支持整包升级;
项目文件升级包,以修改项目代码文件后缀名为
.bin的方式做成升级包,上传云端,可上传多个文件。
EC200U-EUAA。![]()
创建OTA升级包
升级包名称以 settings.py 中 PROJECT_NAME 命名,如:QuecPython-Tracker。
![]()
![]()
![]()
等待设备升级,查看升级结果
当设备开启 OTA 升级和 OTA 自动升级,则等待设备升级完成,查看升级结果;
当设备开启 OTA 升级,但未开启自动升级时,可通过在线调试模块下发 user_ota_action=1 的物模型设置指令,进行 OTA 升级。
设备下载固件成功后会重启进入升级,需要等待一段时间。当观察到 QPYcom 重新出现
Quectel USB字样的端口时,说明 OTA 升级完成。此时打开交互端口重新运行_main.py脚本,上报升级成功后的版本号,云端刷新即可看到 OTA 状态为升级成功。
![]()
![]()
settings.py 中 PROJECT_NAME 命名,如:QuecPython-Tracker。![]()
.bin{"files":{"common.bin":"/usr/modules/common.py","settings.bin":"/usr/settings.py","test_tracker.bin":"/usr/test_tracker.py"}}![]()
![]()
等待设备升级,查看升级结果
user_ota_action=1 的物模型设置指令,进行 OTA 升级。![]()
本文档主要描述移远通信 QuecPython 定位器的设计框架,包含软硬件系统框架、关键组件功能描述、系统初始化流程和业务流程的介绍以及功能示例,方便用户快速了解 QuecPython 定位器的整体架构与功能。
智能定位器方案中的软件功能介绍如下图所示,方案根据定位器实际业务进行功能拆分,模块化开发实现。
![]()
模组、IoT 平台之间数据交互流程如下图介绍:
![]()
流程描述:
Tracker 类中进行处理,如下行的指令处理,报警检测,数据采集与上报,设备的控制等。![]()
Tracker.add_module 注册到 Tracker 类中进行控制;Tracker.server_callback 中进行处理;Tracker.net_callback 中进行处理。软件系统框架介绍描述如下:
![]()
功能描述
实现核心业务逻辑,与服务端的数据交互解析,设备模块的控制,所有功能以事件的形式,传入业务事件消息队列子线程中处理。
实现原理
通过注册功能模块,获取各个功能模块的数据,如定位信息,电池信息,传感器信息等
通过回调监听服务端下发的指令消息,进行业务处理
通过RTC回调唤醒操作,唤醒设备休眠,进行业务数据上报
注册功能模块与回调函数配置
功能描述
通过内置或外挂 GNSS,基站,Wifi 获取当前设备定位信息。
实现原理
内置 GNSS 通过 quecgnss 接口开启与读取 GNSS 数据
外挂 GNSS 通过 UART 串口读取 GNSS 数据
基站定位通过 cellLocator 基站定位接口获取基站定位经纬度、精度等信息
Wifi 定位通过 wifilocator 和 wifiScan 接口获取定位经纬度、精度、mac 地址等信息
功能描述
读取电池的电量、电压,获取电池的充电状态,通过回调函数通知用户电池充电状态变化。
实现原理
电池电压的获取方式有两种
电池电量目前只提供模拟计算,录入了一个电压,温度对应电池电量的数据关系表进行模糊计算
电池的充电状态是通过引脚中断与获取引脚的电平高低判断当前设备的充电状态
功能描述
周期性唤醒设备并进行业务处理,业务处理完成后,设备进入休眠模式。
当前支持的休眠模式有:
实现原理
设置对应的休眠模式,使设备进入休眠,通过 RTC 定时器进行设备唤醒
功能描述
通过 MQTT 协议与阿里 IoT 物联网模块进行交互。
此处以阿里 IoT MQTT 协议为例,实际应用以实际对接的 IoT 平台与协议进行开发,基本逻辑模式一致。
实现原理
通过 MQTT 协议,按照阿里 IoT 物联网模块的通信规则进行登录与数据交互。
注册登录
数据上传
下行数据回传
OTA 升级
项目软件代码中各组件对象之间存在依赖关系与继承关系,我们可以将定位器这个产品作为顶层对象,它由若干个对应的功能所组成,本章节通过 UML 类图将其与所依赖的组件对象建立了关联,具体如下图所示。
![]()
![]()
业务流程说明:
![]()
add_module 接口添加到 Tracker 对象中,再将 Tracker.server_callback 注册到 Server 对象中,用于接收服务端下行的消息指令。