本技能基于安信华瑞 AX100 系列气体报警控制器 + 移远通信(Quectel)QuecPython 模组,
提供一套完整的「读取传感器数据 → 组包 → HTTP 上报」程序模板。
使用场景:
assets/template/ — 完整可运行的 QuecPython 代码模板(5个文件)
references/code_guide.md — 各文件职责、所有配置项含义、JSON 格式说明、状态码表
在开始写代码前,向用户确认以下关键信息(未提供的项不要假设):
URL_OTA 设为空字符串
读取 references/code_guide.md,了解:
config.py 配置项的含义和默认值
build_payload() 组装的 JSON 结构
以 assets/template/ 中的 5 个文件为基础进行定制:
直接输出修改后的 config.py,其余4个文件照搬模板。
需要修改的典型字段:
URL_CLIENT = "https://客户平台地址/接口路径" # 必改
URL_OTA = "" # 不需要OTA则留空
REPORT_CYCLE_MIN = 5 # 按客户约定的频率(分钟)
MANUFACTURER = "xxx公司"
TERMINAL_TYPE = "型号"
FW_VERSION = "版本号"
修改 main.py 中的 build_payload() 函数,按客户平台协议重新组装字典。
保持其他函数(check_network, http_post, check_ota, init, loop)不变。
只修改 config.py 中的 REG_* 常量,sensor.py 中所有地址均从 config 读取,无需改动。
向用户输出需要修改的文件(通常只有 config.py,其余不变的文件注明"使用模板原文"即可)。
同时提示用户:
.py 文件上传到模组 /usr/ 目录(使用 QPYcom 工具)
main.py 已在模组启动脚本中设为自动运行
用户:上报地址改成 https://api.xxx.com/gas/upload,每5分钟上报一次
→ 只修改 config.py:
URL_CLIENT = "https://api.xxx.com/gas/upload"
REPORT_CYCLE_MIN = 5
用户:客户平台要的格式是 {"imei":"...","sensors":[{"id":1,"val":0.0,"status":2}]}
→ 修改 main.py 中的 build_payload() 函数,按新格式重组字典。
→ config.py 中 URL 和周期照常配置。
用户:这个控制器探头状态起始地址是 0x0200,浓度起始地址是 0x0201
→ 只修改 config.py:
REG_SENSOR_STAT_BASE = 0x0200
REG_SENSOR_DENS_BASE = 0x0201
.py 文件 → 模组 /usr/ 目录
main.py 设为 auto run
print 输出,定位问题
config.py 中 WDT_TIMEOUT_SEC 建议设为 REPORT_CYCLE_MIN × 60 × 3,留足余量
URL_OTA 若为空字符串,需在 check_ota() 调用前加空值判断(已在模板中处理)
LED_NET_PIN / LED_BUS_PIN 需对照硬件图纸确认
MODBUS_SLAVE 默认为 1,若控制器地址不同需修改
共 1 个版本