基于语音控制的智能浴缸设计

2024-01-24 10:58肖阳阳黄宪通
电脑知识与技术 2023年34期
关键词:语音识别无线通信智能家居

肖阳阳 黄宪通

摘要:该设计选用STM32作为主控单元,采用LD3320语音识别芯片接收指令并与数据库中已存数据比对,将处理结果发送到主控单元,其发送指令控制相应模块,通过温度传感器测量水温并选用超声波传感器测量水位高度,采用ESP8266无线通信模块访问阿里云服务器,实现与手机App之间的数据通信。在手机界面显示测量值和设置阈值,根据测量值控制加热棒加热和水泵加水,也可点击手机界面功能按钮实现相应功能操作。该设计经过多次测试,针对影响因素进行分析,可以实现预期功能。

关键词:无线通信;单片机;语音识别;传感器;智能家居;语音控制

中图分类号:TN921        文献标识码:A

文章编号:1009-3044(2023)34-0108-04

开放科学(资源服务)标识码(OSID)

0 引言

近年来伴随5G技术的出现,使得物联网和互联网的联系变得更加紧密,其中智能家居系统更是显著代表。市场上常见的传统浴缸只具备沐浴功能,使用时需要用户自己放水,不能保持恒定水温,也不具备按摩和播放音乐功能,用户的体验仅仅在于躺下沐浴,因此对于浴缸的智能化需求迫在眉睫。一些发达国家在智能家居领域的发展前景突出,早在20世纪80年代,美国就已经开始研制智能住宅系统并且取得了一定成果。目前美国的家庭对于智能家居的使用率达到了一半以上,同时日本也紧跟其后,推出了一系列具有代表性的智能家居产品。尽管我国智能浴缸产业发展呈现上升趋势,但实际的市场分布并不广泛,和智能马桶、智能淋浴房相比,在日常家庭中的应用不多,人们对于智能浴缸的需求在增加,但是真正达到智能化的浴缸在市场中所占的数量并不多,总之,技术的提升仍是值得关注的问题。

1 系统总体方案设计

基于语音控制的智能浴缸设计,分为硬件设计和软件设计2部分。硬件设计部分包括主控模块、语音识别模块、无线通信模块、水温检测模块、水位检测模块、按摩模块、加热模块、加水模块和音乐播放模块。软件设计部分包括主程序设计、无线通信系统设计和手机程序开发,系统总体设计框图如图1所示。

该智能浴缸选用了STM32作为最小核心系统,可以实现本地语音控制和手机远程控制2种方式。用户唤醒语音助手,说出目标指令,语音识别芯片接收来自用户的指令并与数据库中的信息进行分析对比,将识别结果发送给STM32,STM32对指令解码后,发出控制指令来控制相应模块实现加热、加水、按摩、音乐播放等功能[1]。无线通信模块用于连接网络,通过网络访问阿里云服务器,实现与手机终端之间的数据通信。STM32接收到来自温度传感器和超声波传感器采集到的水温和水位数据,并将采集的数据通过ESP8266Wi-Fi模块送达用户手机终端,在手机界面上显示测得的数据,由用户选择自动模式或者手动模式。自动模式下,系统比较测量值和设置值发送控制指令给继电器,继电器控制水泵加水、控制加热棒加热,直到水温水位达到设置值。手动模式下,通过功能按钮选择浴缸具备的各种功能。

2 硬件设计

以STM32F103C8T6为基础,结合LD3320芯片和ESP8266芯片,构建一套具有语音识别功能和手机远程控制功能的智能浴缸控制电路。硬件设计部分包括主控模块、语音识别模块、无线通信模块、水温检测模块、水位检测模块、按摩模块、加热模块、加水模块和音乐播放模块。

2.1 主控模块

STM32F103C8T6芯片是一款基于ARM Cortex-M3内核的32位微控制器,采用LQFP48封装,由意法半导体公司推出,具有高性能、低功耗的特点。STM32主控芯片引脚及外接图如图2所示。引脚功能如下:PC13连接指示灯,PA4~PA7是SPI1,PB12~PB15是SPI2,PA9、PA10是串口1,PA2、PA3是串口2,PB10、PB11是串口3,PB6~PB9一般可以用于PWM输出,对应TIM4。PC13~15用于时钟相关。

2.2 语音识别模块

