Files
SmartPetFeeder_STM32/README.md
wangbeihong 9cadad138e ```
feat(bluetooth): 添加多按钮支持和WiFi连接音频反馈

添加MultiButton库支持多按键功能,重构SPI显示屏驱动代码,
迁移MP3音频文件至正确目录并集成WiFi连接状态音频提示音。

- 添加Multi_Button.c源文件和相关头文件包含
- 重构spi_st7735s.c中的数组初始化格式,优化代码可读性
- 将MP3音频文件从Development_Docs/MP3迁移到Core/Bsp/BSP_Device/bsp_mp3/MP3
- 在WiFi连接过程中添加MP3音频反馈(连接成功/失败提示音)
- 优化ST7735显示屏驱动中的DMA传输模式支持
```
2026-02-23 16:59:34 +08:00

78 lines
4.0 KiB
Markdown
Raw 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.
# SmartPetFeeder_STM32
## WiFi 与 MQTT 通信模块说明
本工程中的 `dx_wf_24.c` 实现了基于 ESP8266/ESP32 AT 指令集的 WiFi 与 MQTT 通信功能,主要特性包括:
- **串口 DMA 接收与发送**:使用 STM32 的 UART + DMA 实现高效数据收发,支持 IDLE 中断检测帧尾。
- **WiFi 连接管理**:通过 AT 指令自动连接指定 SSID 和密码的 WiFi 网络。
- **MQTT 客户端功能**
- 自动生成唯一 ClientID基于系统 Tick 与 STM32 UID
- 支持设置用户名、密码;
- 连接指定 MQTT 服务器(支持自定义 Host 和 Port
- 双主题订阅:`petfeeder/control`(控制指令)和 `petfeeder/config`(配置更新);
- 支持 RAW 数据发布(`AT+MQTTPUBRAW`),适用于 JSON 等结构化数据;
- 自动处理 MQTT 断线重连事件(通过 `+MQTTDISCONNECTED` 监测)。
- **消息解析**:解析 `+MQTTSUBRECV` 格式的订阅消息,提取主题与负载内容。
- **状态上报**
- 设备上线时自动发布 `{"status":"online"}``petfeeder/status` 主题retain=1
- 支持传感器数据上报至 `petfeeder/sensor` 主题。
> 注意:当前实现为单任务模型,在 `wifi_task_mqtt` 中完成初始化、连接、订阅及消息处理循环。
## SNTP 网络时间同步功能
本工程还实现了 SNTP (Simple Network Time Protocol) 网络时间同步功能,主要特性包括:
- **自动时间同步**:在 MQTT 连接成功后自动获取网络时间并同步到本地。
- **中国时区支持**默认配置为中国时区UTC+8使用 `cn.ntp.org.cn` 作为 NTP 服务器。
- **时间获取与存储**:提供 API 接口获取当前网络时间,并存储在内部结构体中。
- **时间有效性检查**:提供函数检查获取的时间是否有效。
### 主要函数接口:
- `WIFI_Enable_SNTP()`:启用 SNTP 功能并配置 NTP 服务器
- `WIFI_Get_SNTP_Time()`:获取当前网络时间
- `WIFI_Get_Current_Time()`:获取存储的当前时间(返回结构体副本)
- `WIFI_Is_Time_Valid()`:检查时间是否有效
## MP3 音频播放功能
本工程集成了 MP3 音频播放功能,用于提供各种系统状态和事件的语音提示。相关的音频索引定义在 `Core/Bsp/BSP_Device/bsp_mp3/mp3_play_index.h` 文件中。
### 音频提示分类:
#### 系统状态与初始化
- `SYS_POWER_ON` (1): 系统上电完成,智能宠物喂食系统启动完成,进入待机模式
- `WIFI_CONNECT_OK` (2): WiFi连接成功云平台数据同步已开启
- `WIFI_CONNECT_FAIL` (3): WiFi连接失败请检查网络配置
#### 喂食模块
- `FEED_AUTO_START` (4): 自动喂食启动,步进电机开始出粮
- `FEED_IN_PROGRESS` (5): 正在出粮,称重模块实时监测中
- `FEED_COMPLETE` (6): 喂食完成,当前食物重量已达设定值
- `FEED_MANUAL_TRIGGER` (7): 手动喂食指令已接收,开始出粮
- `FOOD_LOW_ALARM` (8): 食物余量不足警告,请及时添加
#### 喂水模块
- `WATER_REFILL_START` (9): 水位低于阈值,水泵启动,开始自动补水
- `WATER_REFILL_DONE` (10): 补水完成,水位已达设定上限
- `WATER_LOW_ALARM` (11): 水位过低警告,请检查水源或水泵
- `WATER_PIR_REFILL` (12): 检测到宠物靠近且水位偏低,启动自动补水
#### 模式切换
- `MODE_AUTO` (13): 已切换至自动运行模式
- `MODE_MANUAL` (14): 已切换至手动控制模式
#### 参数设置
- `PARAM_SAVE_OK` (15): 参数设置已保存,系统配置已更新
- `PARAM_TIME_SET` (16): 自动喂食时间已更新
- `PARAM_WEIGHT_SET` (17): 喂食重量阈值已更新
#### 远程控制与异常
- `REMOTE_CMD_RECEIVED` (18): 接收到微信小程序远程控制指令
- `DATA_UPLOAD_FAIL` (19): 数据上传失败,请检查网络连接
- `SYS_ERROR_ALARM` (20): 系统检测到异常,请检查硬件模块
### 使用说明:
系统通过调用相应的音频索引值来播放对应的提示音,为用户提供直观的听觉反馈,增强用户体验。