用离线语音做个简易版智能家居系统(stm32)

最近课程项目要求自己动手做个东西,美其名曰融合平时所学,最后想了半天准备先做个低配版的天猫精灵,也算实现个小项目吧,目前实现了简单的语音交互,能播报温湿度以及感知环境光照的功能,当然还能控制一个小LED灯,之前还想做个红外学习,实现对于家电红外的控制,最后因为模块的硬件没跟上失败了,先埋个坑吧,有时间再继续更新。其实主要还是靠各个模块,感觉就像在搭建电子积木,难度不大,可以用来作为stm32入门练手的一个好项目。

  • 总体思路
  • 用离线语音做个简易版智能家居系统(stm32)_第1张图片

总结思路其实也挺简单的,作为信息输入主要有三个部分:环境感知、语音识别、红外接收。其中环境感知主要通过温湿度传感器以及光敏传感器实现,获取当前环境的温湿度以及光照强弱的数据并发送给单片机,实现环境感知功能;语音识别功能基于集成语音模块实现,将当前的环境的语音进行有针对性的识别,当检测到命令语句后将发送指定数据给进行解码,将编码信息发送给单片机进行处理。

而输出部分同样分为三部分:LED灯控制、语音播报、红外发射。LED灯的亮灭主要通过继电器,从而实现对于环境光照的调节功能;语音播报基于语音模块以及扬声器实现,可实现简单的语句回复、事件提醒以及播报当前温湿度数据等功能;红外发射模块可将单片机传输来的数据进行编码后发射对应红外信号。

用的模块大体如下:

用离线语音做个简易版智能家居系统(stm32)_第2张图片

(图片来自购买界面,侵删)

 电源与温湿度传感器、光敏就不多介绍了,但是这个LD3322语音模块还是很好用的,网页设置好后等着下载固件就好,很方便,串口、变量播报也很方便。网页开发也挺方便的。本来以为难度都在语音识别上,结果这个模块直接就把我难度大幅降低,也不贵。

用离线语音做个简易版智能家居系统(stm32)_第3张图片

  • 程序

程序来说,难度不大,开两个串口,一个用于和语音模块通信,一个用于接收红外解码信息,温湿度传感器和光照传感器的数据读取例程也很多,加上继电器控制LED灯,把这些整合起来,写点逻辑关系,基本上就可以了。

用离线语音做个简易版智能家居系统(stm32)_第4张图片

  •  实现过程

重点在语音模块上,语音输入的命令,大体可分为三类。

第一类:简单离线回复:不需要进行其他操作,直接回复设置好了的语句就行。比如设置了当听到了“你好”时回复“你好”,这部分由LD3322语音独立就能完成。

第二类:控制类:即“开灯”、“关灯”这类的命令词,这时候需要语音模块通过串口发送指定的数据至单片机,让单片机进行对应的操作,同时播放特定的回复语句,例如:“好的,这就打开台灯”。

第三类:单片机触发:当环境光照较暗时可以把灯打开,同时发送指定数据到语音模块,语音模块播报“检测到环境光照较暗,为你打开台灯”。或者是单片机将温度发送到语音模块,然后他能播报例如“现在温度是26摄氏度”(这点当时发现的时候还是很惊艳的)。

  • 效果

等有实践的时候录个视频吧,现在就先直接把课程报告中的文字描述写上来。

由于本次项目成果通过语音实现,项目成果难以展示,因此只能通过总结性文字进行举例。下面利于“人”与“机”的对话来进行成果展示:

语音交互

通过语音模块,可实现基本的语音控制与语音交互功能。但由于语音模块为离线模块,故只能实现少数的固定语句识别与固定语句回复。例如在设置固定的语句后:人:“今年是党的多少岁生日?”机:“今年是2021年,是中国共产党的百年华诞。”

照明灯具控制

通过语音模块与单片机的交互,可以实现控制功能,语音控制LED灯的开关,其原理为语音模块识别到对应的固定语音后,发送对应的数据给单片机,单片机进行LED灯的开关,即可实现该功能。

环境感知

通过温湿度传感器以及光敏传感器,可以较为准确地读取到当前环境下的温湿度数据以及光照强度数据。因此,通过单片机可实现智能控制以及播报。例如在较暗的环境下,单片机会自动将LED灯开启;在较明亮的情况下,可以实现自动关闭LED灯。当然,人的指令的优先级高于自动执行的优先级,因此,在人的语音指令控制下,也可以实现明亮环境亮灯、昏暗环境关灯的功能,从而实现人在不同情境下的不同要求。

此外,由于语音助手具备变量播报功能,因此,也可以通过语音指令让单片机读取温湿度传感器数据并通过串口发送至语音模块,由语音模块进行播报,实现对于当前环境的准确化描述。

红外学习

通过串口通信可将控制信号传输给红外编码模块,进而控制红外发射器发射特定频率的脉冲,达到实现遥控空调的目的。控制原理图参见下图1。在整个过程中,仅用语音作为唯一的控制信号,控制三个常见家具,基本可实现简单智能家居控制器的功能。

课程项目做的急,代码很杂乱也不规范,就先不放上来了,要是有朋友想要的话,留言一下邮箱,我来发。

你可能感兴趣的:(stm32,stm32,语音识别,嵌入式硬件,arm,单片机)