76 lines
4.6 KiB
Markdown
76 lines
4.6 KiB
Markdown
# 数据采集终端 V1.0.0(FreeRTOS · 串口日志中文版)
|
||
|
||
> 本工程由「智能水产投料机 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) 9600,DMA+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/L,UNESCO换算,两阶段启动/读取) |
|
||
| 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错/原始帧 hex),OLED 轮换显示在线传感器数值(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-B40(USART1),上电自动配置名称/UUID/发射功率,支持全部调试命令
|
||
- **OLED 显示**:未联网显示联网进度(4G 阶段/WiFi 倒计时),联网后显示重量(读不到显示原因)与运行时间,防烧屏像素偏移
|
||
|
||
## 硬件接口
|
||
|
||
| 模块 | 接口 | 说明 |
|
||
| --- | --- | --- |
|
||
| 日志/蓝牙 HLK-B40 | USART1 PA9/PA10 | 115200,GBK |
|
||
| 485 磅秤 | USART2 PA2/PA3 | 9600,DMA+IDLE |
|
||
| 4G Air780E/EG | USART3 PB10/PB11 | 921600,CAT_PWR=PC4 开漏拉低开机 |
|
||
| WiFi ESP-01S | UART4 PC10/PC11 | 921600,ESP_RST=PA5,ESP_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`:默认 1(4G 通道 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`,与投料机通用
|