谢 新 肖玥 许 婷 施凯悦
(南昌航空大学,江西 南昌330000)
近年来,由于人口老龄化的社会问题日益严重,独居老人的生活质量和安全问题频频受到社会的广泛关注,如何能让行动不便的老人甚至残疾人通过科技来提高生活质量,解决安全问题呢?针对这个社会问题,本文研究了一种以手势控制为核心,辅以语音控制来操控家用电器的多模智能家居系统。该系统着眼于日常生活中的普通电器,致力于通过采集自然简单的手势来实现对家居的控制调节,同时系统设计了自动控制模块,通过温度传感器和一氧化碳传感器采集周围环境参数来实现报警和自我调节,从而给老人们提供了更加舒适安全、更为人性化的生活方式。
本设计是基于STM32 多模智能家居控制系统,包括STM32 单片机,手势识别模块,语音识别模块,自动控制模块,蓝牙模块及DGUS显示屏。
1.1 以MPU6050 为核心的手势识别模块,将采集手势原始数据,并通过其自带的数字运动处理器实现姿态解算。
1.2 蓝牙模块将手势识别模块采集的手势数据传送至STM32单片机,实现手势识别模块与STM32 单片机之间的无线通信。
1.3 以LD3320 为核心的语音识别模块采集环境人声,并通过并行方式将语音数据传送至STM32 单片机。
1.4 自动控制模块是由温度传感器(DS18B20)和一氧化碳传感器(MQ-7)组成。
1.5 DGUS 屏实时显示各项环境参数和各个家居设备状态。
1.6 STM32 单片机将处理手势数据、语音数据以及环境数据,实现多模控制。本系统框图如下:
图1 系统结构框图
本设计中,手势识别模块的核心是MPU6050。MPU6050 是一款整合了3 轴陀螺仪和3 轴加速度的六轴传感器。通过其自带的数字运动处理器将原始手势数据进行姿态解算得到四元数后,STM32单片机将四元数转换成欧拉角数据,即俯仰角、横滚角及航向角数据。其中,手势识别模块与STM32 单片机之间采用的是串口RS232通信协议。
为了实现手势识别模块与STM32 单片机之间的无线传输,本设计采用了HC-05 蓝牙模块。
图2 蓝牙工作原理图
本设计中,语音识别模块的核心是LD3320 芯片。LD3320 是一款“语音识别”专用芯片, 由ICRoute 公司设计生产。该芯片集成了语音识别处理器和一些外围电路, 包括A/D, D/A转换器、麦克风接口、声音输出接口等[1]。主要流程是:语音信号通过麦克风输入,LD3320 芯片进行语音识别,如果为设定语音,则匹配成功,STM32单片机控制相应的家居设备。比如,用户在室内说:“开风扇1”,则室内的风扇1 开启。
自动控制模块由温度传感器(DS18B20)和一氧化碳传感器(MQ-7)组成。报警模块的核心是蜂鸣器。如图4 所示,第一部分是DS18B20 温度传感器电路图,其DQ 端口与STM32 单片机的I/O口PA0 相连,实现温度检测[3];中间部分是MQ-7C 传感器,其B 端口与STM32 单片机的I/O口PA5 相连,实现一氧化碳浓度检测;第三部分是报警模块,其信号线与STM32 单片机的I/O口PA1 相连,当温度或者一氧化碳浓度超过设定值时,实现报警。
本设计的显示屏采用的是迪文显示屏,即DGUS显示屏。其开发过程可以利用PC 端DGUS 开发软件辅助设计完成变量配置文件的过程,以此完成界面设计及配置,且DGUS显示屏与STM32单片机之间采用的是串口RS232 通信协议[2]。
图3 自动控制模块及报警模块电路图
本设计的STM32 单片机模块选用的是STM32F407ZGT6 为主芯片,具有112 个通用I/O 口、192 KB SRAM、1024 KB FLASH 及12 个16 位定时器等资源。该STM32 单片机接口丰富,资源配置灵活,满足本设计要求。
本设计的系统软件设计思路为:系统开启后,先进入紧急模式,自动控制模块将检测到的室内温度参数及一氧化碳浓度参数传送给STM32 单片机,STM32 单片机将判断这些参数,若其高于设定值,则连通蜂鸣器报警并开启排气装置;若室内温度和一氧化碳浓度正常,则判为安全模式。在安全模式下,用户可以进行手势控制与语音控制。手势控制:以MPU6050 为核心的手势识别模块识别原始手势数据后进行姿态解算,将处理后的手势数据通过蓝牙模块传输至STM32 单片机进行处理,若与预设手势匹配则控制相应家居设备;语音控制:以LD3320 为核心的语音识别模块采集环境人声后传输至STM32 单片机运用特征语音匹配算法与预设的语音信号比对,若比对成功则控制相应家居设备。本设计系统流程图如图4。
图4 系统流程图
本设计的家用设备主要是窗帘和风扇设备。通过定时器TIM13 通道1 以及TIM14 通道1 来分别产生PWM 输出信号,具体是通过改变CCRx 比较寄存器的值来改变PWM 输出的占空比,以此分别控制窗帘和风扇设备。以自动控制风扇的开启为例并介绍其具体流程:首先TIM14 及PWM部分初始化,再判断当前环境参数是否高于预设值,如果高于预设值则修改CCRx 比较寄存器的值并改变信号的占空比,使风扇开启。
本设计完成了基于STM32 的多模智能家居控制系统。该设计主要是通过手势识别模块和语音识别模块采集手势及语音数据,再传至STM32 处理器,以此控制相应的家用设备。并且设计了自动控制模块,通过温度传感器和一氧化碳传感器采集周围环境参数来实现报警和自我调节,而且DGUS 屏会实时显示家用设备状态、手势数据、语音数据及周围环境参数。本设计相比于其他智能家居系统,最特别的一点是无需联网,更适用于难以适应网络的老人们,而且操作简单灵活,更为人性化。在人口老龄化日益严重的如今甚至未来,该设计都能为独居老人创造一个舒适安全的生活环境。