nongye/STM32F103_App1/README.md

76 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据采集终端 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`,与投料机通用