陶年
泥嚎,我是小陶,24 届毕业生。 2023 年 10 月开始在公司接触并参与硬件相关工作,2024 年 2 月起正式转向嵌入式软件方向, 目前主要学习并从事嵌入式软件开发。这个网站最初是为了方便自己做一些 IoT 小项目以及测试平台与硬件的联调, 后来也逐渐变成了记录学习、整理笔记和沉淀经验的地方。希望能把开发过程中的思考、实践和踩坑记录下来,既方便自己复盘,也能对同样在学习路上的你有所帮助。
技能栈
语言 / 系统
通信接口 / 协议
无线 / 联网
芯片 / 模组
驱动 / 图形界面 / 存储
调试 / 测试 / 优化
工具 / 其他
项目经历
-
平台搭建 TCP 传输 OTA 升级
2026.04角色:独立开发与联调 | 技术:Python、JavaScript、TCP、OTA、BootLoader、WebSocket
- 独立搭建用于设备 OTA 升级的测试平台,贯通网页工具、服务端与嵌入式设备之间的 TCP 传输链路,支撑固件上传、升级指令下发与过程调试。
- 使用 Python / JavaScript 实现平台侧协议处理与调试页面,支持查看连接状态、升级日志、传输过程及关键异常信息,提升联调效率。
- 围绕 TCP 传输场景梳理 OTA 升级流程,完成分包发送、状态应答、超时重传、完整性校验等机制设计,提升升级稳定性。
- 配合设备 BootLoader / App 升级流程完成端到端联调,定位并解决固件传输、状态同步及异常恢复中的关键问题。
-
家用网关(兼容闹钟功能)
2026.03角色:负责嵌入式软件独立开发、功能实现与联调 | 技术:FreeRTOS、LED数码管、红外、4G、433MHz 无线通信、主备电检测、温度采集、七彩灯、按键交互、语音播报、OTA 远程升级
- 负责网关与云平台的连接、协议解析及数据交互,支持接收节点设备、天气、温度、闹钟等云端指令,并实时上报网关及各节点状态。
- 实现本地数据存储与云端同步机制,保障离线场景下的数据可靠性与联网后的状态一致性。
- 开发闹钟功能模块,支持语音、灯光等多种提醒方式,提升本地交互体验。
- 实现 433MHz 无线节点接入与事件处理,接收节点告警信号后联动本地七彩灯和声光设备告警,并同步上报至云平台。
- 基于 FreeRTOS 完成多任务架构设计与线程划分:gw_server 线程负责服务器通信,gw_node 线程负责节点交互,UI 线程负责 LED数码管 显示、按键处理、七彩灯控制、红外接收及语音播报等功能。
- 实现红外信号接收与本地告警/闹铃解除逻辑,完善设备告警闭环。
- 重点攻克 433MHz 网关与节点通信协议设计、节点广播联动、FreeRTOS 多线程同步与内存管理,以及 OTA 远程升级稳定性等技术难点。
-
MQTT Web 工具页(订阅/发布/调试)
2026.03角色:独立开发 | 技术:mqtt.js、WebSocket、TailwindCSS、Nginx
- 实现主题订阅/发布、QoS、保活、断线重连、消息历史记录与导出。
- 对接 EMQX 云端进行联调,支持多设备同时在线调试。
- 部署到个人云服务器,配置反向代理与 HTTPS。
-
智能手表(个人项目)
2026.02角色:负责嵌入式软件开发、硬件选型、驱动移植与调试 | 技术:FreeRTOS、LVGL、GUI Guider、GC9A01、CST816D、W25Q64
- 完成智能手表原型的软硬件方案设计与核心器件选型,搭建基于 FreeRTOS + LVGL 的嵌入式图形界面框架。
- 完成 GC9A01 圆形屏驱动移植与适配,实现表盘界面显示、图形刷新及基础 UI 展示功能。
- 完成 CST816D 触摸驱动开发与输入事件适配,实现触摸操作采集及界面交互控制。
- 基于 FreeRTOS 进行多任务划分与调度设计,初步将系统拆分为通信线程与 UI 线程,并处理相关内存管理问题。
- 接入 W25Q64 Flash,用于资源数据或配置参数存储,为表盘资源管理及功能扩展提供支持。
- 重点攻克触摸输入与显示刷新同步、外部 Flash 资源管理与内存分配等技术问题,提升界面交互流畅性与系统稳定性。
- 规划后续扩展 WiFi / 蓝牙连接、设备配置及 OTA 远程升级能力,并接入加速度计实现抬腕亮屏、步频检测,结合 PPG 传感器实现心率监测,持续完善智能手表功能。
-
嵌入式设备联网与 OTA 远程升级(个人项目)
2025.12角色:嵌入式软件开发 | 技术:C、FreeRTOS、UART/485、Flash、WiFi/4G、OTA、YMODEM
- 设计并实现 BootLoader + App 的分区升级架构:MCU 侧划分 Boot 区与 App 区,外部 Flash 划分 A/B 双分区,分别用于备份当前固件与存储新固件,提升升级过程的可靠性与回滚能力。
- 实现基于 YMODEM 协议的固件传输机制,支持超时处理、重传控制与数据校验,保证串口升级过程中的传输稳定性与完整性。
- 在 BootLoader 中实现 OTA 状态机管理:设备上电后读取外部 Flash 中的升级状态,若检测到升级请求,则将 B 区新固件搬运至 App 区;升级成功后复位状态机并完成栈顶指针重定位及复位向量跳转,异常情况下可回退至旧版本固件。
- 在 App 侧设计 OTA 任务线程:接收平台下发的升级指令后,先将当前固件备份至 A 区,再通过 YMODEM 接收新固件并写入 B 区;接收完成后执行完整性校验、更新升级状态并触发系统重启,进入 BootLoader 完成正式升级。
- 重点解决 Boot/App 跳转、外部 Flash 双分区管理、升级状态机设计以及升级失败回滚等关键问题,提升设备远程升级的安全性与稳定性。
-
气体检测联动门禁系统
2025.09角色:负责嵌入式软件开发与调试 | 技术:FreeRTOS、RS485/Modbus、4G 平台通信、门禁控制、红外联动、语音播报
- 基于 RS485/Modbus 实现与气体传感器的数据交互,完成气体浓度实时采集与平台上报。
- 实现气体超阈值告警联动逻辑,触发声光报警并限制门禁开门,形成检测与门禁联动闭环。
- 开发差异化门禁权限控制机制,在告警或平台限制状态下,需满足多人员联合刷脸授权后方可开门。
- 实现红外触发语音播报功能,自动播报当前气体浓度及是否满足施工进入条件。
- 支持 6 路气路检测控制,通过拨码选择检测通道并联动气泵采样,提升多通道气体采集准确性。
- 支持平台远程下发检测与开门指令,并上报门禁状态及开门人员 ID 信息。
- 重点解决 FreeRTOS 多线程协同、多通道采集切换、门禁联动控制及平台数据同步等问题。
-
立柜控制器总线盘开发
2025.05角色:负责嵌入式软件开发与调试 | 技术:MCU 裸机开发、RS485、LoRa、TM1628A、消防新国标
- 基于 RS485 完成立柜控制器总线盘与主板之间的通信功能开发,支持控制指令下发、状态反馈及信息同步上报。
- 引入异步应答与超时重传机制,处理主板通信过程中应答等待、无应答重发等场景,提升裸机环境下的数据传输可靠性。
- 实现总线盘按键控制与 LoRa 无线联动逻辑:按下指定按键后 LED 进入闪烁状态,同时通过 LoRa 向输入输出模块发送启动命令; 收到反馈后 LED 常亮,再次按下按键后发送关闭命令并在反馈确认后熄灭 LED,形成完整控制闭环。
- 完成 TM1628A 驱动开发,实现多按键扫描、LED 状态控制及联动显示功能。
- 将控制执行结果与设备状态实时同步至主板,便于上位控制器统一管理与状态监测。
- 重点解决裸机环境下主板通信可靠性、TM1628A 多按键/多 LED 联动控制,以及 LoRa 指令下发与反馈确认闭环等关键问题。
-
LoRa 通信异常定位与优化
2024.12角色:负责嵌入式软件开发、现场问题定位与调试 | 技术:LoRa、无线链路优化、现场故障分析、硬件协同调试
- 负责现场 LoRa 通信异常问题排查,定位声光报警设备“开启后无法正常关闭”的控制异常。
- 分析发现原有程序在 LoRa 信号较差时会立即触发节点信道切换;若声光开启后发生信道变更,后续关闭指令仍沿原信道发送,导致节点无法正确接收关闭命令。
- 优化信道切换策略:节点上电后遍历网关路由表返回的可用信道,选择信号质量最优的信道进行通信;运行过程中仅在连续通信失败 3 次后才重新搜索并切换信道,降低频繁切换带来的控制失步问题。
- 在排查过程中进一步发现 LoRa 收发切换电路中的单刀开关异常也会导致接收不稳定,并协同完成硬件问题定位与联调验证。
- 通过软件策略优化与硬件问题协同排查,提升了 LoRa 通信链路稳定性与现场控制可靠性。
-
烟感设备低功耗调试与优化
2024.06角色:负责嵌入式软件调试与低功耗优化 | 技术:MCU 低功耗、GPIO 配置、电流测试、功耗分析
- 负责烟感设备休眠功耗异常问题定位与优化,针对设备待机电流偏高进行系统性排查。
- 通过逐项检查 MCU 未使用 IO 的默认状态,发现部分引脚处于悬空或非低功耗配置,导致额外漏电流。
- 对不参与业务功能的 GPIO 进行统一低功耗配置,根据硬件电路实际情况调整为模拟输入或稳定上下拉状态,避免悬空引脚带来的功耗增加。
- 结合功耗测试对不同 IO 配置方案进行对比验证,逐步收敛高功耗来源并完成参数优化。
- 最终将烟感设备待机功耗从约 200uA 降低至 10uA,显著提升电池供电场景下的续航能力。
- 重点积累了 MCU 低功耗模式配置、GPIO 漏电分析及待机功耗优化方面的调试经验。
-
简易无线报警系统(毕设)
2024.03角色:负责嵌入式端、网关端与 Web 端联调开发 | 技术:Zigbee、ZStack、ESP8266、MQTT、阿里云物联网平台、Node.js、vue3、MySQL、MQ2、DHT11
- 完成简易无线报警系统毕业设计,整体架构由报警节点、网关、阿里云物联网平台、Node.js 后端、MySQL 数据库及 Web 前端组成,打通设备采集、云端透传、数据存储与页面展示全流程。
- 节点侧使用 Zigbee 与网关通信,基于 MQ2 传感器采集烟雾数据、基于 DHT11 采集温湿度数据,并将采集结果上报给网关;当温度或烟雾超过报警阈值时,节点与网关蜂鸣器同时触发报警。
- 网关侧通过 ESP8266 接入 WiFi,并使用 MQTT 协议连接阿里云物联网平台,实现本地 Zigbee 数据向云端的透传上报,同时支持接收平台下发的控制命令。
- 云端通过阿里云物联网平台将 MQTT 透传数据转发至 Web 对应的 Node.js 后端,后端完成协议解析后写入本地 MySQL 数据库,并驱动前端页面实时更新显示采集数据与设备状态。
- 实现 Web 端远程消音控制:前端点击消音后,经 Node.js 后端与阿里云物联网平台转发 MQTT 指令至网关,由网关再下发命令至对应报警节点,完成远程消音与报警复位;同时支持通过网关本地复位按键进行消音恢复。
- 重点解决 ZStack 协议栈下 Zigbee 组网与消息转发、网关与阿里云之间的 MQTT 通信、云端到 Web 后端的数据透传链路,以及多端协议解析与控制闭环实现等难点问题。
-
EMC 抗扰度测试与整改优化
2023.12角色:负责 EMC 测试问题定位、硬件整改与联调验证 | 技术:ESD 静电放电抗扰度、EFT 电快速瞬变脉冲群抗扰度、Surge 浪涌抗扰度、TVS/ESD 防护器件、硬件抗扰度整改
- 参与带触摸屏及天线接口设备的 EMC 抗扰度测试,覆盖 ESD、EFT 及 Surge 测试项目。
- 在 ESD 接触放电测试中定位到触摸屏、天线端口的静电耦合问题,导致 MCU 异常复位;通过在干扰入口增加 ESD 防护器件完成整改。
- 在 EFT 测试中发现长走线易将脉冲干扰耦合至远端板卡,引发死机或通信异常;通过增加 TVS 管提升系统抗扰度。
- 完成浪涌抗扰度测试验证,并积累了 EMC 问题定位与硬件整改经验。