Embedded / IoT / Web Tools

个人简介

记录学习,分享实践:从嵌入式软件、IoT 联调到 Web 调试工具,把项目中的思考、踩坑和复盘沉淀成可回看的技术笔记。

About Tuny

嵌入式软件开发学习与实践中

关注设备通信、OTA 升级、低功耗调试、现场问题定位,也喜欢把联调流程做成更顺手的网页小工具。

2024 转向嵌入式软件
IoT 设备联调方向
OTA 升级链路实践
Profile

陶年

泥嚎,我是小陶,24 届毕业生。 2023 年 10 月开始在公司接触并参与硬件相关工作,2024 年 2 月起正式转向嵌入式软件方向, 目前主要学习并从事嵌入式软件开发。这个网站最初是为了方便自己做一些 IoT 小项目以及测试平台与硬件的联调, 后来也逐渐变成了记录学习、整理笔记和沉淀经验的地方。希望能把开发过程中的思考、实践和踩坑记录下来,既方便自己复盘,也能对同样在学习路上的你有所帮助。

设备通信 LoRa / 4G / MQTT / TCP
升级链路 BootLoader / YMODEM / OTA
问题定位 低功耗 / EMC / 现场联调
Skills

技能栈

语言 / 系统

C Python JavaScript FreeRTOS MCU 裸机开发 BootLoader

通信接口 / 协议

USART / RS232 / RS485 I2C / SPI Modbus TCP / UDP MQTT YMODEM SLIP WebSocket

无线 / 联网

LoRa 433MHz小无线 Wi‑Fi 蓝牙 Zigbee 4G 红外 IR OTA 远程升级

芯片 / 模组

GD32F470X GD32F103X ASR6601SE STM8L15X HT32L62X BA45F52X ML307R MN316 ESP32S3

驱动 / 图形界面 / 存储

LVGL GUI Guider GC9A01 CST816D TM1680 TM1628A W25Qxx/GD25QXX W29Nxx IS61WVX AT24Cxx FatFs NOR/NAND EEPROM/SRAM/Flash

调试 / 测试 / 优化

低功耗调试 功耗分析 EMC 整改基础 ESD / EFT / Surge 现场问题定位 故障分析与联调

工具 / 其他

keil/IAR ARM仿真器 示波器 逻辑分析仪 PCAN分析仪 功耗分析仪 万用表 电烙铁 PCB / SCH 基础
Experience

