【项目合集】基于ESP32的智能盲人饮水机
演示视频和资源
文件很碎,请转存后再下载
链接:https://pan.quark.cn/s/1a7b99a2c322
功能点
实际功能点:
- 语音识别交互控制饮水机
- 水位检测(超声波)
- 水温检测(DS18B20)
- 出水提示(LED 灯)
- APP 控制饮水机(加热、加水),APP 可查看当前饮水机在线状态下出水次数
- 水杯检测
- 支持按键出水、停止出水(可以控制出水和停止出水)
唤醒指令:你好,小杰
语音交互指令:
- 水位多少
- 水温多少
- 加热到 XX 度(35、50、70、100)
- 出水
- 水箱加满
语音反馈指令:
- 当前水位是 XX
- 当前水温 XX 度
- 正在出水
- 出水结束
- 加热中
- 加热结束,水温已达到 35 度(35、50、75、100)
- 加水中
- 加水完毕
- 水杯已放好(检测到红外被挡住)
- 请先放置水杯
硬件清单
组件名称 | 功能 | 数量 | |
STM32 | 主控 | 1 | 1 |
ESP8266 | WIFI 模块 | 1 | 1 |
DS18B20 | 温度传感器,水温检测 | 1 | |
超声波传感器 | 检测水位 | 1 | 1 |
按键 | 按键开关水 | 1 | 1 |
RGB LED 灯(绿、蓝、红色) | 绿:出水指示灯 | 1 | 1 |
红外传感器 | 被拖检测 | 1 | 1 |
语音输入模块(LD3320A) | 语音输入 | 1 | 1 |
语音提醒功能(SYN2688) | 语音提醒 | 1 | 1 |
电源模块 | STM32 电源引脚不够,做拓展用 | 1 | 1 |
DC 线 | 给电源模块供电的 | 1 | 1 |
MQTT 相关
// WiFi配置
const char* ssid = "xlu_xm";
const char* password = "111222333+";
// MQTT配置
const char* mqtt_server = "broker.emqx.io"; // 使用免费的公共MQTT服务器
const int mqtt_port = 1883;
const char* mqtt_sub_topic = "/topic/x25184/c";
const char* mqtt_pub_topic = "/topic/x25184/m";
mqtt 控制指令如下:
// MQTT回调函数
void callback(char* topic, byte* payload, unsigned int length) {
String message = "";
for (int i = 0; i < length; i++) {
message += (char)payload[i];
}
// 处理MQTT命令
if (message.indexOf("jia re dao san shi wu du") != -1 ||
message.indexOf("jia re dao wu shi du") != -1 ||
message.indexOf("jia re dao qi shi wu du") != -1 ||
message.indexOf("jia re dao yi bai du") != -1) {
float targetTemp = parseTemperatureCommand(message);
if (targetTemp > 0 && !isHeating) {
startHeating(targetTemp);
}
} else if (message.indexOf("shui xiang jia man") != -1) {
if (!isFillingWater) {
startWaterFill();
}
}else if (message.indexOf("chu shui") != -1) {
if (!isDispensing) {
startWaterDispense();
}
}
}
语音模块数据
<G>你好,主人<G>你好,主人<G>dang qian shui wei duo shao
<G>你好,主人<G>dang qian shui wen duo shao
<G>你好,主人<G>jia re dao wu shi du
<G>你好,主人<G>jia re dao san shi wu du
<G>你好,主人<G>jia re dao qi shi wu du
<G>你好,主人<G>chu shui
<G>你好,主人<G>shui xiang jia man