基于ZigBee节点的智能家居系统语音控制设计
通信电平转换。上位机通过串口接收语音子节点的控制指令数据,将数据处理后用文字显示控制命令,并通过与ZigBee主节点之间的串口通信,向子节点发送控制指令数据。
单片机SPCE061A的UART数据格式只有一种,需按照规定的数据格式与CC2530模块进行串口通信。该程序在凌阳科技的μ’nSP IDE集成开发环境下进行开发,并采用凌阳科技提供的语音处理函数以及函数库。语音子节点程序流程图如图3所示。
由于单片机SPCE061A在进行语音识别时,一次性只能同时识别5条语音指令。为了增加其所能识别的语音指令,本文采用了分组法,能够在存储器允许的情况下识别多条语音指令。在烧录完程序首次使用该节点时,要对该节点进行训练。在该节点的语音提示下,依次录入4组命令,每组分5条语音指令,为了提高识别的质量,每条命令需要训练两遍。在语音训练结束后,启动该智能家居系统就能够对家居进行语音控制,且能够实现非特定人语音识别。
为了利用语音命令实现ZigBee语音子节点的"重新训练","停止识别"等控制,方便实际应用,本文在程序设计过程中采用goto无条件语句,部分程序源代码如下:
利用学习型红外收发模块对红外电器进行控制时,首先要对控制信号进行学习,将要发送的编码与CC2530输出的串口指令相对应。控制指令电器红外控制ZigBee子节点的程序流程图如图4所示。
4 实验及结果
4.1 实际应用举例
在对电动窗帘进行开关控制时,首先将本系统的电器控制继电器子节点与电动窗帘的开关量电机控制器相连接,准备好硬件电路。然后,通过串口编程使上位机的ZigBee主节点在接收到语音子节点的窗帘开关命令时,向ZigBee子节点发射窗帘控制信号,从而当控制窗帘的继电器子节点接收到控制指令时,能够控制窗帘执行相应的开关动作。通过如依次说出"控制器"、"打开"、"窗帘"的命令时,语音子节点语音提示设备打开,主机界面显示设备所处控制的状态,同时窗帘打开。
该语音控制智能家居系统能够实现家用电器的联动。例如,可以通过依次说出"控制器"、"家庭影院"的语音命令。这时上位机能够按照程序设定逐步延时:打开红外遥控投影仪,红外遥控幕帘,关闭窗帘,关闭部分灯光等来开启家庭影院模式。让人们体验真正的家居智能化。
4.2 ZigBee控制节点通信距离测试结果
(1)空旷场合测试。测试条件:CC2530模块采用PCB天线,发射功率在1 mW,发射频率在2.4 GHz。
测试结果:通信距离最远可达120 m。
(2)居家场合测试测试条件:同上。测试结果:由于墙体阻碍,通信距离约在20 m。
4.3 语音控制红外型电视开关测试
在语音识别程序设计中,为了增加语音节点所能识别命令的条数而采用了分组法。利用红外遥控子节点对电视遥控器的开/关信号进行学习,对语音子节点进行训练结束后,启动系统。依次说出"控制器"、"打开"、"电视"连续三条命令,再说出"控制器"、"关闭" "电视"连续三条命令。测试结果如表1所示。
5 结语
将具有数字语音识别功能的SPCE061A单片机与低功耗、低成本的ZigBee技术相结合,开发了基于单芯片CC2530的ZigBee语音节点,并利用ARM11架构的开发平台S3C6410作为网关,WinCE 6.0的操作系统,有着良好的人机交互界面,来共同应用于智能家居系统的语音控制中,实现了对开关型及红外型家电设备的语音控制和家居智能化,实现人与家电之间的对话,方便了人们的生活,具有广阔的应用前景。
- 主流ZigBee芯片大盘点(2):德州仪器 CC2530(07-20)
- 语音识别技术原理及实用系统设计汇总(11-19)
- 基于MSP430和CC2530的温室大棚数据采集系统设计(05-02)
- 基于CC2530的语音侦听节点设计方案(05-02)
- 复位与JTAG接口电路设计图(08-16)
- 基于ZigBee温室环境监测系统电路设计(09-08)