谢永红,李威
(华南理工大学广州学院电子信息工程学院,广东广州 510800)
随着科学技术的进步和生活水平的不断提高,人们对家电设备的控制方式提出了更高的要求,实现对家电的智能化、网络化控制成为家电系统重要的发展和研究方向[1-2],它可以为用户提供更加舒适、便利的生活方式和用户体验。文中设计了一款智能语音家电控制系统,利用物联网技术将各种家电设备进行组合,形成一个家电设备控制网络。该系统可以通过语音、手机应用程序和人机交互界面等多种方式实现对家电的控制,突破了传统家电本地控制和单一控制的局限,实现了远程异地控制。
文中设计的家电控制系统主要由语音识别部分、底层执行器件控制部分以及图形化控制部分组成,其总体设计框图如图1 所示。
图1 系统总体设计框图
语音识别部分通过语音识别模块,识别用户发出的语音指令,利用WIFI 模块将系统连接到云服务器上,手机应用程序可以登录到云服务器,实现对家电系统的远程访问和控制。利用ZigBee 模块连接到ZigBee 网络,从而控制终端家电设备。底层执行器件控制部分主要通过I/O 端口控制RGB 彩灯、步进电机和继电器等执行器件。图形化控制部分采用STM32 芯片和实时操作系统,通过人机交互界面,进行可视化控制,实现任务间的跳转与数据显示。图形化控制部分同时带有陀螺仪、环境传感器、指纹识别模块和摄像头模块,利用IIC 协议读取陀螺仪模块的数据,通过串口与环境传感器模块和指纹识别模块连接,并将摄像头模块所拍摄的图像数据保存在SD 卡中。
家电控制系统的各个部分之间通过CAN 总线、LoRa/蓝牙等方式进行连接,完成相互间的数据通信与信号同步,从而形成一个整体。系统可以将控制数据的指令发送给执行器件,并将采集到的环境数据发送给用户,实现对家电的操控和信息数据的读取。
家电控制系统的硬件电路设计主要包括各组成部分主控制器的选择、语音识别电路设计、底层执行器件控制电路设计以及各个部分之间的通信模块电路设计。
由于家电控制系统低功耗、微型化的要求,故整个家电控制系统的硬件电路采用嵌入式芯片作为主处理器。语音识别部分的主控芯片MCU1 和底层执行器件控制部分的主控芯片MCU2 使用的是STM32 F103C8T6 处理器,图形化控制部分的主控芯片MCU3 采用STM32F429IGT6 处理器。STM32F429 IGT6 处理器与STM32F103C8T6 处理器相比,外设接口多、处理速度快、功能更强大[3-5],可以满足搭载实时操作系统和用于图形界面设计的需求。
语音识别模块采用SYN7318 模块,由语音识别、合成控制两个部分组成,能够识别非特定人的语音信号[6-8]。用户通过向语音识别模块说出定义好的语音词条命令,就可以实现用语音识别来控制家用电器的功能。
语音识别模块的接口电路图如图2所示。SYN7318模块通过RXD、TXD连接主控MCU1的串口,PINYUYI接口用于连接喇叭。语音识别模块把从麦克风采集到的语音指令与设定好的词条进行匹配,识别成功后,得到控制设备的词条ID,发送给主控MCU1。主控对接收的数据进行处理,并通过通信模块发送给执行器件,从而控制执行器件的动作。主控也可通过串口发送命令给SYN7318 语音识别模块,语音识别模块在收到命令后,合成为语音信号输出,通过喇叭进行播放。
图2 语音识别模块接口电路图
家电控制系统采用CAN 总线、WIFI模块、ZigBee模块和LoRa/蓝牙模块实现各部分之间的连接和数据通信,其各个模块的接口电路图如图3 所示。
图3 通信模块接口电路图
WIFI 模块采用ESP8266 模块,主要完成MCU1与云服务器之间的通信。WIFI 模块通过RX、TX 连接主控MCU1 的串口USART3,LED、KEY 用于状态的显示以及通信模式的选择[9-10]。
ZigBee 模块采用WLT2420SZ 模块,与主控MCU1 的串口USART2 进行连接,主要完成家电终端设备的组网。ZigBee 无线通信网络功耗低、通信可靠[11-12]。当MCU1 接收到数据后,对数据进行处理,并将处理好的数据通过串口发送给ZigBee 模块。ZigBee 模块接收到数据后再转发给ZigBee 网络的终端节点,进而控制空调和室内灯等设备。
MCU1 和MCU2 之间通过CAN 总线进行连接和数据交换通信,CAN 总线使用TJA1050 芯片实现对通信数据的传输和控制。CAN 总线采用差分信号进行传输,因此具有抗干扰能力强、传输距离远、速度快等优点[13-14]。
MCU3 与MCU2 之间进行通信,可以根据通信距离、传输速率等实际需要,选择使用LoRa 模块或蓝牙模块,两者都是通过串口与主控芯片进行连接,完成数据的收发操作。LoRa 模块、蓝牙模块分别采用E32-433T20DC 模块和HC-05 模块,利用开关KEY来设置通信模式,可以选择使用LoRa 或者蓝牙通信方式,并通过LED 灯进行直观显示。LoRa 模块的通信距离远、通信节点多、功耗低[15],而蓝牙模块相对于LoRa 模块来说,速率较快、连接简单、通用性强[16-18]。
系统软件设计总体架构如图4 所示。系统软件分为3 部分进行设计,分别是语音识别、底层执行器件及图形化控制系统。每个部分的软件根据其实现的功能不同,由不同的模块组成,其中语音识别程序设计和图形化控制系统程序设计是整个系统程序设计的重点。
图4 系统软件设计总体架构
语音识别模块软件设计流程如图5 所示。首先对各个传感器模块、通信协议及主芯片时钟等进行初始化操作,待初始化完成后,主控会接收传感器和通信模块的数据,并进行数据分析。如果接收到来自语音识别模块的数据帧,将数据与预先存储好的语音识别关键词进行匹配,判断数据是否有效。如果数据无效,则继续等待接收下一次的数据帧。如果数据有效,则对数据进行处理,并将格式化好的数据,通过通信模块发送给其他的主控器件,来控制执行器的动作。待数据发送完成后,继续等待下一次有效数据的到来。
图形化控制系统软件采用UCOSIII 实时操作系统和Stemwin 来构建人机交互界面,可以实现室内环境数据的实时监测与使用人机交互界面控制底层执行器件。通过点击触发界面的各个应用,以实现不同的功能,如指纹录取与删除、智能门禁控制、查看拍摄图片、显示室内温湿度、空气质量等环境数据及时钟日历、展示陀螺仪坐标状态、空调和灯光控制等。各个功能任务通过实时操作系统进行轮转调度,以达到快速响应的效果。使用LoRa/蓝牙通信模块来收发数据,当接收到数据帧信息后,对数据帧所包含的数据进行提取与代入,通过人机交互界面可以进行查看与控制。
图形化控制系统软件运行流程图如图6 所示。首先进行系统的初始化,初始化完成后进入图形化主界面,主界面显示的是各个任务的功能应用,接下来判断是否接收到交互界面的点击数据,如果没有收到点击数据,则主界面不进行功能任务的跳转。如果收到交互界面的点击数据,则通过通信模块读取和同步数据,并进行规则化处理。处理完毕后,从主界面跳转进入到所选择的功能界面,并执行相应的底层器件模块动作,然后判断用户是否有对设定的数据进行修改,如果不需要修改,则可以返回主界面。如果需要对设定的数据进行修改,则将修改后的数据打包成数据帧,通过通信模块发送给底层器件模块执行相应的动作。
图6 图形化控制系统软件流程图
针对嵌入式语音控制家电系统,目前主要测试了系统语音识别的可靠性和不同控制方式下系统响应的成功率。
1)语音识别测试
在不同的使用环境中,分别对系统语音识别的准确性、距离进行测试。测试时同一人用同样大小的音量,分别在安静的环境和有噪音的环境中,在不同的语音距离情况下,对系统进行语音控制,记录系统的响应结果,其测试结果如表1 所示。
表1 系统语音识别测试结果
从表1 的测试结果来看,外界的噪音和语音距离会造成语音识别准确率下降。当外界噪音较小,语音识别距离较近时,识别的准确率较高。
2)功能测试
通过手机应用程序、人机交互界面、语音分别对系统进行控制,测试系统响应的成功率。测试结果如表2 所示。
表2 系统整体功能测试
从表2 的结果可以看出,在3 种不同控制方式下,系统响应的成功率都比较高,达到95%以上,能够满足用户的需求。
该文结合物联网技术、嵌入式技术和语音识别技术,设计了一款智能家电控制系统。测试结果表明,该系统工作稳定可靠,实现了家电系统的语音识别控制、手机应用远程控制和图形化用户界面控制。用户可以在室内或远程不同情况下,随时随地通过该系统来实现对家电的控制和家庭环境数据的获取。