一种基于Arduino的智能家居控制系统*
2014-06-03张维华白云峰
崔 阳,张维华,白云峰
(哈尔滨理工大学 电工电子教学与实训中心,黑龙江 哈尔滨150080)
1984年世界上第一幢智能建筑在美国康涅迪格州出现。它将家庭中各种与信息相关的通信设备、家用电器和家庭保安装置连接到一个家庭智能化系统中进行集中的或异地的监视、控制和家庭事务性管理,并保持这些家庭设施与住宅环境的和谐与协调[1]。如今这种建筑正成为都市人青睐的家居体验方式。
2003年以来,海信、清华同方等公司也相继加入到智能家居行列,但目前的智能家居系统还缺乏统一明确的国际标准,许多公司开发出的产品都是基于自己组建的网络和信息交换协议,很多产品是针对特定的组网环境开发的,部分核心技术没有对外公布,技术复杂,直接导致了使用范围的局限性。由于缺乏对应的第三方产品,各个接入设备之间不能兼容,互操作性差,不利于产品的扩充。
1 系统的硬件设计
以电子系统为核心的家居系统是未来智能家居的发展趋势[2],本文介绍一种基于Arduino的智能家居控制系统。建立智能家居控制系统,硬件是关键和基础,它对整个系统的稳定性、控制和反馈的准确性、节能性都有直接影响[3]。智能家居控制系统的硬件部分主要包括Arduino控制器、传感系统、无线控制系统、语音播报部分和液晶显示等。其中,传感器部分由温湿度传感器和气体传感器三部分组成,用以检测室内温湿度及有害气体。无线控制部分由GSM和无线语音控制模块两部分组成。系统结构如图1所示。
图1 系统结构框图
1.1 Arduino控制器
Arduino是一个开源的单片机电子设计平台,硬件部分由Atmel AVR单片机、I/O接口及相关电路组成,软件部分则包括标准的程序编译器和程序下载器,具有使用类似 Java和 C语言的 Processing/Wiring开发环境[4]。相对于传统的单片机,Arduino的特点主要包括免费、开源的IDE,开源的硬件(包括原理图和PCB图),所有资源都可以免费下载,并且可依需求自己修改,方便与传感器及各式各样的电子组件连接。本系统的主控制器采用Arduino Mega2560。Arduino Mega2560是采用USB接口的核心电路板,核心是ATmega2560单片机,同时具有54路数字输入/输出口 (其中 16路可作为 PWM输出),16路模拟输入,4路UART接口,一个16 MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。控制板通过标准USB线缆与电脑连接,便于在线进行程序调试[5]。
1.2 无线语音模块
无线语音采用YS V0.7模块,其核心是 LD3320语音识别专用芯片,如图2所示。模块将LD3320芯片与周围必要的容阻件集成在一块PCB上,将LD3320的芯片管脚通过2×20的排针引出,方便用户在面包板或者标准DIP40插座等设备上对LD3320芯片进行快速开发。模块主控MCU是51内核的单片机STC90LE52,电源设计采用的是LM1117-3.3芯片,为 LD3320提供3.3 V电压。将主控MCU的管脚连接到LD3320模块的排针上,同时给LD3320模块提供合适(4 MHz~48 MHz)的晶振信号,在主控MCU中编写程序进行LD3320的语音识别。
图2 LD3320内部电路的逻辑框图
1.3 GSM模块
目前,国内已经开始使用的GSM模块有Falcom的A2D系列、Wavecome的WMO2系列、西门子的MC39i系列、爱立信的DM10/DM20系列、中兴的ZXGM18系列等,这些模块的功能、用法差别不大[6]。本设计GSM控制部分采用MC39i模块,MC39i是西门子公司推出的新一代双频 GSM/GPRS通信模块的无铅产品,其简洁的封装是很多应用系统中无线高速数据传输的理想解决方案,可以进行数据、语音、SMS和FAX各个方面的应用,且功耗低,为用户提供了永远在线、高速度、更简单的移动数据通信接入手段,通过独特的40脚的连接器(ZIF)实现电源连接、指令、数据、语音信号及控制信号的双向传输。GSM是具有电话报警功能的监控系统,系统利用GSM网络对房屋进行远程控制,当系统检测的房屋内有危害情况时,通过GSM模块给用户发送短信告知用户。同时可以利用GSM模块对电器进行控制。
1.4 传感器模块
1.4.1 温湿度传感模块
温湿度传感系统采用DHT11温湿度传感模块,外形及原理图如图3所示。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,采用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,可与高性能单片机相连接,达到检测环境温湿度的目的,具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
图3 DHT11温湿度传感模块外形及原理图
1.4.2 气体传感模块
气体传感系统采用MQ-2气体传感模块,原理图如图4所示。MQ-2传感器是基于QMNG1探头的气体传感器,采用MQ-2型气敏元件,可以迅速、灵敏地检测到空气中的烟雾以及甲烷气体。通过3P传感器连接线直接插接到Arduino传感器扩展板上,结合蜂鸣器模块与继电器模块,实现烟雾报警、甲烷泄露报警和自动烟雾排风等功能。
1.5 液晶显示模块
液晶显示采用LCD1602B模块。LCD1602B字符型液晶模块是一种用5×7点阵图形显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等。
图4 MQ系列传感器模块原理图
图5 主程序流程图
2 系统的软件设计
利用温湿度传感模块、气体传感模块对室内环境进行检测,将采集量和设定的预设置进行比较,并将检测结果反馈到Arduino中央控制器,从而控制风扇、排气扇等家电设备,自动对室内环境进行调节;利用语音控制模块对Arduino中央控制器发送命令,实现对家电的无线语音控制;通过GSM模块实现短信控制家电功能;利用液晶模块显示出各部分信息,通过语音播报模块进行外部通信。通过以上系统之间的联系与通信,实现整套家居的智能控制系统。
系统软件采用Arduino IDE开发环境进行设计,调试完成后下载到Arduino Mega2560控制器中运行。系统程序运用C语言编写,结合一些主要函数来实现各个模块对应的功能。程序由系统主程序、初始化子程序、语音控制子程序、GSM控制子程序、传感器检测子程序等模块组成,系统主程序流程图如图5所示。
3 系统的功能
(1)语音YS V0.7模块通过对照识别人语言中的敏感词,经过蓝牙向Arduino中央控制发出特定字符,中央控制器通过处理接收到的字符,控制外部模块。
(2)将已准备好的电话卡,插入GSM模块的卡槽里,当成功识别所插入的卡后,指示灯会有规律地闪烁。这时,通过手机向GSM模块发送带有特殊符号的短信,模块会自动识别字符从而控制继电器的工作。如:向GSM发送“on”,则 GSM 控制继电器,打开开关;发送“off”则关闭开关。
(3)DHT11温湿度传感模块,通过不断地对周围环境进行检测,将得到的数据发送至中央控制器,中央控制器处理得到数据后,将数据显示在LCD1602B液晶显示模块上。实时将温度与设定温度阈值进行比较,超过阈值时,自动启动风扇,调节温度。
(4)将MQ-2气体传感模块直接插接到Arduino传感器扩展板上。当检测到的有害气体达到设定阈值后,蜂鸣器发出警报声,同时Arduino控制引脚的电平,形成电位差使排气扇开始工作。
经过试验证明,基于Arduino的智能家居控制系统运行稳定。采用无线模块,温湿度、危险气体等采集感应模块,液晶及语音输出设备等主要的功能性部件,构建了一套智能家居系统。系统具有语音及GSM短信控制家电、烟雾防火报警等功能,采用液晶显示及语音播报反映环境温湿度及自动判断外部环境、自动处理异情的功能;采用无线模块起到无线控制功能,方便操作,适用于现代家居小区,更适合行动不便的老人家庭,具有巨大的推广使用价值和开发潜力。
[1]孙玉娟.智能家居借势突围从智慧城市到美丽中国[J].中国住宅设施,2013(1):86-87
[2]刘主链,宋跃,何志辉,等.无线模块与GSM实现的智能远程家居控制系统[J].计算机测量与控制,2011,19(9):2133-2135.
[3]陈致远,朱叶承,周卓泉,等.一种基于STM32的智能家居控制系统[J].电子技术应用,2012,39(9):138-140.
[4]纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,2012,35(15):161-163.
[5]BANZI M.Getting started with Arduino[M].California:O′REILLY,2009.
[6]林添成.基于GSM的远程家居控制系统[J].装备制造技术,2010(5):75-76.