diff --git a/docs/Application_guide/en/README.md b/docs/Application_guide/en/README.md index 1526ca19d33f625a6824e8fbf13b683889a87d0e..cea0c60f2fc5d8d8489438962cad55f812b849f4 100644 --- a/docs/Application_guide/en/README.md +++ b/docs/Application_guide/en/README.md @@ -98,6 +98,7 @@ QuecPython Application Guide is a guide on how to use the commonly used function - [Smart Agriculture Central Control Panel](solutions/Agriculture-Control-Panel/README.md) - [Wearable Solution](solutions/Wear/readme.md) - [Electricity Meter](solutions/electricity-meter/README.md) +- [Tracker Solution](solutions/tracker/README.md)
@@ -106,4 +107,4 @@ QuecPython Application Guide is a guide on how to use the commonly used function - [Helios SDK Development Guide - Beginner](helios-sdk/quick-start.md) - [Helios SDK Development Guide - Intermediate](helios-sdk/junior.md) - [Helios SDK Development Guide - Advanced](helios-sdk/advanced.md) -
\ No newline at end of file + diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-001.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-001.png new file mode 100644 index 0000000000000000000000000000000000000000..66ac56ab80bb5863724383b36282160fde9e1cd3 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-001.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-002.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-002.png new file mode 100644 index 0000000000000000000000000000000000000000..460123a5bb105feeb55d026fbcebea090a96c322 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-002.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-003.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-003.png new file mode 100644 index 0000000000000000000000000000000000000000..480630730e9caf09919fca6921c55f57d7f1e77d Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-003.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-004.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-004.png new file mode 100644 index 0000000000000000000000000000000000000000..ffcfab5177e3ae39dd8f013152d03d186756a5ff Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-004.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-005.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-005.png new file mode 100644 index 0000000000000000000000000000000000000000..967ab29fe863884dfb9aa0af156ce861277602a7 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-005.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-006.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-006.png new file mode 100644 index 0000000000000000000000000000000000000000..b2caa516e69be5c0012c51afb92ce3ca87d26d13 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-006.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-007.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-007.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a55f14c5c9ce53b3b3826344ca1e51069623ad Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-007.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-008.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-008.png new file mode 100644 index 0000000000000000000000000000000000000000..f93609d2104192a6a71fdc091c01d51877f18ec9 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-008.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-009.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-009.png new file mode 100644 index 0000000000000000000000000000000000000000..88e83b9c3cfc794186bffb672129ba46b35e2056 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-009.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-010.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-010.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9d8134af91344ec9634add2c61983e059f9f62 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-010.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-011.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-011.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac88c47f1dd4b8abcbda324bea0b71e8254def6 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-011.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-012.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-012.png new file mode 100644 index 0000000000000000000000000000000000000000..0797bc0157c59026b546c252c38b88c0982dde8a Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-012.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-013.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-013.png new file mode 100644 index 0000000000000000000000000000000000000000..98b0a5b47928483df51ae0f70b7e23d8b5d029b4 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-013.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-014.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-014.png new file mode 100644 index 0000000000000000000000000000000000000000..d683421ef32dddea7cbbb45d63b7795cb5dcbcbb Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-014.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-015.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-015.png new file mode 100644 index 0000000000000000000000000000000000000000..b480370fba1a675d444db15f2551e5ca2adf74b7 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-015.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-016.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-016.png new file mode 100644 index 0000000000000000000000000000000000000000..4724a675cc1a2126882936eda72783687e5414dd Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-016.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-101.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-101.png new file mode 100644 index 0000000000000000000000000000000000000000..fb886b48e7bf3e67319347bd1f42f31a1ebf814c Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-101.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-102.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-102.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad3846ec210cf60292d7c06210b1955410ea250 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-102.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-104.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-104.png new file mode 100644 index 0000000000000000000000000000000000000000..f6aab3b0fe131c993f432972a44f44aaed55c335 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-104.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-105.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-105.png new file mode 100644 index 0000000000000000000000000000000000000000..d829c9329beeedac0a87fdd10065d7ae009803b1 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-105.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-106.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-106.png new file mode 100644 index 0000000000000000000000000000000000000000..8b974efef391672fb3a3c323a9ea93300532f44b Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-106.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/solution-tracker-107.png b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-107.png new file mode 100644 index 0000000000000000000000000000000000000000..f124bdf04eb04aea3d03445f6b6499289cd64748 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/solution-tracker-107.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/tracker_application.png b/docs/Application_guide/en/media/solutions/tracker/tracker_application.png new file mode 100644 index 0000000000000000000000000000000000000000..0d824843f5f284a6beeb8c7e6b458d95fed90680 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/tracker_application.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/tracker_funcion.png b/docs/Application_guide/en/media/solutions/tracker/tracker_funcion.png new file mode 100644 index 0000000000000000000000000000000000000000..6db78889df82115340b2ded83e8a847f0599f956 Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/tracker_funcion.png differ diff --git a/docs/Application_guide/en/media/solutions/tracker/tracker_process.png b/docs/Application_guide/en/media/solutions/tracker/tracker_process.png new file mode 100644 index 0000000000000000000000000000000000000000..bf933ff912776939eb2ed05cbf76809fbd4ae8bc Binary files /dev/null and b/docs/Application_guide/en/media/solutions/tracker/tracker_process.png differ diff --git a/docs/Application_guide/en/sidebar.yaml b/docs/Application_guide/en/sidebar.yaml index 475191406e91370383540a1d497813112bfe6b0d..0940d8d3c50124f7007ed540bd03ad9ee701208e 100644 --- a/docs/Application_guide/en/sidebar.yaml +++ b/docs/Application_guide/en/sidebar.yaml @@ -270,6 +270,8 @@ items: file: solutions/Wear/readme.md - label: Electricity Meter file: solutions/electricity-meter/README.md + - label: Tracker Solution + file: solutions/tracker/README.md - label: HeliosSDK file: helios-sdk/README.md items: diff --git a/docs/Application_guide/en/solutions/README.md b/docs/Application_guide/en/solutions/README.md index 94cd8f3aaf7950c58c1cf6b055b04b28c052f7e8..df79f190c0a50c7cdeaa40f7bf48b729a9bff125 100644 --- a/docs/Application_guide/en/solutions/README.md +++ b/docs/Application_guide/en/solutions/README.md @@ -6,3 +6,4 @@ To facilitate your application development and accelerate your project implement - [Smart Agriculture Central Control Panel](./Agriculture-Control-Panel/README.md) - [Wearable Solution](./Wear/readme.md) - [Electricity Meter](./electricity-meter/README.md) +- [Tracker Solution](./tracker/README.md) diff --git a/docs/Application_guide/en/solutions/tracker/README.md b/docs/Application_guide/en/solutions/tracker/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ef05dc0717be2dd36bb006581e9cee7c7d0943c2 --- /dev/null +++ b/docs/Application_guide/en/solutions/tracker/README.md @@ -0,0 +1,379 @@ +# 智能定位器解决方案 + +## 方案介绍 + +本文档主要描述移远通信QuecPython定位器的设计框架, 包含软硬件系统框架、关键组件功能描述、系统初始化流程和业务流程的介绍以及功能示例, 方便用户快速了解QuecPython定位器的整体架构与功能。 + +### 产品概述 + +- Tracker智能定位器。 +- 终端设备功能涵盖绝大部分定位器应用场景 +- 可视化运营平台+手机APP, 设备管理和数据查看更方便 + +![](../../media/solutions/tracker/tracker_process.png) + +### 产品功能 +- 多重定位、安全围栏、危险报警、紧急求救、语音监听、录音、轨迹回放、远程控制等 +- 智能定位 + - 系统利用4G通信/多重定位/分布式服务等技术, 为智能定位器行业提供从端到服务的一站式解决方案 +- 全平台支持 + - 设备运营平台和手机APP功能齐全, 终端设备厂商无需自行搭建服务平台即可快速实现对设备和终端用户的管理 +- 可靠稳定 + - 终端设备定位精度高、危险感知灵敏度高、功耗低、运行稳定, 终端设备厂商可套壳即用, 极大缩短硬件开发周期 + +![](../../media/solutions/tracker/tracker_funcion.png) + +### 产品特点 + +- 位置信息、危险警情智能感知、识别和上报 +- 支持阿里Iot平台、ThingsBoard、私有服务等多种Iot平台对接 +- QuecPython二次开发, 模块化、定制化、缩短开发周期 +- 可视化运营平台、手机APP控制终端 + +### 应用行业 + +- 车载定位 +- 物流货运 +- 人员定位 +- 电子学生证 +- 宠物定位 +- 特殊行业(农业灌溉, 稀有物种监控等) + +![](../../media/solutions/tracker/tracker_application.png) + +## 应用框架 + +### 功能简介 + +智能定位器方案中的软件功能介绍如下图所示, 方案根据定位器实际业务进行功能拆分, 模块化开发实现。 + +![solution-tracker-101](../../media/solutions/tracker/solution-tracker-101.png) + +- 传输协议解析 + + 阿里Iot平台连接与数据交互 + + ThingsBoard平台连接与数据交互 + + GT06协议 + + JT/T808协议 +- 网络管理 + + MQTT协议(阿里Iot/ThingsBoard/其他平台) + + TCP/UDP协议(GT06/JTT808协议) + + APN设置(用于注网拨号) + + LTE NET(4G注网拨号) +- 外设管理 + + GNSS定位数据的读取, 使能, AGPS注入等 + + G-Sensor传感器数据读取 + + Charge IC充电管理, 获取设备充电状态 + + Battery电池管理, 读取电池电压, 换算电量 + + LED指示灯 +- 数据存储 + + 系统配置参数存储 + + 定位数据补传存储 + + AGPS下载存储 + + 日志信息存储 +- 设备升级 + + OTA升级 +- 业务功能管理 + + 网络与IoT 平台的连接与重连 + + 设备数据采集与上报 + + 报警检测与上报 + + IoT 平台下行指令处理 + + 设备低功耗休眠 + +### 数据交互流程 + +模组、IoT 平台之间数据交互流程如下图介绍: + +![solution-tracker-102](../../media/solutions/tracker/solution-tracker-102.png) + +流程描述: + +1. 手机APP发送指令到IoT 平台, 服务端通过TCP/UDP/MQTT协议下发指令数据到模组端接收, 模组进行解析处理; +2. 模组通过TCP/UDP/MQTT协议上报数据到IoT 平台, IoT 平台进行处理, 同步显示到手机端 + +### 设计思想与模式 + +- 本系统采用监听者模式设计,通过回调函数进行消息的传递事件的监听 +- 软件根据定位器业务需求对其功能进行拆分, 主要分模块来实现, 每个部分独立开发实现, 相互之间减少依赖, 可独立调试运行, 达到解耦合的效果; +- 功能之间的事件交互都通过回调函数来完成, 所有的业务功能处理全部在`Tracker`类中进行处理, 如下行的指令处理, 报警检测, 数据采集与上报, 设备的控制等。 + +![solution-tracker-104](../../media/solutions/tracker/solution-tracker-104.png) + +1. 所有的功能模块通过`Tracker.add_module`注册到`Tracker`类中进行控制 +2. Server模块(IoT 平台交互模块)通过回调将服务型下行的数据传递到`Tracker.server_callback`中进行处理 +3. NetManage模块通过回调将网络断开连接事件传递到`Tracker.net_callback`中进行处理 + +### 软件架构图 + +软件系统框架介绍描述如下: + +- 展现层, 对接不同的 Iot 平台, 进行可视化展示 +- 传输层, 支持使用不同的协议进行交互 +- 业务功层, 主要用于采集设备数据, 控制设备模块, 接收处理IoT 平台下行指令, 数据的整合上报 +- 设备层, 主要为设备数据的信息的采集与设备功能设置, 主要是定位数据的获取与解析, 传感器数据的读取, 电池管理, 历史数据存储, 外设控制, 设备的基础数据, 如设备的版本信息, IMEI号, APN设置, 网络拨号, 设备低功耗等 + +![solution-tracker-107](../../media/solutions/tracker/solution-tracker-107.png) + +### 业务流程 + +![solution-tracker-105](../../media/solutions/tracker/solution-tracker-105.png) + +业务流程说明: + +1. 设备上电启动 +2. 网络(APN)配置与(驻网拨号)连接,IoT 平台配置与连接,失败重试 +3. 设备模块启动检测与数据采集 + - GNSS定位模块启动,等待定位数据 + - G-Sensor三轴加速传感器模块启动与校准检测 + - LED指示灯(网络状态/定位状态/充电状态等)启动 + - 电池电量采集与充电状态检测 + - 报警检测(超速检测/震动检测/围栏检测/低电检测等) +4. IoT 平台连接成功后,检测是否有历史数据需要上报进行上报 +5. IoT 平台连接成功,上报当前设备信息(定位/告警) +6. IoT 平台连接失败则存储当前设备信息(定位/告警) +7. 设备无任务,进入低功耗模式,定时唤醒设备进行设备信息检测与上报 +8. IoT 平台连接成功后,等待IoT 平台下发指令信息 +9. 指令信息的解析 + - 设备控制指令,如修改设备业务参数,控制设备关机重启等 + - 下发OTA升级指令,进行OTA升级 + - 设备信息查询指令,应答设备信息 + +### 系统初始化流程 + +![solution-tracker-106](../../media/solutions/tracker/solution-tracker-106.png) + +1. 基础功能模块初始化, 低功耗管理, 配置参数, 电池, 历史文件, 定位, 传感器。 +2. 初始化IoT 平台客户端模块, 阿里Iot或ThingsBoard平台或私有服务平台(GT06、JT/T808等) +3. 初始化核心业务模块(Tracker), 将各个功能模块通过add_module接口添加到Tracker对象中, 再将Tracker.server_callback注册到Server对象中, 用于接收服务端下行的消息指令。 + +## 应用开发 + +### 方案资源获取 + +定位器解决方案资源下载地址: https://github.com/QuecPython/solution-tracker + +> 该方案项目有一个`modules`子仓库, 在下载时需要注意同步下载 +> +> 子仓库同步下载指令`git clone --recursive https://github.com/QuecPython/solution-tracker.git` + +资源包目录展示: + +![solution-tracker-001](../../media/solutions/tracker/solution-tracker-001.png) + +- code 文件夹: + +该目录下包含软件方案代码 + +![solution-tracker-002](../../media/solutions/tracker/solution-tracker-002.png) + +- docs 文件夹: + +该目录下包含用户指导手册与功能接口说明的项目文档 + +![solution-tracker-003](../../media/solutions/tracker/solution-tracker-003.png) + +- object_model_demo 文件夹: + +该目录下提供了一个阿里Iot平台的物模型文件, 可以直接导入阿里Iot平台, 方便调试 + +### 方案说明 + +此方案为定位器公版方案, 不包含全部业务功能, 方案提供定位器业务核心组件的功能实现以及与服务端完成数据交互, 事件转发等功能, 使用者应基于此框架继续开发业务功能, 当前软件框架完成功能如下: + +- MQTT协议通讯(当前方案支持阿里Iot平台/ThingsBoard平台) +- 配置文件读写 +- OTA远程升级 +- LED指示灯 +- 设备网络管理 +- 设备信息管理 +- 电池电量与充电管理 +- 备份信息存储 +- GNSS定位/基站定位/Wifi定位 +- 低功耗管理 +- 日志存储记录 + +### 环境搭建 + +#### USB驱动安装 + +请根据调试模组平台进行驱动下载安装, [点击此处下载](https://python.quectel.com/download) + +![solution-tracker-004](../../media/solutions/tracker/solution-tracker-004.png) + +#### 开发调试工具 + +推荐使用QPYcom进行开发调试, 此文档中的流程介绍均使用该工具进行, 且成功安装USB驱动 + +工具下载链接: [点击此处下载](https://python.quectel.com/download) + +![solution-tracker-005](../../media/solutions/tracker/solution-tracker-005.png) + +工具使用说明: [点击此处访问](https://python.quectel.com/doc/Application_guide/en/dev-tools/QPYcom/qpycom-gui.html) + +#### 代码配置参数修改 + +目前方案代码使用的配置参数未进行配置, 请按照下面说明进行更改。 + +找到code中的以`settings_`开头的配置文件进行配置, 根据实际参数进行调整, 如下图: + +- `settings_server.py` 用于配置连接的 IoT 平台连接信息 + +```python +class AliIotConfig: + + product_key = "" + product_secret = "" + device_name = "" + device_secret = "" + server = "iot-as-mqtt.cn-shanghai.aliyuncs.com" + qos = 1 + + +class ThingsBoardConfig: + + host = "" + port = 1883 + username = "" + qos = 0 + client_id = "" +``` + +- `settings_loc.py` 用于配置定位模块的配置信息(外挂GNSS串口, 基站/Wifi定位的认证信息) + +```python +gps_cfg = { + "UARTn": UART.UART1, + "buadrate": 115200, + "databits": 8, + "parity": 0, + "stopbits": 1, + "flowctl": 0, + "gps_mode": _gps_mode.external, + "nmea": 0b010111, + "PowerPin": None, + "StandbyPin": None, + "BackupPin": None, +} + +cell_cfg = { + "serverAddr": "www.queclocator.com", + "port": 80, + "token": "xxxxxxxxxx", + "timeout": 3, + "profileIdx": profile_idx, +} + +wifi_cfg = { + "token": "xxxxxxxxxx" +} +``` + +- `settings_user.py` 用于配置用户业务功能的相关配置参数(如报警开关, 低电阈值等) + +```python +class _server: + none = 0x0 + AliIot = 0x1 + ThingsBoard = 0x2 + +class _drive_behavior_code: + none = 0x0 + sharply_start = 0x1 + sharply_stop = 0x2 + sharply_turn_left = 0x3 + sharply_turn_right = 0x4 + +class _ota_upgrade_module: + none = 0x0 + sys = 0x1 + app = 0x2 + +debug = 1 +log_level = "DEBUG" +checknet_timeout = 60 +server = _server.AliIot +phone_num = "" +low_power_alert_threshold = 20 +low_power_shutdown_threshold = 5 +over_speed_threshold = 50 +sw_ota = 1 +sw_ota_auto_upgrade = 1 +sw_voice_listen = 0 +sw_voice_record = 0 +sw_fault_alert = 1 +sw_low_power_alert = 1 +sw_over_speed_alert = 1 +sw_sim_abnormal_alert = 1 +sw_disassemble_alert = 1 +sw_drive_behavior_alert = 1 +drive_behavior_code = _drive_behavior_code.none +loc_method = _loc_method.all +loc_gps_read_timeout = 300 +work_mode = _work_mode.cycle +work_mode_timeline = 3600 +work_cycle_period = 30 +user_ota_action = -1 +ota_status = { + "sys_current_version": "", + "sys_target_version": "--", + "app_current_version": "", + "app_target_version": "--", + "upgrade_module": _ota_upgrade_module.none, + "upgrade_status": _ota_upgrade_status.none, +} +``` + +#### 烧录固件 + +根据当前调试模组型号下载对应QuecPython固件, 并使用Qpycom工具进行烧录 + +固件下载地址: [点击此处访问](https://python.quectel.com/download) + +![solution-tracker-006](../../media/solutions/tracker/solution-tracker-006.png) + +使用QPYcom工具下载固件 + +1. 选择固件 + +![solution-tracker-007](../../media/solutions/tracker/solution-tracker-007.png) + +2. 下载固件 + +![solution-tracker-008](../../media/solutions/tracker/solution-tracker-008.png) + +3. 等待固件烧录 + +![solution-tracker-009](../../media/solutions/tracker/solution-tracker-009.png) + +4. 烧录成功 + +![solution-tracker-010](../../media/solutions/tracker/solution-tracker-010.png) + +5. 连接交互口 + +![solution-tracker-011](../../media/solutions/tracker/solution-tracker-011.png) + +6. 查看烧录信息 + +![solution-tracker-012](../../media/solutions/tracker/solution-tracker-012.png) + +#### 烧录代码 + +- 建议在下载代码前将文件中的`main.py`重命名为`_main.py`, 因为`main.py`会上电自运行, 不方便调试, 我们测试阶段可以手动执行`_main.py`来运行, 方便调试问题 + +- 通过USB下载代码需要设备预留USB接口或测试点, 或使用开发板进行调试, 并提前安装好驱动 + +1. 选择`Quectel USB NMEA PORT`, 该串口为交互口, 程序LOG也会通过该串口输出 + +![solution-tracker-013](../../media/solutions/tracker/solution-tracker-013.png) + +2. 将业务功能代码批量烧录设备, 点击下载脚本后等待下载完成, 下载完成后在文件中查看 + +![solution-tracker-014](../../media/solutions/tracker/solution-tracker-014.png) + +3. 烧录成功后建议重启设备, 然后运行功能(如烧录了`main.py`, 则重启设备后, 功能会自动运行, 如已将`main.py`重命名后烧录, 则需手动运行`_main.py`启动功能) + +![solution-tracker-015](../../media/solutions/tracker/solution-tracker-015.png) + +4. 运行结果展示 + +![solution-tracker-016](../../media/solutions/tracker/solution-tracker-016.png) diff --git a/docs/Application_guide/zh/README.md b/docs/Application_guide/zh/README.md index e8cf850e41ab62db522024ea42ede3e44da5061a..e3d032de821258a49c75a8c2343116bffc31c39a 100644 --- a/docs/Application_guide/zh/README.md +++ b/docs/Application_guide/zh/README.md @@ -87,6 +87,7 @@ QuecPython 应用指导,是对QuecPython常用功能模块如何使用的指 - [智慧农业中控面板](solutions/Agriculture-Control-Panel/README.md) - [可穿戴解决方案](solutions/Wear/readme.md) - [电表](solutions/electricity-meter/README.md) +- [智能定位器](solutions/tracker/README.md)
@@ -95,4 +96,4 @@ QuecPython 应用指导,是对QuecPython常用功能模块如何使用的指 - [Helios SDK开发指南__入门](helios-sdk/quick-start.md) - [Helios SDK开发指南__进阶](helios-sdk/junior.md) - [Helios SDK开发指南__高级](helios-sdk/advanced.md) -
\ No newline at end of file + diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-001.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-001.png new file mode 100644 index 0000000000000000000000000000000000000000..66ac56ab80bb5863724383b36282160fde9e1cd3 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-001.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-002.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-002.png new file mode 100644 index 0000000000000000000000000000000000000000..460123a5bb105feeb55d026fbcebea090a96c322 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-002.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-003.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-003.png new file mode 100644 index 0000000000000000000000000000000000000000..045d9bf13c83cb6ca6978629e8480dc32e442afd Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-003.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-004.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-004.png new file mode 100644 index 0000000000000000000000000000000000000000..d52a88c8d982f64cca9a2384ee005c97d5d33a0f Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-004.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-005.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-005.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1dbb05a436693e9d8e57d1fa50f6e4ccdd3a84 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-005.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-006.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-006.png new file mode 100644 index 0000000000000000000000000000000000000000..b8dd5fbc2c49ea0737730d7bd8d859bd5cf414eb Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-006.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-007.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-007.png new file mode 100644 index 0000000000000000000000000000000000000000..1952d0a4efaac91f26078ea13a3723ba00fac7f0 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-007.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-008.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-008.png new file mode 100644 index 0000000000000000000000000000000000000000..51055475f8566e9650f35113f1a7f48c6b17325c Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-008.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-009.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-009.png new file mode 100644 index 0000000000000000000000000000000000000000..52e3a88264a241cbde3737a5bcbdf69913960b9f Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-009.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-010.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-010.png new file mode 100644 index 0000000000000000000000000000000000000000..dc51f07fc6acb6b1a1187fb05c3bbf2e12c7e7fd Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-010.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-011.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-011.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4b964c030468a76451983b53980e965aa6c0f8 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-011.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-012.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-012.png new file mode 100644 index 0000000000000000000000000000000000000000..0052db0c64c24408dd15f87ca799cd3044d3088f Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-012.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-013.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-013.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7f3541838b6f0d6421929ded9e9c0eda1c476b Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-013.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-014.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-014.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0845ba7e7121c9da46af19fa98df08cce5a77f Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-014.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-015.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-015.png new file mode 100644 index 0000000000000000000000000000000000000000..b1b07d3582fbfc117e30ae7d4f10cf20d741836c Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-015.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-016.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-016.png new file mode 100644 index 0000000000000000000000000000000000000000..7e18beb12610194b5849a458f4214eea51f77cdc Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-016.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-101.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-101.png new file mode 100644 index 0000000000000000000000000000000000000000..3e8afed941e34d4e0b2ea6dde471d743071f38b4 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-101.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-102.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-102.png new file mode 100644 index 0000000000000000000000000000000000000000..4c29c475e34d682bf45c4e2172b01df3a2767754 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-102.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-104.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-104.png new file mode 100644 index 0000000000000000000000000000000000000000..f6aab3b0fe131c993f432972a44f44aaed55c335 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-104.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-105.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-105.png new file mode 100644 index 0000000000000000000000000000000000000000..c82d4f9d4d6d1a4adc0c2944fc5b7611e6cc7298 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-105.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-106.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-106.png new file mode 100644 index 0000000000000000000000000000000000000000..a024c880219f2823d58abbfae0096fd975968d57 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-106.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-107.png b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-107.png new file mode 100644 index 0000000000000000000000000000000000000000..ef77b826882581a656fed39c784af0ec4ac8e6d0 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/solution-tracker-107.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/tracker_application.png b/docs/Application_guide/zh/media/solutions/tracker/tracker_application.png new file mode 100644 index 0000000000000000000000000000000000000000..8309e6de83cd9d132b44ba65f1eda99d2c635916 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/tracker_application.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/tracker_funcion.png b/docs/Application_guide/zh/media/solutions/tracker/tracker_funcion.png new file mode 100644 index 0000000000000000000000000000000000000000..a7cbc61fa92e61d8e0b1262083fdca3cb42c3836 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/tracker_funcion.png differ diff --git a/docs/Application_guide/zh/media/solutions/tracker/tracker_process.png b/docs/Application_guide/zh/media/solutions/tracker/tracker_process.png new file mode 100644 index 0000000000000000000000000000000000000000..bf933ff912776939eb2ed05cbf76809fbd4ae8bc Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/tracker/tracker_process.png differ diff --git a/docs/Application_guide/zh/sidebar.yaml b/docs/Application_guide/zh/sidebar.yaml index d6b41ed3989bf8cb77711534db730732bbfc70bc..9a94e2599f0c728c801fdcacb1d71946b44a2da9 100644 --- a/docs/Application_guide/zh/sidebar.yaml +++ b/docs/Application_guide/zh/sidebar.yaml @@ -273,6 +273,8 @@ items: file: solutions/Wear/readme.md - label: 电表 file: solutions/electricity-meter/README.md + - label: 智能定位器 + file: solutions/tracker/README.md - label: HeliosSDK file: helios-sdk/README.md items: diff --git a/docs/Application_guide/zh/solutions/README.md b/docs/Application_guide/zh/solutions/README.md index bcee44b34169c86b245d752238a1f6fe4aa3fb8c..6316346e55a20d58e869a1353056a44489427aab 100644 --- a/docs/Application_guide/zh/solutions/README.md +++ b/docs/Application_guide/zh/solutions/README.md @@ -6,3 +6,4 @@ - [智慧农业中控面板](./Agriculture-Control-Panel/README.md) - [可穿戴解决方案](./Wear/readme.md) - [电表](./electricity-meter/README.md) +- [智能定位器](./tracker/README.md) diff --git a/docs/Application_guide/zh/solutions/tracker/README.md b/docs/Application_guide/zh/solutions/tracker/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bd440142567db2d0fd327988aa082caa53854374 --- /dev/null +++ b/docs/Application_guide/zh/solutions/tracker/README.md @@ -0,0 +1,379 @@ +# 智能定位器解决方案 + +## 方案介绍 + +本文档主要描述移远通信QuecPython定位器的设计框架, 包含软硬件系统框架、关键组件功能描述、系统初始化流程和业务流程的介绍以及功能示例, 方便用户快速了解QuecPython定位器的整体架构与功能。 + +### 产品概述 + +- Tracker智能定位器。 +- 终端设备功能涵盖绝大部分定位器应用场景 +- 可视化运营平台+手机APP, 设备管理和数据查看更方便 + +![](../../media/solutions/tracker/tracker_process.png) + +### 产品功能 +- 多重定位、安全围栏、危险报警、紧急求救、语音监听、录音、轨迹回放、远程控制等 +- 智能定位 + - 系统利用4G通信/多重定位/分布式服务等技术, 为智能定位器行业提供从端到服务的一站式解决方案 +- 全平台支持 + - 设备运营平台和手机APP功能齐全, 终端设备厂商无需自行搭建服务平台即可快速实现对设备和终端用户的管理 +- 可靠稳定 + - 终端设备定位精度高、危险感知灵敏度高、功耗低、运行稳定, 终端设备厂商可套壳即用, 极大缩短硬件开发周期 + +![](../../media/solutions/tracker/tracker_funcion.png) + +### 产品特点 + +- 位置信息、危险警情智能感知、识别和上报 +- 支持阿里Iot平台、ThingsBoard、私有服务等多种Iot平台对接 +- QuecPython二次开发, 模块化、定制化、缩短开发周期 +- 可视化运营平台、手机APP控制终端 + +### 应用行业 + +- 车载定位 +- 物流货运 +- 人员定位 +- 电子学生证 +- 宠物定位 +- 特殊行业(农业灌溉, 稀有物种监控等) + +![](../../media/solutions/tracker/tracker_application.png) + +## 应用框架 + +### 功能简介 + +智能定位器方案中的软件功能介绍如下图所示, 方案根据定位器实际业务进行功能拆分, 模块化开发实现。 + +![solution-tracker-101](../../media/solutions/tracker/solution-tracker-101.png) + +- 传输协议解析 + + 阿里Iot平台连接与数据交互 + + ThingsBoard平台连接与数据交互 + + GT06协议 + + JT/T808协议 +- 网络管理 + + MQTT协议(阿里Iot/ThingsBoard/其他平台) + + TCP/UDP协议(GT06/JTT808协议) + + APN设置(用于注网拨号) + + LTE NET(4G注网拨号) +- 外设管理 + + GNSS定位数据的读取, 使能, AGPS注入等 + + G-Sensor传感器数据读取 + + Charge IC充电管理, 获取设备充电状态 + + Battery电池管理, 读取电池电压, 换算电量 + + LED指示灯 +- 数据存储 + + 系统配置参数存储 + + 定位数据补传存储 + + AGPS下载存储 + + 日志信息存储 +- 设备升级 + + OTA升级 +- 业务功能管理 + + 网络与IoT 平台的连接与重连 + + 设备数据采集与上报 + + 报警检测与上报 + + IoT 平台下行指令处理 + + 设备低功耗休眠 + +### 数据交互流程 + +模组、IoT 平台之间数据交互流程如下图介绍: + +![solution-tracker-102](../../media/solutions/tracker/solution-tracker-102.png) + +流程描述: + +1. 手机APP发送指令到IoT 平台, 服务端通过TCP/UDP/MQTT协议下发指令数据到模组端接收, 模组进行解析处理; +2. 模组通过TCP/UDP/MQTT协议上报数据到IoT 平台, IoT 平台进行处理, 同步显示到手机端 + +### 设计思想与模式 + +- 本系统采用监听者模式设计, 通过回调函数进行消息的传递事件的监听 +- 软件根据定位器业务需求对其功能进行拆分, 主要分模块来实现, 每个部分独立开发实现, 相互之间减少依赖, 可独立调试运行, 达到解耦合的效果; +- 功能之间的事件交互都通过回调函数来完成, 所有的业务功能处理全部在`Tracker`类中进行处理, 如下行的指令处理, 报警检测, 数据采集与上报, 设备的控制等。 + +![solution-tracker-104](../../media/solutions/tracker/solution-tracker-104.png) + +1. 所有的功能模块通过`Tracker.add_module`注册到`Tracker`类中进行控制 +2. Server模块(IoT 平台交互模块)通过回调将服务型下行的数据传递到`Tracker.server_callback`中进行处理 +3. NetManage模块通过回调将网络断开连接事件传递到`Tracker.net_callback`中进行处理 + +### 软件架构图 + +软件系统框架介绍描述如下: + +- 展现层, 对接不同的 Iot 平台, 进行可视化展示 +- 传输层, 支持使用不同的协议进行交互 +- 业务功层, 主要用于采集设备数据, 控制设备模块, 接收处理IoT 平台下行指令, 数据的整合上报 +- 设备层, 主要为设备数据的信息的采集与设备功能设置, 主要是定位数据的获取与解析, 传感器数据的读取, 电池管理, 历史数据存储, 外设控制, 设备的基础数据, 如设备的版本信息, IMEI号, APN设置, 网络拨号, 设备低功耗等 + +![solution-tracker-107](../../media/solutions/tracker/solution-tracker-107.png) + +### 业务流程 + +![solution-tracker-105](../../media/solutions/tracker/solution-tracker-105.png) + +业务流程说明: + +1. 设备上电启动 +2. 网络(APN)配置与(驻网拨号)连接, IoT 平台配置与连接, 失败重试 +3. 设备模块启动检测与数据采集 + - GNSS定位模块启动, 等待定位数据 + - G-Sensor三轴加速传感器模块启动与校准检测 + - LED指示灯(网络状态/定位状态/充电状态等)启动 + - 电池电量采集与充电状态检测 + - 报警检测(超速检测/震动检测/围栏检测/低电检测等) +4. IoT 平台连接成功后, 检测是否有历史数据需要上报进行上报 +5. IoT 平台连接成功, 上报当前设备信息(定位/告警) +6. IoT 平台连接失败则存储当前设备信息(定位/告警) +7. 设备无任务, 进入低功耗模式, 定时唤醒设备进行设备信息检测与上报 +8. IoT 平台连接成功后, 等待IoT 平台下发指令信息 +9. 指令信息的解析 + - 设备控制指令, 如修改设备业务参数, 控制设备关机重启等 + - 下发OTA升级指令, 进行OTA升级 + - 设备信息查询指令, 应答设备信息 + +### 系统初始化流程 + +![solution-tracker-106](../../media/solutions/tracker/solution-tracker-106.png) + +1. 基础功能模块初始化, 低功耗管理, 配置参数, 电池, 历史文件, 定位, 传感器。 +2. 初始化IoT 平台客户端模块, 阿里Iot或ThingsBoard平台或私有服务平台(GT06、JT/T808等) +3. 初始化核心业务模块(Tracker), 将各个功能模块通过add_module接口添加到Tracker对象中, 再将Tracker.server_callback注册到Server对象中, 用于接收服务端下行的消息指令。 + +## 应用开发 + +### 方案资源获取 + +定位器解决方案资源下载地址: https://github.com/QuecPython/solution-tracker + +> 该方案项目有一个`modules`子仓库, 在下载时需要注意同步下载 +> +> 子仓库同步下载指令`git clone --recursive https://github.com/QuecPython/solution-tracker.git` + +资源包目录展示: + +![solution-tracker-001](../../media/solutions/tracker/solution-tracker-001.png) + +- code 文件夹: + +该目录下包含软件方案代码 + +![solution-tracker-002](../../media/solutions/tracker/solution-tracker-002.png) + +- docs 文件夹: + +该目录下包含用户指导手册与功能接口说明的项目文档 + +![solution-tracker-003](../../media/solutions/tracker/solution-tracker-003.png) + +- object_model_demo 文件夹: + +该目录下提供了一个阿里Iot平台的物模型文件, 可以直接导入阿里Iot平台, 方便调试 + +### 方案说明 + +此方案为定位器公版方案, 不包含全部业务功能, 方案提供定位器业务核心组件的功能实现以及与服务端完成数据交互, 事件转发等功能, 使用者应基于此框架继续开发业务功能, 当前软件框架完成功能如下: + +- MQTT协议通讯(当前方案支持阿里Iot平台/ThingsBoard平台) +- 配置文件读写 +- OTA远程升级 +- LED指示灯 +- 设备网络管理 +- 设备信息管理 +- 电池电量与充电管理 +- 备份信息存储 +- GNSS定位/基站定位/Wifi定位 +- 低功耗管理 +- 日志存储记录 + +### 环境搭建 + +#### USB驱动安装 + +请根据调试模组平台进行驱动下载安装, [点击此处下载](https://python.quectel.com/download) + +![solution-tracker-004](../../media/solutions/tracker/solution-tracker-004.png) + +#### 开发调试工具 + +推荐使用QPYcom进行开发调试, 此文档中的流程介绍均使用该工具进行, 且成功安装USB驱动 + +工具下载链接: [点击此处下载](https://python.quectel.com/download) + +![solution-tracker-005](../../media/solutions/tracker/solution-tracker-005.png) + +工具使用说明: [点击此处访问](https://python.quectel.com/doc/Application_guide/en/dev-tools/QPYcom/qpycom-gui.html) + +#### 代码配置参数修改 + +目前方案代码使用的配置参数未进行配置, 请按照下面说明进行更改。 + +找到code中的以`settings_`开头的配置文件进行配置, 根据实际参数进行调整, 如下图: + +- `settings_server.py` 用于配置连接的 IoT 平台连接信息 + +```python +class AliIotConfig: + + product_key = "" + product_secret = "" + device_name = "" + device_secret = "" + server = "iot-as-mqtt.cn-shanghai.aliyuncs.com" + qos = 1 + + +class ThingsBoardConfig: + + host = "" + port = 1883 + username = "" + qos = 0 + client_id = "" +``` + +- `settings_loc.py` 用于配置定位模块的配置信息(外挂GNSS串口, 基站/Wifi定位的认证信息) + +```python +gps_cfg = { + "UARTn": UART.UART1, + "buadrate": 115200, + "databits": 8, + "parity": 0, + "stopbits": 1, + "flowctl": 0, + "gps_mode": _gps_mode.external, + "nmea": 0b010111, + "PowerPin": None, + "StandbyPin": None, + "BackupPin": None, +} + +cell_cfg = { + "serverAddr": "www.queclocator.com", + "port": 80, + "token": "xxxxxxxxxx", + "timeout": 3, + "profileIdx": profile_idx, +} + +wifi_cfg = { + "token": "xxxxxxxxxx" +} +``` + +- `settings_user.py` 用于配置用户业务功能的相关配置参数(如报警开关, 低电阈值等) + +```python +class _server: + none = 0x0 + AliIot = 0x1 + ThingsBoard = 0x2 + +class _drive_behavior_code: + none = 0x0 + sharply_start = 0x1 + sharply_stop = 0x2 + sharply_turn_left = 0x3 + sharply_turn_right = 0x4 + +class _ota_upgrade_module: + none = 0x0 + sys = 0x1 + app = 0x2 + +debug = 1 +log_level = "DEBUG" +checknet_timeout = 60 +server = _server.AliIot +phone_num = "" +low_power_alert_threshold = 20 +low_power_shutdown_threshold = 5 +over_speed_threshold = 50 +sw_ota = 1 +sw_ota_auto_upgrade = 1 +sw_voice_listen = 0 +sw_voice_record = 0 +sw_fault_alert = 1 +sw_low_power_alert = 1 +sw_over_speed_alert = 1 +sw_sim_abnormal_alert = 1 +sw_disassemble_alert = 1 +sw_drive_behavior_alert = 1 +drive_behavior_code = _drive_behavior_code.none +loc_method = _loc_method.all +loc_gps_read_timeout = 300 +work_mode = _work_mode.cycle +work_mode_timeline = 3600 +work_cycle_period = 30 +user_ota_action = -1 +ota_status = { + "sys_current_version": "", + "sys_target_version": "--", + "app_current_version": "", + "app_target_version": "--", + "upgrade_module": _ota_upgrade_module.none, + "upgrade_status": _ota_upgrade_status.none, +} +``` + +#### 烧录固件 + +根据当前调试模组型号下载对应QuecPython固件, 并使用Qpycom工具进行烧录 + +固件下载地址: [点击此处访问](https://python.quectel.com/download) + +![solution-tracker-006](../../media/solutions/tracker/solution-tracker-006.png) + +使用QPYcom工具下载固件 + +1. 选择固件 + +![solution-tracker-007](../../media/solutions/tracker/solution-tracker-007.png) + +2. 下载固件 + +![solution-tracker-008](../../media/solutions/tracker/solution-tracker-008.png) + +3. 等待固件烧录 + +![solution-tracker-009](../../media/solutions/tracker/solution-tracker-009.png) + +4. 烧录成功 + +![solution-tracker-010](../../media/solutions/tracker/solution-tracker-010.png) + +5. 连接交互口 + +![solution-tracker-011](../../media/solutions/tracker/solution-tracker-011.png) + +6. 查看烧录信息 + +![solution-tracker-012](../../media/solutions/tracker/solution-tracker-012.png) + +#### 烧录代码 + +- 建议在下载代码前将文件中的`main.py`重命名为`_main.py`, 因为`main.py`会上电自运行, 不方便调试, 我们测试阶段可以手动执行`_main.py`来运行, 方便调试问题 + +- 通过USB下载代码需要设备预留USB接口或测试点, 或使用开发板进行调试, 并提前安装好驱动 + +1. 选择`Quectel USB NMEA PORT`, 该串口为交互口, 程序LOG也会通过该串口输出 + +![solution-tracker-013](../../media/solutions/tracker/solution-tracker-013.png) + +2. 将业务功能代码批量烧录设备, 点击下载脚本后等待下载完成, 下载完成后在文件中查看 + +![solution-tracker-014](../../media/solutions/tracker/solution-tracker-014.png) + +3. 烧录成功后建议重启设备, 然后运行功能(如烧录了`main.py`, 则重启设备后, 功能会自动运行, 如已将`main.py`重命名后烧录, 则需手动运行`_main.py`启动功能) + +![solution-tracker-015](../../media/solutions/tracker/solution-tracker-015.png) + +4. 运行结果展示 + +![solution-tracker-016](../../media/solutions/tracker/solution-tracker-016.png)