项目经历

  1. 平台搭建 TCP 传输 OTA 升级

    2026.04

    角色:独立开发与联调 | 技术:Python、JavaScript、TCP、OTA、BootLoader、WebSocket

    • 独立搭建用于设备 OTA 升级的测试平台,贯通网页工具、服务端与嵌入式设备之间的 TCP 传输链路,支撑固件上传、升级指令下发与过程调试。
    • 使用 Python / JavaScript 实现平台侧协议处理与调试页面,支持查看连接状态、升级日志、传输过程及关键异常信息,提升联调效率。
    • 围绕 TCP 传输场景梳理 OTA 升级流程,完成分包发送、状态应答、超时重传、完整性校验等机制设计,提升升级稳定性。
    • 配合设备 BootLoader / App 升级流程完成端到端联调,定位并解决固件传输、状态同步及异常恢复中的关键问题。
  2. 家用网关(兼容闹钟功能)

    2026.03

    角色:负责嵌入式软件独立开发、功能实现与联调 | 技术:FreeRTOS、LED数码管、红外、4G、433MHz 无线通信、主备电检测、温度采集、七彩灯、按键交互、语音播报、OTA 远程升级

    • 负责网关与云平台的连接、协议解析及数据交互,支持接收节点设备、天气、温度、闹钟等云端指令,并实时上报网关及各节点状态。
    • 实现本地数据存储与云端同步机制,保障离线场景下的数据可靠性与联网后的状态一致性。
    • 开发闹钟功能模块,支持语音、灯光等多种提醒方式,提升本地交互体验。
    • 实现 433MHz 无线节点接入与事件处理,接收节点告警信号后联动本地七彩灯和声光设备告警,并同步上报至云平台。
    • 基于 FreeRTOS 完成多任务架构设计与线程划分:gw_server 线程负责服务器通信,gw_node 线程负责节点交互,UI 线程负责 LED数码管 显示、按键处理、七彩灯控制、红外接收及语音播报等功能。
    • 实现红外信号接收与本地告警/闹铃解除逻辑,完善设备告警闭环。
    • 重点攻克 433MHz 网关与节点通信协议设计、节点广播联动、FreeRTOS 多线程同步与内存管理,以及 OTA 远程升级稳定性等技术难点。
  3. MQTT Web 工具页(订阅/发布/调试)

    2026.03

    角色:独立开发 | 技术:mqtt.js、WebSocket、TailwindCSS、Nginx

    • 实现主题订阅/发布、QoS、保活、断线重连、消息历史记录与导出。
    • 对接 EMQX 云端进行联调,支持多设备同时在线调试。
    • 部署到个人云服务器,配置反向代理与 HTTPS。
  4. 智能手表(个人项目)

    2026.02

    角色:负责嵌入式软件开发、硬件选型、驱动移植与调试 | 技术:FreeRTOS、LVGL、GUI Guider、GC9A01、CST816D、W25Q64

    • 完成智能手表原型的软硬件方案设计与核心器件选型,搭建基于 FreeRTOS + LVGL 的嵌入式图形界面框架。
    • 完成 GC9A01 圆形屏驱动移植与适配,实现表盘界面显示、图形刷新及基础 UI 展示功能。
    • 完成 CST816D 触摸驱动开发与输入事件适配,实现触摸操作采集及界面交互控制。
    • 基于 FreeRTOS 进行多任务划分与调度设计,初步将系统拆分为通信线程与 UI 线程,并处理相关内存管理问题。
    • 接入 W25Q64 Flash,用于资源数据或配置参数存储,为表盘资源管理及功能扩展提供支持。
    • 重点攻克触摸输入与显示刷新同步、外部 Flash 资源管理与内存分配等技术问题,提升界面交互流畅性与系统稳定性。
    • 规划后续扩展 WiFi / 蓝牙连接、设备配置及 OTA 远程升级能力,并接入加速度计实现抬腕亮屏、步频检测,结合 PPG 传感器实现心率监测,持续完善智能手表功能。
  5. 嵌入式设备联网与 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 双分区管理、升级状态机设计以及升级失败回滚等关键问题,提升设备远程升级的安全性与稳定性。
  6. 气体检测联动门禁系统

    2025.09

    角色:负责嵌入式软件开发与调试 | 技术:FreeRTOS、RS485/Modbus、4G 平台通信、门禁控制、红外联动、语音播报

    • 基于 RS485/Modbus 实现与气体传感器的数据交互,完成气体浓度实时采集与平台上报。
    • 实现气体超阈值告警联动逻辑,触发声光报警并限制门禁开门,形成检测与门禁联动闭环。
    • 开发差异化门禁权限控制机制,在告警或平台限制状态下,需满足多人员联合刷脸授权后方可开门。
    • 实现红外触发语音播报功能,自动播报当前气体浓度及是否满足施工进入条件。
    • 支持 6 路气路检测控制,通过拨码选择检测通道并联动气泵采样,提升多通道气体采集准确性。
    • 支持平台远程下发检测与开门指令,并上报门禁状态及开门人员 ID 信息。
    • 重点解决 FreeRTOS 多线程协同、多通道采集切换、门禁联动控制及平台数据同步等问题。
  7. 立柜控制器总线盘开发

    2025.05

    角色:负责嵌入式软件开发与调试 | 技术:MCU 裸机开发、RS485、LoRa、TM1628A、消防新国标

    • 基于 RS485 完成立柜控制器总线盘与主板之间的通信功能开发,支持控制指令下发、状态反馈及信息同步上报。
    • 引入异步应答与超时重传机制,处理主板通信过程中应答等待、无应答重发等场景,提升裸机环境下的数据传输可靠性。
    • 实现总线盘按键控制与 LoRa 无线联动逻辑:按下指定按键后 LED 进入闪烁状态,同时通过 LoRa 向输入输出模块发送启动命令; 收到反馈后 LED 常亮,再次按下按键后发送关闭命令并在反馈确认后熄灭 LED,形成完整控制闭环。
    • 完成 TM1628A 驱动开发,实现多按键扫描、LED 状态控制及联动显示功能。
    • 将控制执行结果与设备状态实时同步至主板,便于上位控制器统一管理与状态监测。
    • 重点解决裸机环境下主板通信可靠性、TM1628A 多按键/多 LED 联动控制,以及 LoRa 指令下发与反馈确认闭环等关键问题。
  8. LoRa 通信异常定位与优化

    2024.12

    角色:负责嵌入式软件开发、现场问题定位与调试 | 技术:LoRa、无线链路优化、现场故障分析、硬件协同调试

    • 负责现场 LoRa 通信异常问题排查,定位声光报警设备“开启后无法正常关闭”的控制异常。
    • 分析发现原有程序在 LoRa 信号较差时会立即触发节点信道切换;若声光开启后发生信道变更,后续关闭指令仍沿原信道发送,导致节点无法正确接收关闭命令。
    • 优化信道切换策略:节点上电后遍历网关路由表返回的可用信道,选择信号质量最优的信道进行通信;运行过程中仅在连续通信失败 3 次后才重新搜索并切换信道,降低频繁切换带来的控制失步问题。
    • 在排查过程中进一步发现 LoRa 收发切换电路中的单刀开关异常也会导致接收不稳定,并协同完成硬件问题定位与联调验证。
    • 通过软件策略优化与硬件问题协同排查,提升了 LoRa 通信链路稳定性与现场控制可靠性。
  9. 烟感设备低功耗调试与优化

    2024.06

    角色:负责嵌入式软件调试与低功耗优化 | 技术:MCU 低功耗、GPIO 配置、电流测试、功耗分析

    • 负责烟感设备休眠功耗异常问题定位与优化,针对设备待机电流偏高进行系统性排查。
    • 通过逐项检查 MCU 未使用 IO 的默认状态,发现部分引脚处于悬空或非低功耗配置,导致额外漏电流。
    • 对不参与业务功能的 GPIO 进行统一低功耗配置,根据硬件电路实际情况调整为模拟输入或稳定上下拉状态,避免悬空引脚带来的功耗增加。
    • 结合功耗测试对不同 IO 配置方案进行对比验证,逐步收敛高功耗来源并完成参数优化。
    • 最终将烟感设备待机功耗从约 200uA 降低至 10uA,显著提升电池供电场景下的续航能力。
    • 重点积累了 MCU 低功耗模式配置、GPIO 漏电分析及待机功耗优化方面的调试经验。
  10. 简易无线报警系统(毕设)

    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 后端的数据透传链路,以及多端协议解析与控制闭环实现等难点问题。
  11. EMC 抗扰度测试与整改优化

    2023.12

    角色:负责 EMC 测试问题定位、硬件整改与联调验证 | 技术:ESD 静电放电抗扰度、EFT 电快速瞬变脉冲群抗扰度、Surge 浪涌抗扰度、TVS/ESD 防护器件、硬件抗扰度整改

    • 参与带触摸屏及天线接口设备的 EMC 抗扰度测试,覆盖 ESD、EFT 及 Surge 测试项目。
    • 在 ESD 接触放电测试中定位到触摸屏、天线端口的静电耦合问题,导致 MCU 异常复位;通过在干扰入口增加 ESD 防护器件完成整改。
    • 在 EFT 测试中发现长走线易将脉冲干扰耦合至远端板卡,引发死机或通信异常;通过增加 TVS 管提升系统抗扰度。
    • 完成浪涌抗扰度测试验证,并积累了 EMC 问题定位与硬件整改经验。