基于ZigBee的智能家居系统
扫描二维码
随时随地手机看文章
1 系统总体架构
系统包括网关系统、各种传感器、服务器和手机终端,如图1所示。网关系统由电源部分、STM32控制器、ZigBee模块、GSM模块、WiFi模块、蓝牙模块以及网口构成。传感器包括温湿度传感器、气体传感器、人体感应传感器、继电器模块等。各传感器分别通过ZigBee传送数据到网关,网关通过WiFi以UDP协议上传数据到服务器。手机终端既可以访问服务器检测各传感器的状态而且可以发送控制指令到达网关,再从网关通过ZigBee控制继电器,从而实现远程家电控制。
2 硬件原理设计
2.1 网关硬件原理设计
网关采用输出为5 V的电源适配器供电,通过LM117电源芯片稳压到3.3 V给系统供电。主控制器芯片采用意法半导体公司的STM32F107芯片;ZigBee芯片采用TI公司的CC25 30,用于SMS和CPRS功能的模块采用SIM900A;WiFi芯片采用TI的CC3200;蓝牙芯片采用TI公司的BLE低功耗蓝牙芯片CC2540;网口驱动芯片采用以太网控制芯片DP83848CVV;Zig Bee芯片、WiFi芯片和蓝牙芯片都以模块化的形式通过RS232串口和STM32主控器连接,SIM900模块也通过RS232串口和STM32主控器连接,硬件框图如图2所示。
2.2 温湿度子系统硬件原理设计
温湿度子系统采用可充电锂电池供电,通过TP4054充电芯片实现给锂电池充电。锂电池输出3.7 V,通过TPS63031电源稳压芯片将电压稳到3.3 V,从而给系统供电。控制器芯片采用TI公司的CC2530,温湿度传感器采用SHT1x,测量的温室度值传送给控制器,然后显示在OLED显示屏并且通过ZigBee发送到网关。网关硬件框图如图3所示。
2.3 人体感应和气体探测系统硬件原理
人体感应与气体传感器系统除了传感器不同以外,其他部分都相同。系统采用可充电锂电池供电,可通过TP4054充电芯片实现给锂电池充电。锂电池输出3.7 V,通过TPS63031电源稳压芯片可将电压稳到3.3 V,从而给控制部分供电;通过CN5136升压稳压芯片将电压稳定到5 V给传感器模块供电。人体感应传感器采用HC—SR501人体感应模块;气体传感器采用MQ-2气体传感器模块,可检测液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等。各传感器的状态通过ZigBee发送到网关,硬件框图如图4所示。
2.4 家电控制子系统硬件设计
家电控制室通过控制继电器的开关来实现,家电控制子系统采用可充电锂电池供电,通过TP4054充电芯片实现给锂电池充电。锂电池输出3.7 V,通过TPS63031电源稳压芯片可将电压稳定到3.3 V,从而给控制部分供电;通过CN5136升压稳压芯片将电压稳定到5 V给继电器模块供电。CC2530单片机将本地按键控制和远程控制继电器的状态传送到网关;另外也接受网关发来的指令控制继电器的开闭,硬件框图如图5所示。
3 系统软件功能设计
系统中各传感器子系统通过ZigBee把数据传送到网关,网关通过WiFi传送到服务器,当温度超过设定值、室内有人或无人、气体浓度超标或正常,家电打开与关闭时网关会通过SMS方式通知用户。手机终端可访问服务器查看各传感器的值和状态,还可以通过SMS发送控制指令到达网关,然后网关通过ZigBee控制家电的开关。
3.1 网关子系统软件设计
网关子系统实现两个功能:一是ZigBee模块接收各传感器子系统的状态,通过串口发送到STM32处理器,处理器通过组帧、判断,然后通过GPRS/WiFi上传到服务器;二是接收手机终端的指令然后通过ZigBee下发到各传感器。网关功能程序流程如图6所示。
3.2 温湿度子系统软件设计
温湿度子系统可以获得环境温湿度值,系统上电后,CC2530控制器每隔5 s获得数字温湿度传感器SHT1采集到环境的温湿度值,通过I2C发送到OLED显示屏显示,并且进行温湿度组帧通过ZigBee把温度和湿度值实时传送到网关。网关判断当两次传送的温度值或湿度值有变化时,会把变化的温湿度值组帧后上传到服务器。当网关判断温度值超过40 ℃时会发送报警短信通知用户。温度和湿度值可精确到个位数,如温度25℃,湿度56%。温湿度子系统框图如图7所示。
3.3 人体感应和气体探测系统软件设计
人体感应和气体探测子系统可以得到室内是否有人和室内气体浓度状况。MQ-2气体传感器模块检测到气体浓度超标后会在输出端输出低电平,气体浓度正常时会在输出端输出3.3 V高电平。当系统上电后控制器CC2530部分会每隔5 s检测传感器的输出端,并会把传感器的输出通过ZigBee传送到网关,网关判断两次传送值不相同时,会把数据组帧后上传到服务器并短信通知用户气体浓度超标或者正常。人体感应传感器HC-SR501,人进入其感应范围则输出端输出3.3 V高电平,人离开感应范围则自动延时关闭3.3 V高电平,输出端输出低电平。系统上电后控制部分会每隔5 s检测传感器的输出端,并把传感器的输出通过ZigBee传送到网关,网关判断两次传送到网关的值同时会把数据上传到服务器,并短信通知用户有人进入或人离开。子系统框图如图8所示。
3.4 家电控制子系统软件设计
家电控制子系统可实现对室内灯和家电的开关控制。继电器可外接灯和家电,对灯和家电的开关控制室通过控制继电器的开关来实现。控制继电器的开闭有两种方式:一种是通过本地按键,当短按按键时CC2530输出低电平,继电器开关闭合;当长按按键时CC2530单片机输出3.3 V电平时继电器开关断开;按键控制继电器开关闭合和断开时会通过ZigBee把继电器的这两种状态传送到网关,网关再通过WiFi传送到服务器。另一种是手机软件通过SMS发送开关指令到达网关,网关再通过ZigBee控制继电器的开闭,从而实现远程控制家电和灯的开关,通过远程控制继电器,继电器打开和闭合后控制部分会把这两种状态传送到网关,网关再通过WiFi传送到服务器并通过短信告知用户。子系统框图如图9所示。
3.5 手机监控软件设计
手机终端用于远程监测气体浓度是否超标、屋里是否有人、室内温湿度值和家电的开关状态以及远程控制家电的开关。监控软件主要包括注册本机手机号码到网关、通过刷新访问服务器获得各传感器的最新状态和远程控制灯的开关,软件框图如图10所示。
4 系统运行测试
系统以手机终端为用户操作界面,可以实时远程监测温湿度、家电状态、室内是否有人和室内气体浓度是否超标,还可以远程控制家电开关,从而实现远程家庭安防,远程火灾报警、远程家电控制等家庭基本的家居控制功能。系统操作过程简单,运行系统前需要进行设置,网关设置主要使WiFi能加入WiFi热点从而接通互联网,设置服务器的IP和端口号,使数据能上传到服务器。手机终端设置主要是需要注册用户手机号码,通过发送短信给网关使网关保存用户的手机号码,以便网关给用户发送报警短信。
网关设置主要是对WiFi模块的设置,WiFi模块需要设置无线热点的SSID和密码、数据传输协议以及服务器的IP和端口号。
(1)打开串口调试助手,选择波特率为115 200bit·s-1,数据位为8位,停止位为1位。在字符串输入框输入“+++”点击发送,在看到数据接收框中收到“+OK”后表示设置成功,如图11所示。
(2)关闭串口调试助手,打开UART—WIFI配置管理程序,点击搜索,就会出现WiFi的设备ID,在右边设置无线热点名称和数据传输协议以及服务器的IP和端口号如图12所示,设置完成后点击提交修改,出现参数修改完成的提示,WiFi模块设置成功。
在网关设置完成后,给网关上电运行。然后手机安装掌上乐居APP,打开应用程序,出现如图13所示界面,点击设置,在号码输入框输入网关SIM卡的11位手机号码点击注册新号码,收到网关发回来的“号码注册成功”短信内容后,表明网关存储用户手机号码成功。
当用户手机号码改变时,打开手机终端,输入原有的网关手机号码,点击“清除所有号码”,当收到网关发来的短信“号码清除成功”,此时网关存储的用户原来的手机号码就被擦出。接下来可重新向网关注册新的手机号码。
开启在WiFi模块里设置的无线热点,给网关上电运行,WiFi会加入此热点,然后开启各传感器子系统,传感器子系统会加入网关ZigBee的网络中。手机终端可以查看室内各传感器的状态并控制家电的开关。如图14所示。
5 结束语
系统采用目前主流的ZigBee无线技术、移动通信技术、互联网技术和嵌入式系统与接口技术。ZigBee无线技术具有近距离、低复杂度、自组网、低功耗、低数据速率、低成本的特点。系统采用ZigBee无线技术实现了各传感器与网关的数据传送。网关采用意法半导体生产的STM32F107单片机作为主控制器组成嵌入式控制系统,实现了数据的传输链路转换和系统控制;采用WiFi/CPRS模块实现了网关接入互联网,从而把数据上传到服务器中,实现了手机终端实时监测与控制;采用SIM900A模块把网关接入移动通信网络中,实现短信报警功能。