|
|
||
|---|---|---|
| .. | ||
| .vscode | ||
| Drivers | ||
| HardWare | ||
| Inc | ||
| MDK-ARM | ||
| Middlewares/FreeRTOS/Source | ||
| Src | ||
| m_app | ||
| README.md | ||
| keilkill.bat | ||
README.md
数据采集终端 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 上报LOGTRACELOGDEBUGLOGINFOLOGWARNLOGERRORLOGFATAL:日志等级(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,与投料机通用