使用LD3320芯片能够提供更先进的语音识别技术,采用了先进的处理模块,并且具有AD/DA转换器,可以实现更有效的语音识别[2]、达到更精准的声音控制,从而更好地满足人们的日常交流需求。通过采集用户的语音指令,对接收到的语音指令进行频谱分析,提取关键词特征,与已存储的数据进行比对,然后输出对应的返回数据。

2.3 无线通信模块

使用ESP8266芯片,内部集成了完整的Wi-Fi网络解决方案,拥有SDIO、SPI等多种通信接口,通过访问阿里云服务器建立手机终端与主控模块之间的数据通信,主控模块采集的数据可以通过无线通信模块发送到手机,并在手机界面上显示,也可以在手机上远程控制系统工作[3]。

2.4 水温检测模块

使用DS18B20温度传感器,实现对水温的实时检测,并将测量数据传递给STM32。DS18B20温度传感器的优点在于体积小,使用时能够得到较快响应。可以通过单线接口将温度信息传输到主控制器,也可以通过这条总线将主控制器发送的控制指令发送到DS18B20[4]。

2.5 水位检测模块

使用HC-SR04超声波传感器,实现对水位的实时检测,并将测量数据传递给STM32。HC-SR04是一种先进的超声波传感器,可以准确地检测出浴缸边缘与水面之间的距离,由两个独立的传感器组成,一个负责接收和传输40KHz的超声波脉冲,另一个则负责处理和传输[5]。

2.6 按摩模块

使用驱动连接一个小电机,电机震动模拟按摩功能实现。用户唤醒智慧助手说出“打开按摩”“关闭按摩”的指令,主控模块接收到指令,控制电机震动或者关闭。

2.7 加热模塊

HF46F12-HS1是一种超小型中功率继电器,触电是继电器中的重要结构件,该继电器拥有5A触点切换能力,触点形式为1H(常开类型),触点材料选择使用具有优秀抗粘接性的AgSnO2和具有高烧蚀性的AgNi。而且该继电器很小,可以在密度较小的情况下安装。

使用HF46F12-HS1,通过连接一个加热棒对水温进行加热,当测量数据低于设定值时,传输数据到主控模块,其控制加热模块进行水温加热操作,当水温达到阈值时,该模块停止工作。

2.8 加水模块

使用HF46F12-HS1,通过连接一个水泵实现加水,当测量数据低于设定值时,传输数据到主控模块,其控制加水模块进行加水操作,当水位达到阈值时,该模块停止工作。

2.9 音乐播放模块

JQ8400-FL拥有强大的信息查询功能,随时可以得到语音芯片的状态信息,并且支持歌曲切换、播放选择、曲目选择等功能,与日常音乐播放软件功能完全一致。使用JQ8400-FL芯片,通过连接一个喇叭实现音乐播放,用户唤醒智慧助手说出“打开音乐”“关闭按摩”的指令,主控模块接收到指令,控制音乐播放或者关闭。

3 软件设计

软件部分包括主程序设计、无线通信系统设计和手机程序开发。

3.1 开发所需软件

本系统采用Keil作为主要编程工具,使用Eclipse作为一个跨平台的自由集成开发环境。

3.2 主程序设计

STM32F103C8T6开发环境的搭建,需要先对STM32和各个功能模块进行初始化,目的在于对时钟和GPIO等进行配置,符合系统需要的状态。等待Wi-Fi连接成功,在存储器中读取水位阈值和水温阈值,由水温传感器和超声波传感器检测水位和水温数据,若用户说出语音识别唤醒指令,进入语音识别模块,通过语音控制开关灯、开关按摩、开关音乐的操作。数据上报手机App时间到达,系统将数据包通过Wi-Fi发送给服务器,然后发送给手机。手机接收到数据,获取数据长度,对数据包进行验证。判断选择自动模式还是手动模式,并对水位阈值、水温阈值和灯光进行设置,将测量数据与设置值比较判断是否对水泵控制、加热控制,主程序流程图如图3所示。

语音识别模块开始工作时,用户可以说出不同的指令,该模块将语音指令进行解码分析,输出结果给主控模块。在主程序中识别语音发送的命令,执行不同的判断。如打开音乐的指令判断,在识别到用户说出该指令时,STM32控制音乐播放模块工作,没有识别到该指令时,执行下一项。

3.3 无线通信系统设计

无线通信系统配置需要对串口进行初始化,建立数据同步,设置合适的波特率,然后对函数进行初始化,通过发送AT指令建立与服务器之间的TCP连接。返回连接成功时,说明主控制系统与手机终端之间已经建立联系。无线通信系统配置流程图如图4所示。

