《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 一种基于STM32的智能家居控制系统
一种基于STM32的智能家居控制系统
来源:电子技术应用2012年第9期
陈致远1, 朱叶承1, 周卓泉1, 祝 磊2
(1. 杭州电子科技大学 信息工程学院,浙江 杭州 310018; 2. 杭州电子科技大学 生命信息
摘要: 设计了以STM32单片机为核心的智能家居控制系统。该系统以语音识别技术和GSM通信技术为基础,完成控制台、手持设备及门禁密码锁之间的通信,实现对室内家居电器的远程控制。实验结果表明,该系统运行稳定,具有广泛的应用前景。
Abstract:
Key words :

摘   要: 设计了以STM32单片机为核心的智能家居控制系统。该系统以语音识别技术和GSM通信技术为基础,完成控制台、手持设备及门禁密码锁之间的通信,实现对室内家居电器的远程控制。实验结果表明,该系统运行稳定,具有广泛的应用前景。
关键词: 智能家居;STM32单片机;无线通信

    智能家居(又称智能住宅)是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,是融合了自动化控制系统、计算机网络系统和网络通信技术于一体的家居控制系统。近年来,随着人们生活水平的提高以及计算机技术、通信技术和网络技术的发展,智能家居逐渐成为未来家居生活的发展方向[1]。因此在实现智能控制的同时,研制一个成本低、实用性强的智能家居系统便显得非常有必要。
     本文以STM32单片机为核心设计了一套智能家居控制系统。该系统以语音识别、GSM通信等技术为基础,通过无线通信、串口通信对系统各部分进行串联,用户可通过门禁密码锁验证身份后进入智能家居系统,利用总控制台设定室内家居的状态,亦可借助触屏手持设备、GSM手机等对室内家居进行手动或语音控制。
1 智能家居系统硬件平台
    建立智能家居控制系统,硬件是关键和基础,它对整个系统的稳定性、控制和反馈的准确性、节能性都有直接影响。本智能家居系统选用了以下硬件设备:
    (1) STM32F103VET6微处理器及STC12-
C5A60S2微处理器
    系统中手持设备的微处理器选用STM32F103VET6,总控制台及门禁密码锁部分选用STC12C5A60S2。
    STM32F103VET6基于ARM Cortex M3 32 bit的RISC内核,工作频率最高可达72 MHz,内置高速存储器(64 KB的闪存和20 KB的SRAM),丰富的增强I/O端口和连接2条APB总线的外设[2]。
    STC12C5A60S2是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051。内部集成MAX810专用复位电路、2路PWM、8路高速10位A/D转换。
    (2) 语音识别芯片 LD3320
  LD3320芯片是一款语音识别专用芯片。该芯片集成了语音识别处理器和一些外部电路,包括A/D、D/A 转换器、麦克风接口、声音输出接口等。可以实现语音识别、声控及人机对话功能,并且可以任意动态编辑、识别关键词语列表。
    (3) GSM模块TC35
    TC35是一款双频900 MHz、1 800 MHz高度集成的GSM模块,具有性能稳定,功耗低及易于集成的特点。
    (4) 无线模块nRF24L01
    nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段之间。内置频率合成器、功率放大器、晶体振荡器及调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
    (5) 3.2英寸TFT真彩触摸屏显示模块
     该模块功耗低,支持8 bit、16 bit总线接口,模拟I/O控制,彩屏模块上配置ADS7843触摸控制器,支持一个SD卡(SPI方式),支持一个SPI的DATA Flash,构成人机交互图形界面。
2 智能家居系统设计及实现
    本智能家居系统主要包括手持设备、总控制台、门禁密码锁3个部分。总体结构如图1所示。

    该系统通过微处理器完成整体的控制功能,利用无线通信及串口通信对系统各部分进行串联。通过门禁密码锁部分完成身份认证功能,接收处理短信指令,实现户外控制;利用手持设备实现在室内任意地点的实时控制;通过总控制台接收指令,最终完成各项控制操作。
    本智能家居系统的操作方式如下。
    (1)身份验证
    门禁密码锁通过串口完成与控制台的通信,设定密码存入STC12C5A60S2单片机EEPROM,TFT触摸屏显示人机界面。单片机获取输入信息,进行比对处理后将结果传至控制台。
    (2)语音控制
    语音信号通过语音设备输入,STM32F103VET6单片机通过SPI总线接收。单片机处理后通过SPI传输指令至nRF24L01无线模块。无线模块发送指令至总控制台,总控制台接收处理信息,完成相应的控制步骤。
    (3)TFT触摸屏控制
    触摸屏操作产生电平信号,经过转换后通过串行总线传输至STM32F103VET6单片机接受处理。
    (4)短信控制
    GSM模块接收短信,经STC12C5A60S2单片机读取后,通过串口传输发送指令至总控制台等候处理。
    (5)总控制台操作控制
    TFT触摸屏显示人机界面。STC12C5A60S2单片机获取操作信息并作出相应处理。
3 智能家居系统软件设计
    整个智能家居系统以STM32微处理器为控制核心,使用C语言编写。智能家居系统的软件可分为手持设备、总控制台以及门禁密码锁3个部分,主要由底层驱动程序、系统主程序、显示子程序、无线通信子程序、语音识别子程序及GSM子程序等部分组成。手持设备的软件控制流程如图2所示。总控制台的软件控制流程如图3所示。门禁密码锁的人机界面软件控制流程如图4所示。

3.1 语言模块软件设计
    语音识别是本系统的重要功能之一。语音识别程序的设计,参考了LD332X开发手册[3],采用中断方式工作,其操作顺序如下:
    (1)初始化
     在初始化程序里,主要完成软复位、模式设定、时钟频率设定、FIFO设定等程序设置[4]。
    (2)建立识别列表
    识别列表在LD3320中建立,规则是每个识别条目为标准普通话的汉语拼音(小写),每两个字(汉语拼音)之间用一个空格间隔。每个识别条目对应一个特定的编号(1个字节),不同的识别条目的编号可以相同,且不用连续,但数值要小于256(00H~FFH)。LD3320最多支持50个识别条目。
    (3)开始识别
    设置相关的寄存器,开始语音识别。在LD3320芯片正式开始识别之前设置当前状态(例如:LD_ASR_RUNING状态或者LD_ASR_FOUNDOK状态)。ADC通道为麦克风输入通道,ADC增益即麦克风音量,可设定值00H~7FH。本系统采用40H~6FH的设定值。设定值过大容易造成识别启动过于敏感,产生误识别;设定值过小则需要近距离说话才能启动识别功能。
   (4)响应中断
    麦克风采集到声音后,将产生一个中断信号。中断程序根据寄存器的值分析结果,通过读取BA寄存器的值获取候选答案个数;读取C5寄存器里的值,获取最正确答案的对应编码。
3.2 无线模块软件设计
     nRF24L01无线传输程序的设计采用增强型的ShockBurstTM模式下工作。典型的双向链接为:发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失。一旦数据丢失,则通过重新发送功能恢复丢失的数据。
    发射数据:设置nRF24L01为发射模式;将地址TX_ADDR和数据TX_PID按照时序由SPI口写入nRF24L01缓存区,TX_PLD在CSN为低时连续写入,TX_ADDR在发射时写入一次;CE置为高电平并保持10 ?滋s,延迟130 ?滋s后发射数据;开启自动应答,nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS置高,清除TX_PID;若未收到应答,则自动重新发射该数据[5]。
    接收数据:设置nRF24L01为接收模式,延迟130 ?滋s后进入接收状态等待数据。当检测到有效数据时,存储数据包,同时进入发射状态回传应答信号。
3.3 GSM模块软件设计

 


    TC35模块采用AT贺氏指令。单片机可以通过正确的AT指令对TC35模块进行初始化和短消息的接收发送。对短消息的控制有Block模式、PDU模式和Text模式。使用Block模式需要手机生产厂家提供驱动支持。目前PDU模式已取代Block模式,而Text模式不支持中文,因此本系统使用PDU模式进行短消息的接收和发送[6]。
    本文设计了一个基于STM32的智能家居控制系统。由STM32及STC12C5A60S2微处理器完成整体控制功能,通过移动手持设备、总控制台及门禁密码锁系统3部分实现人机界面在家居系统的智能化应用,以期达到人机交流的最优化;该系统具备识别性好、安全性高、节能环保、易控制、抗干扰及成本低等优点。系统实验阶段运行良好,其实验成果将为家居系统智能化的进一步推广应用提供新的方向。
参考文献
[1] 张逢雪,王香婷,王通生,等.基于STM32单片机的无线智能家居控制系统[J]. 自动化技术与应用, 2011,30 (8):
98-101.
[2] STM32F103x8/B增强型系列中容量产品数据手册[EB/OL].(2009-04) [2012-04]. http://www.stmicroelectronics.corn.Cn/stonline/mcu/MCU-Pages.htm.
[3] ICRoute.LD332X开发手册[EB/OL]. [2010-10-13].http:// www.icroute.com/web_cn/DownLoad.html#LD332X-Manual.
[4] 苏鹏,周风余,陈磊.基于STM32的嵌入式语音识别模块设计[J].单片机与嵌入式系统应用,2011,11(2):42-45.
[5] 时志云,盖建平,王代华,等.新型高速无线射频器件nRF24L01及其应用[J].国外电子元器件,2007(8):42-44.
[6] 刘涛,张春业,韩旭东,等.基于手机模块TC35的单片机短消息收发系统[J].电子技术,2003,30(3):36-38.

此内容为AET网站原创,未经授权禁止转载。