基于STM32的智能语音浴缸设计
1. 系统功能介绍
智能家居的概念不断发展,现代家庭对于舒适性与智能化的需求日益增长,智能浴缸的出现正是这一趋势下的产物。传统浴缸仅具备简单的储水功能,而智能浴缸能够结合温度、水位检测、自动加热、自动注水以及语音交互,从而显著提升用户的使用体验与安全性。
本设计以 STM32单片机 为核心控制器,结合温度传感器DS18B20、水位传感器、OLED显示屏、语音识别模块及继电器控制电路,构建了一套完整的 智能语音浴缸系统。系统既能通过传感器自动采集数据并进行判断控制,也能通过语音交互实现个性化操作。
系统主要功能包括:
数据采集与显示
- 使用 DS18B20 温度传感器检测水温;
- 使用水位传感器实时监测水位高度;
- 通过 OLED显示屏 实时显示水温与水位。
按键设置与自动控制
- 提供按键操作,用户可设置水温与水位阈值;
- 系统根据设置值自动控制加热器与水泵工作;
- 当温度低于阈值时自动加热,当水位低于设定值时自动加水。
语音控制
- 集成语音识别模块,用户通过语音口令控制浴缸;
- 例如说“加水”,系统启动水泵进行加水;说“加热”,系统开启加热器。
安全保护
- 超过设定阈值时自动停止加水或加热,避免溢水与过热;
- 系统设计有延时与故障检测机制,提高安全性与可靠性。
2. 系统电路设计
系统硬件部分由以下几个主要模块构成: STM32最小系统、温度传感器电路、水位传感器电路、OLED显示电路、继电器驱动电路、语音识别电路、电源电路。
2.1 STM32最小系统
- 选用 STM32F103C8T6 单片机作为主控;
- 具有丰富的GPIO资源,支持多外设接口;
- 内部集成定时器、USART、I2C、SPI,方便与传感器和模块通信;
- 提供时钟电路与复位电路,保证稳定运行。
2.2 温度采集电路(DS18B20)
- DS18B20 是一种数字温度传感器,采用单总线通信;
- 测量范围广(-55℃~125℃),精度可达 ±0.5℃;
- 单片机通过单总线协议读取温度数据;
- 数据经过计算后显示在OLED屏上,并用于加热控制。
2.3 水位传感器电路
- 采用数字式水位传感器,输出电平信号;
- 当水位高于某点时,传感器输出高电平;
- 单片机通过GPIO口读取水位信号,实现水位检测;
- 可与按键设定的阈值比较,判断是否需要加水。
2.4 OLED显示电路
- 显示屏采用 0.96寸 OLED,分辨率128×64;
- 通信方式为 I2C接口,节省IO口资源;
- 用于显示实时水温、水位以及系统状态;
- 界面清晰直观,用户体验良好。
2.5 继电器控制电路
- 继电器由单片机GPIO口驱动,控制 水泵 与 加热器;
- 当系统判断需要加水时,继电器闭合驱动水泵;
- 当温度低于阈值时,继电器闭合驱动加热模块;
- 继电器电路增加二极管保护,避免反向电流损坏单片机。
2.6 语音识别电路
- 采用常见的语音识别模块(如LD3320、Elechouse语音模块);
- 模块与STM32通过串口通信;
- 用户通过语音下达指令,单片机解析后控制水泵或加热器;
- 支持简单的语音命令,例如“加水”、“加热”、“停止”。
2.7 电源电路
- 系统采用 +5V 电源供电;
- 单片机及OLED通过 AMS1117-3.3V稳压芯片 转换为3.3V电源;
- 继电器与水泵、加热模块单独供电,避免电流冲击影响控制部分。
3. 程序设计
系统软件部分采用 C语言 编写,基于STM32标准库开发。整体结构包括:
- 主程序框架
- 温度采集与处理模块
- 水位采集与处理模块
- OLED显示模块
- 按键设置与存储模块
- 继电器控制模块
- 语音识别控制模块
3.1 主程序框架
#include "stm32f10x.h"
#include "oled.h"
#include "ds18b20.h"
#include "water_level.h"
#include "relay.h"
#include "voice.h"
#include "key.h"
float temperature = 0;
uint8_t water_level = 0;
float temp_threshold = 40; // 默认水温阈值40℃
uint8_t level_threshold = 2; // 默认水位阈值,等级制
uint8_t voice_cmd = 0;
int main(void)
{
OLED_Init();
DS18B20_Init();
WaterLevel_Init();
Relay_Init();
Voice_Init();
Key_Init();
OLED_ShowString(0,0,"Smart Bath");
while(1)
{
temperature = DS18B20_ReadTemp();
water_level = WaterLevel_Read();
OLED_ShowString(2,0,"Temp:");
OLED_ShowNum(2,6,temperature,2);
OLED_ShowString(3,0,"Level:");
OLED_ShowNum(3,6,water_level,1);
Key_Scan(&temp_threshold, &level_threshold);
voice_cmd = Voice_GetCommand();
ControlSystem(temperature, water_level, temp_threshold, level_threshold, voice_cmd);
}
}
3.2 温度采集模块
float DS18B20_ReadTemp(void)
{
int temp;
float t;
DS18B20_Start();
DelayMs(750); // 转换时间
DS18B20_Read(&temp);
t = temp * 0.0625; // 分辨率0.0625℃
return t;
}
说明:
- 通过单总线协议读取温度;
- 温度值经过换算后以浮点数形式返回。
3.3 水位采集模块
uint8_t WaterLevel_Read(void)
{
if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0) == 1)
return 3; // 高水位
else if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 1)
return 2; // 中水位
else
return 1; // 低水位
}
说明:
- 将水位划分为低、中、高三级;
- 通过多路水位探针信号判断水位高度。
3.4 OLED显示模块
void Display_Info(float temp, uint8_t level)
{
OLED_ShowString(2,0,"Temp:");
OLED_ShowNum(2,6,temp,2);
OLED_ShowString(3,0,"Level:");
OLED_ShowNum(3,6,level,1);
}
说明:
- OLED显示实时水温与水位;
- 提示用户当前浴缸状态。
3.5 按键设置模块
void Key_Scan(float *temp_threshold, uint8_t *level_threshold)
{
if(Key1_Pressed()) (*temp_threshold)++;
if(Key2_Pressed()) (*temp_threshold)--;
if(Key3_Pressed()) (*level_threshold)++;
if(Key4_Pressed()) (*level_threshold)--;
}
说明:
- 提供四个按键用于设置水温与水位阈值;
- 可存储在EEPROM中,掉电不丢失。
3.6 继电器控制模块
void ControlSystem(float temp, uint8_t level, float temp_thr, uint8_t level_thr, uint8_t voice_cmd)
{
if(temp < temp_thr || voice_cmd == CMD_HEAT)
Relay_Heat_On();
else
Relay_Heat_Off();
if(level < level_thr || voice_cmd == CMD_WATER)
Relay_Water_On();
else
Relay_Water_Off();
}
说明:
- 根据阈值自动判断是否加水或加热;
- 语音命令可直接触发继电器动作。
3.7 语音识别模块
uint8_t Voice_GetCommand(void)
{
uint8_t cmd = 0;
if(USART_ReceiveData(USART1) == 'H') cmd = CMD_HEAT;
if(USART_ReceiveData(USART1) == 'W') cmd = CMD_WATER;
return cmd;
}
说明:
- 语音模块通过串口向单片机发送识别结果;
- 例如“加热”返回字符‘H’,对应加热命令。
4. 总结
本设计基于 STM32单片机,结合温度采集、水位检测、OLED显示、继电器控制与语音识别模块,实现了一个功能完善的 智能语音浴缸系统。
系统优势:
- 多模控制:既可按键设置,也可语音控制,灵活性强;
- 自动化程度高:水温、水位自动调节,避免用户频繁操作;
- 安全可靠:设有阈值保护机制,避免过热与溢水;
- 人机交互友好:OLED显示直观,语音交互自然。
应用前景:
- 可广泛应用于家庭智能卫浴系统;
- 可扩展接入物联网,实现手机APP远程控制;
- 进一步增加智能分析功能,例如学习用户习惯,自动设定舒适模式。
通过本系统的实现,不仅能够提升浴缸的使用体验,还能增强生活的智能化水平,是智能家居发展中的重要组成部分。