【标题】【硬件交互赛道】童语守护——基于ESP32-S3与字节生态低龄儿童语音定位守护硬件挂件
【标签】
硬件交互 社会公益
【正文】
1. 创意名称 + 创意介绍
创意名称:童语守护——基于ESP32-S3与字节生态低龄儿童语音定位守护硬件挂件
-
想解决什么问题:3-8岁低龄儿童户外走失后语言表达能力薄弱,无法精准描述地理位置,传统定位设备操作复杂、适配儿童性差,家长寻人耗时久、儿童安全风险极高。
-
为什么会想到做这个:结合商超、景区、公园高频儿童走失社会现象,结合本次Trae大赛IDE嵌入式开发能力考核要求,依托字节火山IoT生态,打造零基础儿童可操作的轻量化守护硬件,践行公益守护理念。
-
大概是什么产品:一款基于ESP32-S3主控开发、依托Trae IDE全流程开发调试、支持离线语音唤醒+GPS/北斗双模定位+WiFi物联网上报、联动阿里云IoT平台+家长Web端高德地图实时追踪的可穿戴儿童轻量化守护硬件挂件。
2. 目标用户及痛点
-
面向哪些用户:核心用户为3-8岁学龄前低龄儿童、外出陪护儿童的家长;延伸用户为景区、商超物业安保寻人工作人员。
-
在什么场景下使用:景区游玩、商超逛街、公园户外活动、人流量密集公共场所、校外集体出行等脱离家长视线的户外公共场景。
-
当前痛点:
-
①市面智能手表操作复杂,低龄孩子不会打字、不会拨号,遇险无法自主求助;
-
②纯GPS定位仅提供经纬度,家长无法直观判断现场环境,平均寻回时长超47分钟;
-
③多数定位设备依赖WiFi,户外无网络环境直接失效;
-
④市面产品无法对接字节生态,数据传输不稳定、查看端口繁琐;
-
⑤传统硬件开发门槛高,代码调试、硬件联调难度大。
3. 价值与意义
-
社会公益价值:降低低龄儿童走失遇险安全隐患,简化儿童求助门槛,仅需一句口语化指令即可发送定位+语音求助,压缩儿童走失寻回时长,助力公共场所儿童安全防护,适配社区、校园公益防护推广,践行未成年人安全守护公益理念。
-
技术实践价值(大赛核心加分):全程依托Trae IDE/Trae Solo完成嵌入式开发,AI生成ESP32-S3底层代码、库文件适配、硬件联调、代码排错、编译烧录全流程;自研三层产品架构,打通ESP32硬件生态+ATGM336H GPS/北斗定位+SU-03T离线语音模块,通过MQTT协议对接阿里云IoT平台,Web端高德地图实时追踪,完整展示Trae嵌入式硬件开发能力,降低嵌入式硬件开发门槛。
4. Trae Agent 应用编号
本项目全程使用 Trae IDE (CN版) Agent 模式开发,以下为关键开发节点的 Agent 应用编号:
| 开发阶段 | Trae Agent 应用编号 | 日期 |
|---|---|---|
| GPS模块调试 | .2007025019784108:b0b873e38f3496885f7c026023ca408d_6a44d42cbe8726a632bbe4d3.6a49d697cd8302f7978069c7.6a49d696ac2c6946052f73fb:Trae CN.T(2026/7/5 11:59:19) |
2026/7/5 |
| 阿里IoT与Web页面方案规划 | .2007025019784108:c581807de8e92e1136b7922451d53b90_6a44d42cbe8726a632bbe4d3.6a4c545c7d547cfd6d4deac4.6a4c545be59af8d8ac52fa95:Trae CN.T(2026/7/7 09:20:28) |
2026/7/7 |
| 高德地图Key与阿里云RAM对接 | .2007025019784108:c6776772d5c03d12cbc221205cefdccd_6a44d42cbe8726a632bbe4d3.6a4c5e967d547cfd6d4debd2.6a4c5e95e59af8d8ac52fa98:Trae CN.T(2026/7/7 10:04:06) |
2026/7/7 |
| SU-03T语音模块UART联调 | .2007025019784108:819ac67d10110af87edaf8201266a621_6a44d42cbe8726a632bbe4d3.6a4e63330e83d3385a898661.6a4e633370ae052bccf64965:Trae CN.T(2026/7/8 22:48:19) |
2026/7/8 |
| 语音命令识别验证 | .2007025019784108:50ef6a6ae59971720795e4d7d4324e9e_6a44d42cbe8726a632bbe4d3.6a4e6a750e83d3385a898727.6a4e6a7470ae052bccf6496d:Trae CN.T(2026/7/8 23:19:17) |
2026/7/8 |
| SOS告警+OLED显示+代码优化 | .2007025019784108:53c4b58ffb48f67e9fd34ce72bb2c7d1_6a44d42cbe8726a632bbe4d3.6a4f2313e8096e93991cd05e.6a4f23139b8507a225fcc629:Trae CN.T(2026/7/9 12:26:59) |
2026/7/9 |
5. TRAE Work创意产物说明
5.1 开发理念:先规划后实施(GLM-5.2 规划 + 普通模型实施)
本项目采用 “先用 Trae GLM-5.2 大模型做顶层设计和方案规划,再用普通模型逐步实施” 的开发理念,这是 Trae IDE Agent 模式的核心优势体现:
第一阶段:GLM-5.2 顶层规划
使用 Trae IDE Agent 模式(GLM-5.2 模型),对每个功能模块进行完整的架构设计和实施方案规划,生成结构化的方案文档:
| 规划文档 | 模型 | 内容 |
|---|---|---|
| 阿里IoT与Web页面实施方案 | GLM-5.2 | MQTT对接架构、物模型定义、Node.js代理方案、高德地图集成方案、分阶段实施步骤 |
| SU-03T语音模块集成计划 | GLM-5.2 | 固件配置、烧录流程、UART帧解析架构、FreeRTOS任务设计、引脚分配方案 |
| 项目完整计划(更新版) | GLM-5.2 | 三层架构设计、硬件连接方案、代码架构、风险评估、实施顺序 |
规划文档示例(阿里IoT与Web页面实施方案架构图,由GLM-5.2生成):
ESP32-S3 ──MQTT(1883)──> 阿里云 IoT 平台(物模型)
▲
│ OpenAPI (RAM子账号 AccessKey + HMAC-SHA1签名)
阿里云函数计算 FC (Serverless Node.js)
▲
│ HTTP fetch (CORS)
又拍云 CDN (Web静态页面 + 高德地图 JS API)
第二阶段:普通模型逐步实施
在 GLM-5.2 生成的方案文档指导下,使用普通模型按步骤实施:
- 按方案文档中的代码片段修改 ESP32-S3 固件
- 按方案文档中的配置步骤对接阿里云IoT
- 按方案文档中的接口设计开发Web页面
- 遇到问题时,回到 GLM-5.2 方案文档查找解决方案
这种开发模式的优势:
- GLM-5.2 擅长系统性思考和架构设计,生成的方案文档质量高、逻辑完整
- 普通模型擅长代码生成和细节实现,执行效率高
- 方案文档作为"蓝图",确保实施过程不偏离整体架构
- 遇到问题时可以回溯方案文档,快速定位解决方案
GLM-5.2 规划输出示例(阿里IoT与Web页面实施方案,由 Trae IDE Agent GLM-5.2 模型生成):
# 阿里云 IoT MQTT 对接 + Web 高德地图 实施方案
## Context
「童语守护」儿童安全挂坠项目(ESP32-S3)需完成比赛方案中的「平台传输层」和「终端应用层」:
- ESP32-S3 已实现 GPS 定位、OLED 显示、WiFi 双网络,但数据只在本地,未上云
- 4G 模块因 1.8V/3.3V 电平不匹配暂不可用,用 WiFi 代替上传
- 比赛需要 Web 页面(高德地图实时跟踪 + 轨迹绘制)作为初赛展示作品
## 架构
ESP32-S3 ──MQTT(1883)──> 阿里云 IoT 平台(物模型)
▲
│ OpenAPI (RAM子账号 AccessKey + 官方SDK自动签名)
Node.js 代理(本地 localhost:3000)
▲
│ HTTP fetch (CORS)
Web 单文件 HTML (高德地图 JS API)
## 实施步骤
### 阶段一:阿里云平台配置(约 30 分钟)
1.1 核对接入域名
1.2 定义物模型属性(identifier 必须与 ESP32 上报 JSON 的 key 完全一致)
1.3 创建 RAM 子账号(给 Node 代理用)
1.4 申请高德地图 Web 端 Key
1.5 用网页工具验签三元组(排除三元组错误)
### 阶段二:ESP32-S3 端实现
2.1 修改 CMakeLists.txt 追加 mqtt 和 mbedtls 依赖
2.2 修改 main.c:HMAC-SHA1签名、MQTT连接、属性上报、SOS触发
2.3 编译烧录验证
### 阶段三:Node.js 代理
3.1 新建 server.js(阿里云 OpenAPI 签名调用)
3.2 验证 localhost:3000/status 返回 JSON
### 阶段四:Web 单文件 HTML
高德地图标记 + 轨迹折线 + SOS告警 + setInterval 每5秒刷新
方案文档文件路径:
D:\esp32-projects\oled-test\.trae\documents\阿里IoT与Web页面实施方案.mdD:\esp32-projects\oled-test\.trae\documents\SU-03T语音模块集成计划.mdD:\esp32-projects\oled-test\.trae\documents\项目完整计划(更新版).md
5.2 Trae Agent 开发核心流程
本次全程使用Trae IDE Agent模式,AI辅助完成嵌入式开发全流程:
- GLM-5.2 规划阶段:AI生成完整实施方案(架构设计、接口定义、分步实施计划)
- 代码生成阶段:AI生成ESP32-S3底层代码(GPS解析、WiFi连接、MQTT上报、OLED显示、UART帧解析)
- 框架适配阶段:AI适配ESP-IDF v5.5.4框架(driver/uart、mqtt_client、mbedtls等组件)
- 硬件联调阶段:AI辅助排错(UART波特率调试、GPIO上拉防噪声、引脚冲突解决)
- 云端对接阶段:AI对接阿里云IoT物模型(HMAC-SHA1签名、MQTT属性上报)
- 终端开发阶段:AI生成Web终端应用(高德地图JS API + Node.js代理 + SOS告警弹窗)
- 全程无第三方工具,纯Trae体系完成开发
6. 项目三层架构
6.1 感知硬件层
主控ESP32-S3芯片(双核Xtensa LX7, 240MHz, 512KB SRAM),搭载以下模块:
| 模块 | 型号 | 接口 | 功能 |
|---|---|---|---|
| 主控 | ESP32-S3 | - | 双核240MHz,WiFi+BLE 5.0 |
| GPS定位 | ATGM336H | UART2 (GPIO17/18, 9600baud) | GPS/北斗双模定位,户外精度2-5米 |
| 离线语音 | SU-03T | UART1 (GPIO42, 115200baud) | 离线语音识别,5条命令词,唤醒词"你好小美" |
| 显示屏 | SSD1306 | I2C (GPIO8/9) | 128x64 OLED,实时显示GPS/WiFi/语音状态 |
| 4G通信 | EC801E | UART1 (GPIO11/12, 暂未启用) | 移远通信4G模组,等待电平转换模块 |
| 调试串口 | UART0 | GPIO43/44 (115200baud) | 板载USB调试 |
硬件实物照片:
OLED显示界面照片:
6.2 平台传输层
- 开发环境:Trae IDE (CN版) + ESP-IDF v5.5.4框架
- 物联网平台:阿里云IoT(华东2上海区域)
- 通信协议:MQTT 1883端口,HMAC-SHA1签名认证
- 数据上报周期:每5秒一次(GPS经纬度+卫星数+信号强度+在线状态+SOS告警)
- 后端代理:阿里云函数计算 FC(Serverless),原生https+crypto零依赖实现阿里云OpenAPI签名调用
- 前端托管:又拍云云存储(CDN加速),公网访问地址:http://tongyushouhu-trae.test.upcdn.net/
6.3 终端应用层
Web页面(高德地图实时追踪):
- 高德地图JS API 2.0,实时显示设备位置标记
- 历史轨迹绘制(橙色折线,最多200个轨迹点)
- 设备状态面板(在线/离线、卫星数、SNR信号强度)
- SOS告警系统:全屏红色闪烁遮罩 + 居中告警弹窗 + 地图红色脉冲圆圈
- 自动刷新(每5秒fetch设备最新状态)
- 响应式布局(PC/手机自适应)
- 部署架构:又拍云静态托管 + 阿里云函数计算数据代理 + 阿里云IoT数据存储
Web页面截图:
Web页面截图
7. 硬件物料清单
| 序号 | 模块 | 型号 | 数量 | 用途 |
|---|---|---|---|---|
| 1 | 主控板 | ESP32-S3 DevKitC-1 | 1 | 主控制器 |
| 2 | GPS模块 | ATGM336H | 1 | GPS/北斗双模定位 |
| 3 | GPS天线 | 陶瓷有源天线 | 1 | GPS信号接收 |
| 4 | 语音模块 | SU-03T | 1 | 离线语音识别 |
| 5 | 麦克风 | 驻极体麦克风 | 1 | 语音采集(SU-03T配套) |
| 6 | 扬声器 | 8Ω 2W小喇叭 | 1 | 语音回应播放 |
| 7 | OLED显示屏 | SSD1306 0.96寸 | 1 | 状态显示 |
| 8 | 杜邦线 | 公对母 | 若干 | 模块连接 |
| 9 | 挂绳/外壳 | - | 1 | 佩戴(可3D打印) |
6.2 平台传输层
8. 开发调试过程
8.1 GPS模块调试
测试内容:ATGM336H GPS/北斗双模定位模块 UART通信测试
测试结果:
| 观察项 | 状态 |
|---|---|
| UART通信(TX→GPIO17, RX→GPIO18) | 正常,ESP32持续收到NMEA语句 |
| 天线状态 | $GPTXT,01,01,01,ANTENNA OK — 天线正常 |
| NMEA数据输出 | 持续收到 $GNGGA, $GNGLL, $GNGSA, $GPGSV, $GNRMC 等语句 |
| 室内卫星接收 | 0颗(室内正常现象) |
| 室内定位状态 | 无效($GNRMC,,V...),室内无信号 |
串口日志证据:
I (1599) gps-oled: GPS RAW: $GNGGA,,,,,,0,00,25.5,,,,,,*64
I (1599) gps-oled: GPS RAW: $GNGLL,,,,,,V,M*79
I (1599) gps-oled: GPS RAW: $GNGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5,1*01
I (1719) gps-oled: GPS SNR: 0, Visible: 0
I (1719) gps-oled: BDS SNR: 0, Visible: 0
I (1779) gps-oled: GPS RAW: $GPTXT,01,01,01,ANTENNA OK*35
8.2 SU-03T语音模块调试
调试历程:
- 第一次尝试:GPIO输出模式 — 配置A25/A26/A27/B2/B3为GPIO输出,万用表测试无电压变化。原因:智能公元平台固件中GPIO配置未被编译进固件。
- 第二次尝试:UART串口输出模式 — 切换到UART1_TX输出模式,固件版本v4。串口工具测试成功收到
AA 55 01 55 AA帧。 - ESP32对接问题排查:
- 波特率确认:9600收到乱码
FE,115200正确收到帧数据 - TX引脚冲突:
uart_set_pin()中TX引脚设为GPIO11干扰UART1,改为UART_PIN_NO_CHANGE - GPIO悬空噪声:GPIO42未配置内部上拉,SU-03T扬声器发声时产生电磁干扰,收到随机乱码
- 接线问题:B7→GPIO42杜邦线接触不良,重新插拔后解决
- 波特率确认:9600收到乱码
SU-03T命令词配置:
| 序号 | 命令词 | 说的词 | UART帧 | OLED显示 |
|---|---|---|---|---|
| 1 | helpme | 救命 | AA 55 01 55 AA | !! SOS !! |
| 2 | mama | 找妈妈 | AA 55 02 55 AA | V:Mama |
| 3 | papa | 找爸爸 | AA 55 03 55 AA | V:Papa |
| 4 | home | 回家 | AA 55 04 55 AA | V:Home |
| 5 | call | 打电话给妈妈 | AA 55 05 55 AA | V:Call |
唤醒词:「你好小美」
串口日志证据(语音命令识别成功):
I (209504) gps-oled: [Voice] RX: 0xAA 0x55 0x01 0x55 0xAA
W (209514) gps-oled: [Voice] 救命! SOS 已触发 (UART 帧解析)
W (209514) gps-oled: [MQTT] SOS 求助已上报
I (239754) gps-oled: [Voice] RX: 0xAA 0x55 0x02 0x55 0xAA
I (239764) gps-oled: [Voice] 找妈妈 (UART 帧解析)
I (248244) gps-oled: [Voice] RX: 0xAA 0x55 0x03 0x55 0xAA
I (248254) gps-oled: [Voice] 找爸爸 (UART 帧解析)
8.3 阿里云IoT MQTT对接
设备三元组:
- ProductKey:
a1oRwzdejAR - DeviceName:
GPS-DINGWEI - MQTT Broker:
a1oRwzdejAR.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883 - 认证方式:HMAC-SHA1签名(clientId + deviceToken拼接)
物模型属性(标识符大小写敏感):
| 标识符 | 数据类型 | 说明 |
|---|---|---|
| latitude | double | 纬度 |
| longitude | double | 经度 |
| Satellites | int32 | 卫星数 |
| GpsSnr | int32 | GPS信号强度 |
| online | bool | 在线状态 |
| helpAlarm | bool | 求助告警(SOS触发) |
串口日志证据(MQTT连接成功):
I (9744) gps-oled: [MQTT] 客户端已启动
I (9894) gps-oled: [MQTT] 已连接阿里云 IoT
串口日志证据(WiFi连接成功):
I (50055) gps-oled: [WiFi] 在线 | SSID:HUAWEI-91BJ2O-YY | IP:192.168.3.235
阿里云IoT平台设备数据截图:
8.4 Web终端应用开发
技术栈:
- 前端:原生HTML/CSS/JS + 高德地图JS API 2.0
- 后端:Node.js + 阿里云OpenAPI签名调用(零外部依赖,内置https+crypto)
- 高德Key:
6853d956d638648d83bc52fefb48410a - 前端托管:又拍云云存储(CDN加速,静态页面托管)
- 后端部署:阿里云函数计算 FC(Serverless,按需计费)
功能清单:
- 高德地图实时定位标记(红色标记点,自动居中)
- 历史轨迹绘制(橙色折线,最多200点)
- 设备状态面板(在线/离线、卫星数、SNR进度条)
- SOS告警系统(全屏红色闪烁遮罩 + 居中弹窗 + 地图红色脉冲圆圈)
- 自动刷新(每5秒)
- 响应式布局(PC/手机自适应)
公网访问地址:
- Web页面(又拍云):
http://tongyushouhu-trae.test.upcdn.net/ - 数据API(阿里云函数计算):
https://tongyu-an-proxy-zyejayxixy.cn-shanghai.fcapp.run
8.4.1 阿里云函数计算部署过程
架构选型:
- 前端静态页面托管在又拍云(CDN加速,访问速度快)
- 后端数据代理部署在阿里云函数计算(与IoT平台同一账号,内网调用延迟低)
- 前后端分离,通过 CORS 跨域调用
踩坑记录(Trae AI 辅助排错):
| 问题 | 原因 | 解决方案 |
|---|---|---|
事件函数 + HTTP Handler 报 resp.setStatusCode is not a function |
FC 3.0 事件函数的 HTTP 触发器使用 event/callback 格式,不是 req/resp 格式 | 改为标准事件函数格式:module.exports.handler = function(event, context, callback) |
Web 函数自定义运行时报 node: command not found |
自定义运行时镜像未预装 Node.js | 改用内置 Node.js 16 运行时的事件函数 |
Cannot find module '@alicloud/iot20180120' |
zip 上传时 node_modules 丢失,且 FC 不自动安装依赖 | 改用内置 https + crypto 模块手写 HMAC-SHA1 签名,零外部依赖 |
| 所有路径都返回 health 内容 | FC 3.0 HTTP 触发器的路径在 rawPath 字段,不是 event.path,且 event 是字符串需先 JSON.parse |
增加 parseEvent() 函数兼容 FC 3.0 event 格式 |
FC 3.0 HTTP 触发器 event 结构:
{
"version": "v1",
"rawPath": "/status",
"queryParameters": {},
"requestContext": {
"http": {
"method": "GET",
"path": "/status"
}
}
}
最终方案:
- 函数类型:事件函数(Node.js 16 内置运行时)
- 触发器:HTTP 触发器(匿名访问)
- 代码:纯原生 Node.js(https + crypto,零依赖)
- 实例配置:0.35 vCPU + 0.5 GB 内存
- 冷启动时间:~1秒
接口验证日志:
GET /health → 200 {"status":"ok","service":"tongyu-guardian-proxy"}
GET /status → 200 成功返回设备属性(经度/纬度/卫星数/SNR/告警状态)
GET /track → 200 成功返回历史轨迹数据
8.4.2 又拍云静态页面托管
部署方式:
- 又拍云云存储 → 文件管理 → 上传 index.html
- 默认首页:index.html
- CDN 加速:又拍云自带全球 CDN 节点
页面验证:
HTTP 200 OK
Content-Type: text/html
Content-Length: 13895 bytes
又拍云控制台截图:
Web 页面高德地图实时定位截图:
8.5 完整数据链路验证
SU-03T 语音识别("你好小美" → "救命")
↓ UART1, B7→GPIO42, 115200baud, 帧: AA 55 01 55 AA
ESP32-S3 帧解析状态机
↓ 识别 msgno=0x01, 触发 voice_helpme_trigger=1
MQTT 上报阿里云 IoT
↓ topic: /sys/a1oRwzdejAR/GPS-DINGWEI/thing/event/property/post
↓ params: { helpAlarm: true, latitude: 40.792817, longitude: 111.686173 }
Web 页面实时告警
↓ fetch /status → 解析 helpAlarm=true
→ 全屏红色闪烁 + "!! SOS 求助 !!" 弹窗 + 地图红色圆圈
9. 项目进度总览
| 模块 | 状态 | 说明 |
|---|---|---|
| ESP32-S3 主控 | ESP-IDF v5.5.4 编译烧录运行稳定 | |
| OLED 显示 | GPS + WiFi + MQTT + 语音状态全显示 | |
| GPS 定位 | ATGM336H,GPS/北斗双模,UART2 | |
| WiFi 网络 | 双网络自动切换(家里路由器+手机热点) | |
| 语音模块 | SU-03T UART模式,5条命令全部识别通过 | |
| 阿里云 IoT | MQTT HMAC-SHA1签名,6属性上报 | |
| Node.js 代理 | 阿里云函数计算 FC,零依赖原生实现 | |
| Web 页面 | 高德地图+轨迹+SOS告警弹窗,又拍云CDN托管 | |
| 又拍云部署 | http://tongyushouhu-trae.test.upcdn.net/ | |
| 阿里云函数计算 | https://tongyu-an-proxy-zyejayxixy.cn-shanghai.fcapp.run | |
| 4G 通信 | EC801E电平不匹配(1.8V vs 3.3V),等TXS0108E到货 |
10. Trae IDE开发截图
Trae IDE 编辑器截图:
Trae Agent 对话截图:
Trae Agent对话截图-AI辅助开发又拍云部署与测试验证
编译烧录成功日志:
Activating ESP-IDF 5.5
Executing action: all (aliases: build)
Running ninja in directory D:\esp32-projects\oled-test\build
Executing "ninja all"...
[4/9] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj
[5/9] Linking C static library esp-idf\main\libmain.a
[7/9] Linking CXX executable oled-test.elf
[8/9] Generating binary image from built executable
Successfully created esp32s3 image.
Generated D:/esp32-projects/oled-test/build/oled-test.bin
oled-test.bin binary size 0xe51a0 bytes. Smallest app partition is 0x100000 bytes. 0x1ae60 bytes (11%) free.
Executing action: flash
Serial port COM4
Connecting....
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
MAC: 58:e6:c5:71:b8:2c
Writing at 0x00010000... (100 %)
Wrote 938400 bytes (583327 compressed) at 0x00010000 in 13.0 seconds (effective 578.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Done
11. 适用场景与公益意义
- 景区安全守护:儿童佩戴挂件,走失时说"救命"即可发送精确位置
- 校园集体出行:老师通过Web页面实时追踪所有学生位置
- 社区公益推广:低成本硬件方案,适配社区儿童安全防护
- 应急救援:SOS一键求助,压缩寻回时长
12. 已完成亮点总结
12.1 嵌入式固件层(main.c,共 1533 行 C 代码)
| 亮点 | 技术细节 |
|---|---|
| 多任务架构 | 6 个 FreeRTOS 任务并行:gps_task / oled_task / lte_task / mqtt_task / wifi_task / voice_task |
| GPS 双模解析 | ATGM336H GPS/北斗双模,完整解析 GGA/RMC/GSV/BDS,支持卫星数与 SNR 实时统计 |
| NVS 持久化 | GPS 定位数据、状态日志(最大卫星数/定位次数)跨重启保存 |
| GPS 工具命令 | 支持冷启动/热启动/温启动、模块信息查询、版本查询 |
| 离线语音识别 | SU-03T UART 帧解析状态机,5 条命令词,3 秒超时清除 |
| SOS 实时触发 | 语音"救命"→ UART 帧 → MQTT 上报 → Web 弹窗,端到端 < 2 秒 |
| WiFi 双网切换 | 家里路由器 + 手机热点自动 fallback,断线自动重连 |
| MQTT 签名认证 | HMAC-SHA1 原生实现,零依赖对接阿里云 IoT 物模型 |
| OLED 自绘 UI | 5x7 字库 + 像素级绘制,GPS/WiFi/MQTT/语音状态全展示 |
12.2 云端平台层
| 亮点 | 技术细节 |
|---|---|
| 阿里云 IoT 物模型 | 6 个属性上报(经纬度/卫星数/SNR/在线/SOS告警),5 秒周期 |
| 函数计算 FC | 阿里云 Serverless 部署,零外部依赖(原生 https + crypto) |
| OpenAPI 签名 | HMAC-SHA1 手写实现,RAM 子账号最小权限 |
| 冷启动优化 | 实例规格 0.35 vCPU + 0.5 GB,冷启动 ~1 秒 |
12.3 终端应用层
| 亮点 | 技术细节 |
|---|---|
| 高德地图集成 | JS API 2.0,实时标记 + 历史轨迹折线(最多 200 点) |
| SOS 告警系统 | 全屏红色闪烁遮罩 + 居中弹窗 + 地图红色脉冲圆圈 |
| 又拍云 CDN 托管 | 静态页面全球加速,HTTP 200 响应 < 100ms |
| 响应式布局 | PC/手机自适应,max-width: 1400px |
| 自动刷新 | setInterval 每 5 秒 fetch 设备最新状态 |
12.4 Trae AI 开发模式创新
| 亮点 | 技术细节 |
|---|---|
| GLM-5.2 顶层规划 | 先用大模型生成方案文档(架构/接口/分步计划),作为开发蓝图 |
| 普通模型逐步实施 | 按方案文档代码片段逐步实现,效率高、不偏离架构 |
| 全程 Trae 体系 | 6 个 Agent 应用编号可追溯,从规划到部署零第三方工具 |
| AI 辅助排错 | UART 波特率调试、GPIO 上拉、FC 部署踩坑全由 AI 协助定位 |
13. 未来计划实施功能
13.1 短期计划(1-2 周,决赛前完成)
| 功能 | 优先级 | 技术方案 |
|---|---|---|
| 4G 通信恢复 | P0 | TXS0108E 电平转换模块到货后,恢复 EC801E UART1 通信,支持户外无 WiFi 场景 |
| 硬件外壳 3D 打印 | P0 | 设计挂件外壳(含 GPS 天线开窗、麦克风开孔、挂绳孔),SLA 打印 |
| 电池供电方案 | P0 | 锂电池 + TP4056 充电管理,支持 8 小时以上续航 |
| 电子围栏 | P1 | Web 端画圆形/多边形安全区域,设备越界自动触发告警 |
| 历史轨迹回放 | P1 | Web 端按日期/时间段查询轨迹,支持快进/暂停动画 |
13.2 中期计划(1-2 个月)
| 功能 | 优先级 | 技术方案 |
|---|---|---|
| 多设备管理 | P1 | 一个家长账号绑定多个挂件,Web 端列表切换 |
| 电池电量监测 | P2 | ADC 采集电池电压,MQTT 上报,Web 端低电量提醒 |
| 低功耗模式 | P2 | WiFi/MQTT 间歇唤醒(如 30 秒一报),延长续航 |
| OTA 远程升级 | P2 | ESP32 HTTPS OTA,Web 端推送固件更新 |
| 语音播报反馈 | P2 | SU-03T TTS 回应"已发送求助",提升儿童交互体验 |
13.3 长期规划(3-6 个月)
| 功能 | 优先级 | 技术方案 |
|---|---|---|
| 微信小程序客户端 | P2 | 替代 Web 页面,家长手机原生体验,支持消息推送 |
| BLE 蓝牙配网 | P2 | 替代硬编码 WiFi,小程序蓝牙一键配网 |
| 运动状态检测 | P3 | MPU6050 六轴传感器,识别儿童静止/行走/奔跑,异常状态告警 |
| 室内定位补充 | P3 | WiFi RSSI 指纹定位,弥补 GPS 室内无信号短板 |
| AI 语音语义理解 | P3 | 接入豆包大模型,识别更多自然语言求助(“我找不到妈妈了”) |
| 公益批量部署 | P3 | 与社区/学校/景区合作,批量投放低成本挂件,构建儿童安全守护网络 |
14. 演示视频
14.1 童语守护 - Trae大赛正式参赛(硬件交互赛道)完整版
14.2 童语守护 - ESP32端测试
14.3 童语守护 - PC Web端测试
14.4 童语守护 - 手机端测试
手机端测试视频正在B站审核中,审核通过后将更新链接(详细展示见14.1 童语守护 - Trae大赛正式参赛(硬件交互赛道)完整版)。
(注:本方案由 Trae IDE Agent 模式全程辅助完成,代码、调试、联调均依托 Trae 体系)










