田芳明,李腾
(黑龙江八一农垦大学信息技术学院,大庆 163319)
随着生活标准的提高,更多的人需求更好的家居环境,智能家居设计已成为世界的潮流。智能家居是以住宅为平台,利用综合布线技术、网络通信技术、智能家居—系统设计方案安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。在中国,智能家居系统的研究起步较晚,但发展较快。2003年,IGRS(Intelligent Grouping and Resource Sharing)标准工作组成立,现在,更多的人在研究智能家居控制的理论,但实际使用比较少。主要原因有以下几个方面:通信协议没有统一,产品不兼容和不成熟,复杂的操作和实用性差别,个性化不够,传统家电没有得到充分开发和利用。根据家庭用户的一般需求,设计了基于低功耗单片机MSP430f149 的智能家居监控系统,设计的系统不仅可以控制各种家用电子设备的开关,而且还可以查看它们的状态,同时可以动态检测各种家居环境参数,进行远程调控等。
系统设计分为上位机和下位机两个部分。包括MSP430f149 单片机核心控制模块,供电模块,串口接口模块,无线遥控模块,报警器模块,烟雾传感器模块,温湿度传感器模块,电风扇模块,电灯模块等。
下位机部分以MSP430f149 单片机为系统核心部件,用电风扇、电灯来模拟家用电器,通过继电器来控制风扇的开关、电灯的亮灭。电风扇、电灯的开关可以在上位机控制界面上操作,也可以通过无线遥控进行。用DHT11 温湿度传感器采集环境温度、湿度数据传送到上位机显示,并配有烟雾传感器,当发生火灾或燃气泄漏时进行报警。上位机控制界面用delphi 软件编写,分别有环境参数显示部分和控制部分,并配有flash 动画,让控制界面更加生动形象,利用spcomm 控件来实现上下位机的通讯。系统具体结构框图如图1 所示。
图1 系统总体结构框图Fig.1 The overall structure diagram of the system
监控系统由烟雾传感器、空气温湿度传感器、无线遥控模块、电源模块、电器控制模块及MSP430f149单片机构成。
经过比较,选择了TI 公司生产的MSP430F149作为微控制器[1]。MSP430f149 是16 位总线、自带flash 的单片机,具有统一的中断管理、丰富的片上外围模块、片内有精密硬件乘法器、两个16 位定时器、一个8 路的12 位的模数转换器、6 路P 口、两路USART 通信端口、一个比较器、一个DCO 内部振荡器和两个外部时钟,而且,该单片机可在超低功耗模式下工作,可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境。
2.2.1 烟雾传感器
MQ-2 气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其他可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。气体通过MQ-2 气体传感器,传感器判断是否含有液化气、丁烷、丙烷、甲烷气体等危险气体,如果有则把气体参数传给430 单片机P6.7 端口,单片机自带的AD 转化电路把传进来的模拟信号转化成数据信号传给单片机系统,系统分析参数与设定参数比较。如果大于设定参数蜂鸣器报警,并能在上位机上显示。
2.2.2 温湿度传感器模块
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20 m 以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择[2]。
系统采用单总线数据格式,一次通讯时间4 ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作流程如下:一次完整的数据传输为40 bit,高位先出。具体数据格式为:
8 bit 湿度整数数据+8 bit 湿度小数数据+8 bi 温度整数数据+8 bit 温度小数数据+8 bit 校验和。
数据传送正确时校验和数据等于“8 bit 湿度整数数据+8 bit 湿度小数数据+8 bi 温度整数数据+8 bit 温度小数数据”所得结果的末8 位。
PT2262/PT2272 是台湾普城公司生产的一种CMOS 工艺制造的低功耗低价位通用编解码电路,PT2262/PT2272 最多可有12 位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441 地址码,PT2262 最多可有6 位(D0-D5)数据端管脚,设定的地址码和数据码从17 脚串行输出,可用于无线遥控发射电路。
编码芯片PT2262 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272 接收到信号后,其地址码经过两次比较核对后,VT 脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262 不接通电源,其17 脚为低电平,所以315 MHz 的高频发射电路不工作,当有按键按下时,PT2262 得电工作,其第17 脚输出经调制的串行数据信号,当17 脚为高电平期间315 MHz 的高频发射电路起振并发射等幅高频信号,当17 脚为低平期间315 MHz 的高频发射电路停止振荡,所以高频发射电路完全受控于PT2262 的17 脚输出的数字信号,从而对高频电路完成幅度键控(ASK 调制),相当于调制度为100%的调幅。
由于MSP430 单片机采用的是3.3 V 电源供电,而市面上用的最多的是5 V 电源。因此,需要采用3.3 V 稳压芯片将5 V 电源转换成3.3 V 电源供给单片机使用。本设计中采用的稳压芯片是AMS1117。该稳压芯片是一个正向低压降稳压器,能够将5 V 电源直接转换成3.3 V 稳压电源。为了使输出的3.3 V输出电源的纹波小,在输出部分用了一个100 uf 的电容,另外在芯片的输入管脚也放置了一个100 pf的滤波电容,以减小输入端受到的干扰[3]。
设计中以电灯、电风扇为例进行电器的控制,控制原理电路如图2 所示。
图2 电灯、电风扇控制模块Fig.2 The control module of lamp and electric fan
下位机系统软件采用模块化设计方法,由主程序、串口通讯、AD 转化、无线遥控、DHT21 温湿度传感器等模块子程序构成。每个功能模块对于整体设计都是非常重要的,430 单片机通过软件程序才能很好地对外部的信息进行采集、分析、决策和执行,并和上位机进行通讯。
编程语言采用C 语言,采用IAR 软件编程环境。IAR 是瑞典IAR System 公司推出的一种非常有效的嵌入式系统开发工具,IAR 适用于开发基于8 位,16位以及32 位的处理器的嵌入式系统,其具有同一界面,用户可以针对多种不同的目标处理器,在相同的集成开发环境中进行基于不同CPU 嵌入式系统应用程序的开发。另外IAR 的链接定位器(XLINK)可以输出多种格式的目标文件,使用户可以采用第三方软件进行仿真调试[4]。
系统下位机软件整体流程图如图3 所示。
图3 软件流程图Fig.3 The software flow chart
程序刚开始运行时先进行各种子模块的初始化操作。然后打开定时器A 进入低功耗模式。每隔一定时间,程序进入定时器A 中断,每次中断进行3 项工作:
(1)扫描无线遥控键值,当检测到按键按下时进入键值处理函数中,从而控制电灯风扇。
(2)进行AD 转换,采集烟雾模拟电压值,超过设定的阀值时报警。
(3)对变量A 进行加1 操作,当A 大于50 时采集下位机数据传给上位机。同时系统可以接收上位机操作命令,控制风扇电灯。
上位机控制界面采用Delphi 开发,利用RS232通信接口标准,传输波特率为9 600 kbps。具体用户界面如图4 所示。
图4 智能家居上位机监控界面Fig.4 The PC monitoring interface of smart home
上位机与下位机具体通讯步骤包括初始化串口、建立握手信号、发送数据、接收数据和关闭串口[5]。
(1)初始化并打开串口
需要选择本次通信使用的串口,确定通信协议,即设置波特率、校验方式、数据位、停止位等属性,打开该串口。示例代码如下:
Comm1.BaudRate:=9 600;//波特率 9 600 bps
Comm1.Parity:=None; //奇偶检验无
Comm1.ByteSize:=8;//数据位 8
Comm1.StopBits:=1;//停止位 1
Comm1.StartComm;//打开串口
(2)建立握手信号
实现PC 机与单片机之间的通信,首先要调通它们之间的握手信号,握手信号可以随意选择某特定字符串,当PC 发出这样一帧数据后,通过接收事件能收到单片机返回的这一帧数据或特定的某字符串,则表示握手成功,系统通信正常。两者之间就可以按照协议相互传输数据。否则需重新建立握手信号。
(3)发送数据
在编写基于串口的计算机工业测控时,通常需要由PC 机向下位机发送命令以控制下位机的行为,同时向下位机发送有关数据,本系统利用Spcomm 串口控件向下位机发送数据。
(4)接收数据
在编写基于串口的计算机工业测控时,通常需要由下位机向PC 机发送数据以使PC 机了解系统的测试数据或下位机的运行状态,并进而控制下位机的行为。本系统利用Spcomm 串口控件接收下位机发送的数据信息。
(5)关闭串口
在系统开发中,应注意在不使用串口时应及时关闭串口,释放系统资源,否则可能会影响系统的其他应用。
根据智能家居监控这个特定应用目标构建了整个软硬件平台,设计的系统电路结构简单,应用界面具有人性化特点,下位机中充分的利用了MSP430 单片机的性能和内部资源,并可方便扩展,上位机实时显示监测数据,动态跟踪温、湿度变化,实现了高性价比、低功耗的目标,该系统实验室进行试验后,又在学生寝室中进行了测试,实现了温湿度的无线监测、燃气浓度监测、电灯等电器智能控制等功能,效果较好。
[1] 秦龙.MSP430 单片机应用系统开发典型实例[M].北京:中国电力出版社,2005.
[2] 陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2008.
[3] 王继存,谭峰.在线式水田渗透量监测仪的研究[J].黑龙江八一农垦大学学报,2012,24(4):71-75.
[4] 马忠梅,籍顺心,张凯,等.单片机的C 语言应用程序设计[M].北京:北京航空航天大学出版社,2009.
[5] 刘瑞新,万朝阳,董淑娟.Delphi 程序设计教程[M].北京:机械工业出版社,2009.