shuichan_old/水产投料机与四路继电器二合一/V1.4/版本说明.md

4.5 KiB
Raw Blame History

版本说明

V1.1 —— 4G 基础版

最初版本,纯 4G 通信。

功能

  • 4G Air780E MQTT 联网(模组内置 MQTTUSART3 DMA+IDLE 接收,波特率自适应 115200→921600 掉电保存)
  • 四路继电器远程控制sw1~sw4 / feeding 指令),带继电器反馈检测与负载异常应答
  • 两种产品形态宏 PRODUCT_WITH_FEED_SCALE投料机RS485 称重定量投喂,重量反增/超时保护)/ 基础四路继电器
  • 4G OTA 远程升级HTTP 分块下载3072B/块)→ W25Q64 暂存 → CRC16+固件头校验 → BootLoader 备份/搬运/失败回滚3 次试错)
  • AT24C02 EEPROM 配置存储MQTT 参数/版本号/继电器状态)
  • 继电器断电记忆:联网后恢复继电器 2~4 上次状态,继电器 1投喂上电强制断开防误投料
  • 蓝牙串口调试命令USART1RESET/INFO/STATUS/R1ON~R4OFF/OTA/RECOVERY 等
  • 双看门狗:片内 IWDG(~26s) + 外置 TPL5010(7minLED2 翻转喂狗)
  • 电量检测PA0 ADC低电量上报 pow:0

V1.2 —— 新增 WiFi 通道

新增

  • ESP-01S WiFi 通道UART4PC10/PC11RST=PA5TCP 透传 + MCU 软件 MQTT 3.1.1(不用 AT+MQTT
  • 网络层抽象:network.c 统一 NET_* 接口4G/WiFi 双后端互斥共享接收缓冲Rx_Buf/U2_CopyBuff业务层零改动
  • 通道切换4G 无 SIM/无信号重试 3 次自动回退 WiFiWiFi 按"固定热点(60s) → SmartConfig 智能配网(60s)"连接,失败回 4G 循环
  • WiFi/4G 波特率均提升至 921600WiFi 侧 AT+UART_DEF 掉电保存,探测同步)
  • 4G 信号检测AT+CSQ 转百分比输出,无信号置标志回退 WiFi
  • GPS 定位周期上报Air780EG 内置 GNSSWGS-84→GCJ-02 高德坐标转换5min 周期fix 无效不上报)
  • 状态上报同时携带 sw1 与 feeding 两个字段(平台两个开关同步刷新)
  • 继电器断电记忆完善:改到 MQTT 首次就绪后恢复(修复 WiFi 兜底时永远不恢复的问题);无秤模式四路全恢复;投料模式 SW1 不恢复且强制关闭
  • 新增 RECOVERY 蓝牙命令WiFi 模块 AT+RESTORE 恢复出厂(测试 SmartConfig 用)

修复

  • 透传 CIPSEND 无响应:等 CIPSTART 的 OK 收尾+延时后再发;增加"已在透传态"探测兜底
  • AT 应答陈旧匹配:清缓冲改到发送之后,防止上一条应答尾巴造成"假成功"(曾致 CIPMODE 未生效)
  • UART ORE 导致 HAL 中止 DMA 接收ErrorCallback 按当前通道自愈重新武装

V1.3 —— WiFi OTA + 联网方式记忆

新增

  • WiFi 通道 OTAESP-01S 透传 TCP 上软件实现 HTTP Range 分块下载3072B/块MCU 自定节奏),复用 W25Q64 双槽+CRC+BootLoader 回退体系;下载失败自动重连 MQTT 恢复业务
  • 联网方式记忆EEPROM 偏移 130记录上次成功联网方式4G / WiFi固定热点 / WiFi配网热点仅变化时写一次开机优先跑上次成功的方式
  • 已存 AP 自动连接改为 AT+CIPSTATUS 主动查询(修复被动等 "WIFI GOT IP" 打印被清缓冲擦掉、永远等不到的问题)

修复

  • WiFi OTA 下载停摆DMA(NORMAL) 填满 Rx_Buf 后无 IDLE 不触发、接收永久停摆 → 在 HAL_UART_RxCpltCallback 里搬运并重启接收UART4/USART3 同步加)
  • 服务器整包灌流量冲爆接收缓冲:改 HTTP Range 分块请求自定节奏
  • AT 匹配严格化二进制安全匹配strstr 遇 0x00 失明问题)、收到 ERROR/FAIL 快速失败、进透传前 AT+CIPCLOSE 清残留连接、CIPMUX=0 先于 CIPMODE=1
  • SmartConfig 后等 IP 失败:改 CIPSTATUS 主动查询(打印被 CWSTOPSMART 交互擦掉的问题)

V1.4 —— FreeRTOS 版

新增

  • 迁移到 FreeRTOS V10.0.1net(3)/app(2)/sys(1) 三任务idle 钩子喂 IWDGHAL 时基改 TIM2SysTick 归 RTOS
  • 互斥锁三把AT 会话锁(防业务发布与 AT 应答交织、存储锁EEPROM/W25Q64 跨任务)、日志锁
  • 无秤模式PRODUCT_WITH_FEED_SCALE=0不再上报 zero/onceWt 字段,平台下发设置直接拒绝
  • WiFi 断链处理与 4G 对齐TCP CLOSED被平台踢下线/ 心跳超时(15s) → 打印原因并直接整机复位
  • Uptime 运行时长打印:联网后每 60s 一次(未联网不打印)

修复

  • 迁移时漏抄 HAL_TIM_PeriodElapsedCallbackHAL 时基不走)导致开机复位循环
  • RECOVERY 在透传态下直接发 AT+RESTORE 被当 TCP 数据发走:先 "+++" 退透传RTOS 下改为 net 任务内执行恢复流程
  • NET_LED 一直闪烁:补回 g_net_led_connected 状态映射(连接中闪烁,连上常亮)