ESP8266和网络调试助手之间通过服务器建立联系。观察串口调试助手发送窗口,每条指令成功后会返回OK,看到OK后再点击下一条指令,当发送AT+CIPSEND指令后,收到OK回复,表明接下来开始通过ESP8266向外发送数据。

3.4 手机程序开发

手机程序开发设计,首先对主界面显示进行规划,结合硬件模块的功能对代码部分进行总结规划,开始代码编写。手机App的开发使用Eclipse作为开发环境,使用Java语言进行代码编写,并创建了一个手机远程控制界面的模拟器。

当用户打开设置好的热点时,设置点击连接按钮,界面显示Wi-Fi是否连接成功,连接成功时,手机界面显示“已连接”,反之显示“未连接”,系统重新启动Wi-Fi线程。接收来自主控制系统的数据,并对测试值进行判断,当水位测试值小于阈值时,手机界面上显示“水位低”,反之不显示。当水温测试值小于阈值时,手机界面上显示“水温低”,反之不显示。设置模式按钮,分别为“自动模式”和“手动模式”,自动模式下设置:对比测量水温水位值与设置阈值大小,发送数据给主程序,控制水泵和加热棒的自动打开操作,手动模式下设置:点击手机下方功能按钮,可以得到相应回复。

4 系统测试及结果分析

通过一根电源线,将电路板和5V稳定电压的充电宝连接起来,打开电路板上的电源开关,此时STM32上的指示灯亮起,红色是电源指示灯,蓝色是Wi-Fi指示灯。打开手机热点进行连接,当表示Wi-Fi状态的指示灯灭表示两者连接成功。此时会听到继电器响一声,由于模拟浴缸环境内水温较低,加热棒开始加热操作,测试结果表明系统连接电源成功,且连接Wi-Fi正常。

4.1 手机App测试

在手机App界面上可以实时检测水温水位情况,此时连接状态为已连接。点击模式按钮的自动模式,观察电路板上加热棒和水泵工作。选择模式按钮的手动模式,当点击页面最下方的6个功能按钮时,观察电路板做出回应。多次测试结果表明,手机App可以实现稳定远程控制。

4.2 语音识别功能测试

设备连接5V稳定电压后,语音识别模块红色灯亮起,几秒后熄灭,表明语音识别模块进入工作状态。说出唤醒词“你好,小益”,听到“在呀”的回复,用户发出不同的指令,观察系统给出不同回应。

4.3 系统总测试

使用输出5V稳定电压的充电宝连接电路板,观察指示灯的亮灭情况,打开手机设置好的热点,此时指示灯改变。唤醒智慧助手“你好,小益”听到“在呀”的回复。说出希望实现的功能,设备分别给出回应。使用安卓手机App连接电路板,对设备进行控制。设备同样会给出相应回应。实验结果表明,基于语音控制的智能浴缸功能可实现,并且具备本地语音控制和手机远程控制两种方式。

5 结束语

基于语音控制的智能浴缸的设计,前期根据课题进行市场调研和背景调查,分析系统所具备的功能,满足本地语音控制和远程手机控制两种方式。

实验结果显示,系統可以正常运行,但语音识别会存在误触发现象,与关键词相似会误识别为关键词,在说出唤醒词时,会发生因为音乐播放或者电机振动声音过大而无法识别的情况,今后需要对比进行改正。另外受到无法模拟真实浴缸环境条件的影响,一些水温水位的检测值不准确,无法排除其他因素的影响。

参考文献:

[1] 崔浩斌,刘伟.基于STM32单片机的智能家居控制系统设计研究[J].微处理机,2020,41(1):61-64.

[2] 陈喜春.基于LD3320语音识别专用芯片实现的语音控制[J].电子技术,2011,38(11):20-21.

[3] 范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016,16(9):52-56.

[4] 张越,张炎,赵延军.基于DS18B20温度传感器的数字温度计[J].微电子学,2007,37(5):709-711,716.

[5] 苏琳.基于HC-SR04的超声波测距器的设计[J].科技信息,2012(9):124-125.

【通联编辑:唐一东】

猜你喜欢
语音识别无线通信智能家居
基于Zigbee的无线通信技术在智能家居中的应用
通话中的语音识别技术
无线通信技术在测绘工程中的应用分析
基于LD3320的智能家居控制