本产品旨在解决工业物联网场景下,传感器终端设备数据无法远程采集、设备无法远程管理与配置的痛点。在电力设备在线监测、工业设备状态监控等业务场景中,大量分散部署的传感器需要通过低功耗无线方式将采集数据汇聚上传至云平台,同时接收云平台下发的配置指令、参数调整、固件升级等操作。传统有线采集方案布线成本高、部署不灵活,而纯无线方案又面临数据可靠性、安全性和实时性的挑战。本网关通过 BLE+4G 双模通信架构,实现了传感器数据的高效汇聚与云端同步,填补了工业现场低功耗传感器到云平台之间"最后一公里"的通信链路空白。
"我"负责该物联网网关从底层驱动到应用层协议的全栈嵌入式软件开发,核心工作包括:(1)基于STM32WBA52平台完成HAL库外设全驱动配置,涵盖USART+DMA串口通信、GPIO指示灯控制、RTC时钟同步、IWDG独立看门狗、TIM定时器调度、Flash双分区固件存储;(2)基于ST BLE协议栈(STM32_WPAN)实现中央主机模式:从机广播扫描与SN前缀过滤、GATT服务发现与服务特征值枚举、Notification分片拼包及CCCD描述符使能;(3)基于分层状态机架构实现Air780E 4G模块的AT指令8阶段初始化链和MQTT紧凑字节流环形发送队列(50KB,支持断线重连保序、CME ERROR 767退避保护、损坏条目跳过);(4)设计实现自定义二进制应用层协议,包含帧头帧尾四层校验链、命令ID+功能码两级路由、流控帧ACK/NACK序号确认与丢包重传机制;(5)实现SHA-256挑战-应答双向安全认证与白名单Flash持久化;(6)实现系统级容错:HardFault异常寄存器捕获+备份寄存器持久化日志、全API空指针防御宏、IWDG看门狗复位原因诊断、BLE数据锁4状态机防止多从机数据混淆;(7)实现远程OTA升级系统:MCU内部Flash划分为Bootloader区、A区(运行区)和B区(升级区),通过MQTT订阅固件升级Topic接收bin分片数据包,支持分片序号校验、MD5/SHA-256完整性校验,下载完成后写入B区并设置升级标志,复位后Bootloader校验B区固件合法性,合法则跳转B区运行(A/B角色互换),若B区固件校验失败或新固件运行异常(启动超时/连续HardFault),Bootloader自动回滚至A区原固件,保障设备在线升级零风险;(8)实现双平台冗余切换系统:同时维护主MQTT Broker(101.126.154.219)和备用MQTT Broker两套连接上下文,独立管理各自的KeepAlive心跳定时器,主循环中通过MQTT PINGRESP超时检测(默认1.5倍KeepAlive时间)判断主平台是否存活,主平台故障时自动将上行数据发布Topic切换至备用平台、下行订阅Topic同步切换,同时启动主平台恢复探测(周期性尝试重连),主平台恢复后平滑切回;所有上行数据在切换期间零丢失——发送队列在主备切换时保持不变,确保数据最终送达。