基于STM32单片机的语音控温水龙头设计

摘要

每个人对水温的感知都不同。考虑到当今人们的生活需求,能够智能调节水温的水龙头具有良好的研究价值。与传统产品不同,本文设计的语音温控水龙头不仅能自动调节温度,还能保持恒温。当热水供应不足时,可提前报警,提醒用户尽快完成用水。本设计利用现有的语音信号模块,可将语音信号转换为单片机输入信号,再通过单片机控制电机转动,从而很好地控制冷热水的开启程度。通过温度传感技术、语音识别算法与单片机的有效结合,实现智能温控的目标。

1. 引言

智能水龙头,也称为智能感应水龙头,诞生于20世纪70年代。起初,它仅出现在日本、欧洲和美国等经济发达国家,用于公共场所,以防止洗手后的二次污染。当时感应水龙头的技术尚不成熟,因此在发展与普及过程中并非一帆风顺。随着科学技术的发展,感应水龙头的功能已得到改进和完善。然而,在实现智能化阶段的智能水龙头仅仅是智能功能的叠加,未能将智能技术与功能体验良好结合,忽视了智能水龙头的便利性,产品用户友好性不足。这也是国内智能水龙头不适合家庭使用的一个重要原因[1]。因此,本文设计了一款更适合家庭使用的智能水龙头。

2. 硬件设计

本项目设计的水龙头硬件模块包括[2]:(1)两个水泵,用于实现冷热水的交换及冷热水的混合;(2)步进电机模块L298N,可在接收到语音控制信号后控制电磁水阀旋转一定角度,从而实现温度调节;(3)蜂鸣器,当热水消耗逐渐增加,手柄旋转角度达到热水管最大开度时,及时发出语音提示,提醒用户尽快停止用水,或当用户所需温度过高或过低时,自动发出报警;(4)显示模块LCD12864:显示实时水温和用户的控制指令;(5)温度传感模块DS18B20:用于温度检测;(6)语音识别模块LD3320:接收到语音识别信号后,将其转换为计算机信号,并由单片机识别控制命令;(7)电源模块,用于为各个模块提供电力;(8)控制模块STM32单片机,用于实现对各模块的集中控制。

2.1. STM32微控制器

STM32 MCU is a series高性价比单片机,专为需要高性能、低成本和低功耗的嵌入式应用设计了ARM Cortex‐M内核。同时,它具有一流的外设,1μs双12位ADC,4 Mb/s UART等。在功耗和集成度方面也表现出色,价格经济,功能优异。因此,本设计选用该单片机。

2.2. 语音识别模块

本设计所采用的LD3320是ICRoute公司生产的一款语音识别模块。该芯片集成了语音识别处理器及部分外围电路,包括AD/DA转换器、麦克风接口、语音输出接口等,因此无需任何辅助芯片即可直接集成到现有产品中,实现语音识别、语音控制和人机对话功能。该芯片的优点在于可自行设置唤醒词,在嘈杂和干扰环境中识别率仍可达95%。

2.3. 电机驱动模块

This design selects the stepping motor模块L298N,是由ST公司生产的电机驱动芯片。它包含两个全桥驱动器,可以同时驱动两个直流电机或一个两相四线步进电机。逻辑输入部分设计了光电隔离模块以保护控制器。该模块的最大输入电压为40V,单通道峰值电流为3A,最大功率不超过25W。逻辑输入端采用标准TTL电平控制,默认连接到VCC。

2.4. 温度传感模块

在本设计中,温度传感模块DS18B20用于自动检测温度,以便单片机控制电磁水阀的恒温或自动调节相应温度。DS18B20是一种常用的数字温度传感器[3]。其输出为数字信号,具有体积小、硬件开销低、抗干扰能力强和精度高等特点。DS18B20数字温度传感器易于连接,封装后可用于多种场合。它耐磨、抗冲击、体积小、使用方便,因此适用于各种在狭小空间内工作的数字温度测量与控制设备。

2.5. 安全报警模块

蜂鸣器是一种电带有集成结构的蜂鸣器[4]。它由直流电压供电,广泛应用于各种电子产品中作为发声装置。可分为压电式蜂鸣器和电磁式蜂鸣器两种类型,具有体积小、价格经济、耐用性好等优点。在本设计中,随着用户使用热水量的增加,当手柄旋转角度达到热水管最大开度时,蜂鸣器能够及时发出提示,提醒用户尽快停止用水;或在用户所需温度过高或过低时发出报警信号。

2.6. 电源模块

The design of the电源模块选用锂电池,体积小、重量轻,能大幅降低水龙头的重量。同时,能够满足各个模块的运行需求,且容量大锂电池可延长供电时间。此外,锂电池的重金属含量远低于其他类型的电源,更环保。

3. 软件设计方案

本文设计的水龙头以STM32单片机为核心,功能代码采用Keil软件编写,最终烧录到单片机中。

3.1. 温度传感器识别温度

  1. The hot water and cold water in this design a通过两个水泵分别将热水和冷水串联连接。温度传感器DS18B20通过温度探头检测水温,并将其转换为电信号发送给单片机,然后通过单片机将温度由LCD12864显示。编码流程图如图1所示。

  2. 当温度传感器DS18B20检测到水温低于25°C或高于60°C时,微控制器控制步进电机的旋转角度,从而控制电磁水阀的转动以达到恒温,并在LCD12864上显示实时温度。其编码流程图如图2所示。

示意图0
示意图1

3.2. 语音识别模块控制水温

所设计的产品接收用户的语音信号,语音识别模块将语音信号转换为单片机可识别的电平信号,从而使单片机控制步进电机的旋转角度,进而控制电磁水阀达到用户所需的目标温度。语音识别芯片的工作原理如下:对麦克风输入的语音进行频谱分析—提取语音特征—匹配关键词列表中的关键词—输出关键词列表中得分最高的关键词作为语音识别的最终结果。其编码流程图如图3所示。

示意图2

3.3. 安全报警提示

The user’s voice is process由内部微处理器处理并转换为控制信号。一方面,水龙头开关通过电磁水阀进行控制;另一方面,手柄角度通过电动控制阀进行调节,从而调节冷热水管出水量,最终实现控制水温的目的。随着热水消耗的增加,当手柄旋转角度达到热水管最大开度时,将及时发出提示,提醒用户尽快停止用水。编码流程图如图4所示。

示意图3

4. 实验和结论

Finally, the system designed in本文通过仿真实验进行验证。使用Proteus构建硬件模型,使用Keil进行系统调试[5]。实验中,单片机可通过温度传感器DS18B20接收外部温度信号,从而控制电机转动,实现恒温[6](当温度高于45°C时,正向转动加速;当温度低于10°C时,反向转动加速;当温度达到75°C时,正向转动达到全速;当温度为0°C时,反向转动达到全速;当温度在10°C至45°C之间时,逐渐停止)。实验结果表明,本文设计的系统能够控制电磁水阀的旋转角度,实现出水口的恒温。

示意图4

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