nongye/STM32F103_App1/README.md

76 lines
4.6 KiB
Markdown
Raw Normal View History

# 数据采集终端 V1.0.0FreeRTOS · 串口日志中文版)
> 本工程由「智能水产投料机 V1.5.10」精简而来,**只负责 485 数据采集与上报**
> 去掉了控制类硬件相关功能。串口日志为中文输出(**GBK 编码**,串口工具/蓝牙 APP 字符集请选 GBK
## 与投料机 V1.5 的差异
**已彻底删除(源文件移除,不再参与编译):**
- 四路继电器 + 反馈电路(`HardWare/RELAY/` 整目录删除GPIO 不配置)
- HLW8032 电量计量(`HardWare/HLW8032/` 删除UART5/PD2 不再初始化energy/power 不再上报)
- 电量检测 ADC`HardWare/ADC/` 删除)
- 法拉电容断电保护(断电预警、掉电上报、掉电熄屏流程)
- 重启历史记录(`reset_log.c/h` 删除,各复位点不再记录原因)
- 投喂控制feed_scale 整模块删除,无投喂状态机/单次投量/去皮)
- 磅秤称重采集(平台不上报任何磅秤参数)
- 平台下行控制指令处理iot.prop.set 不再响应,下行只处理 OTA本平台产品类只看数据
**保留功能:**
- **485 传感器采集**`HardWare/SENSOR/sensor.c`USART2(PA2/PA3) 9600DMA+IDLE 定帧接收Modbus RTU 主机,一条总线可挂多个传感器(从机地址按下表配置),每 10s 本地查询刷新OLED 实时显示);上传在"OTA 已确认"后 +5s/+30s/+60s 各一次,之后每 5 分钟一次,在线传感器的参数各自组一条 `iot.prop.post` 上报协议取自《485伴侣/多级菜单》,标识符对齐《采集终端/V3.0》:
| 从机地址 | 传感器 | 上报标识符 |
| --- | --- | --- |
| 0x01 | 水体PH-EC | `PH`, `EC` |
| 0x02 | 大气压温湿度 | `BS_T`(气温), `BS_RH`(湿度), `BS_DO`(气压kPa) |
| 0x03 | 水体溶解氧DO59 | `DS_T`(水温), `DO`(mg/LUNESCO换算两阶段启动/读取) |
| 0x06 | 大气百叶箱 | `BY_TP`, `BY_RH`, `BY_HV`(光照Lux), `BY_CO2`(ppm) |
| 0x07 | 叶面温湿度 | `YSMD_TP`, `YSMD_RH` |
| 0x08 | 土壤温湿度 | `SOIL_TP`, `SOIL_RH` |
| 0x09 | 土壤氮磷钾 | `SOIL_NV`, `SOIL_PV`, `SOIL_KV` |
| 0x0A | 土壤PH | `SOIL_PH` |
| 0x0B | 土壤电导率 | `SOIL_RV`(uS/cm) |
- 传感器失败原因日志(无应答/帧异常/CRC错/原始帧 hexOLED 轮换显示在线传感器数值5s 一路)
- **电池电量**PA0 ADC 检测,随每轮上传上报 `BAT_VAL`0~100分压比/电量区间在 `main.h``BAT_*` 宏配置(默认沿用控制板:分压比 11、+0.6V 偏移、10.8V=0%、12.6V=100%
- **双网络通道**4G(Air780E/EG) 优先WiFi(ESP-01S) 兜底,自动切换,记住上次联网方式
- **OTA 远程升级**4G/WiFi 双通道 HTTP 下载BootLoader 试运行计数与失败回滚
- **GPS 定位上报**Air780EG GNSS`PRODUCT_WITH_GPS` 宏或蓝牙 GPS0/GPS1 控制
- **蓝牙调试**HLK-B40USART1上电自动配置名称/UUID/发射功率,支持全部调试命令
- **OLED 显示**未联网显示联网进度4G 阶段/WiFi 倒计时),联网后显示重量(读不到显示原因)与运行时间,防烧屏像素偏移
## 硬件接口
| 模块 | 接口 | 说明 |
| --- | --- | --- |
| 日志/蓝牙 HLK-B40 | USART1 PA9/PA10 | 115200GBK |
| 485 磅秤 | USART2 PA2/PA3 | 9600DMA+IDLE |
| 4G Air780E/EG | USART3 PB10/PB11 | 921600CAT_PWR=PC4 开漏拉低开机 |
| WiFi ESP-01S | UART4 PC10/PC11 | 921600ESP_RST=PA5ESP_EN=PA6 高有效 |
| OLED 0.96 | CLK=PC12 MOSI=PC9 DC=PC8 CS1=PC7 FSO=PC6 CS2=PB15 RST=PB14 | 带中文字库 |
| 蓝牙控制 | BT_MODE=PB0(开漏) BT_RST=PA7(低工作/高复位) | |
| LED | NET_NET 等 | 配网快闪/联网慢闪 |
## 配置项(`Inc/main.h`
- `FIRMWARE_VERSION_STR`:固件版本字符串(采集终端独立产品线,从 1.0.0 起)
- `MQTT_CLIENT_ID/USERNAME/PASSWORD`:每台设备烧录前改成对应平台的设备三元组
- `PRODUCT_WITH_GPS`:默认 14G 通道 GNSS 上报)
- `BLE_NAME` / `BLE_TX_POWER`:蓝牙名称 / 发射功率
## 蓝牙调试命令
`HELP` 查看全部命令;常用:
- `STATUS`:查询当前采集重量
- `GPS` / `GPS0` / `GPS1`:查询/关闭/开启 GPS 上报
- `LOGTRACE` `LOGDEBUG` `LOGINFO` `LOGWARN` `LOGERROR` `LOGFATAL`日志等级EEPROM 保存)
- `OTA`:重启进 BootLoader 检查升级;`RECOVERY`WiFi 模块恢复出厂;`RESET`:软复位
## 编译与烧录
- Keil MDK 打开 `MDK-ARM/STM32F103rb_App1.uvprojx`,必须带编译选项 `--no_multibyte_chars`
- 编译产物 bin 自动输出到 `OutputBin/STM32F103rb_App1.bin`(用于平台 OTA 上传)
- 烧录J-Link 运行 `jlink_flash.jlink`BootLoader 在 `../STM32F103_BootLoader`,与投料机通用