蓝土庆
(岭南师范学院网络与信息技术中心,广东湛江,524048)
所谓物联网是指具有全面感知能力的物物之间通过互联网相连的集合网络。目前,物联网、云计算和互联网三网融合的技术相应出现,为智能家居的发展提供了技术支撑。通过互联网将物与物彼此之间信息互通相连,实现人与物之间的高度智能化控制是智能家居目前发展的一大特征。因此,通过智能家居控制系统的设计与实现能够更好地满足人们对高质量生活的追求[1]。本文将探讨与设计一种智能家居控制系统,实现环境集控、煤气和安防监测报警等功能。
本文研究设计的智能家居控制系统如图1所示,它主要包括三个部分,第一部分是下位机控制系统,下机控制系统内部由执行单元、CPU、无线网络控制单元、互联网模块等多个部件组成;第二部分是网络服务器,网路服务器在服务端对数据实施各种操作处理。第三部分是上位机控制终端程序,包括移动端APP和浏览器终端等,用户可通过上位机的客户端窗口向下位机控制系统发号施令【2】。
该系统的工作流程是:下位控制系统中的一系列无线传感器会采集家居中的环境数据,然后由互联网模块将数据传输到服务器,当服务器接受到数据之后,会作出相应的处理。用户通过处于同一网络的客户端程序可以向控制系统发出对应指令,客户端程序会将指令信息通过网络传输给服务器,由服务器作出处理,从而实现对整个智能家居系统的控制[3][4]。
图1 智能家居控制系统总体框架图
图2 智能家居控制系统的硬件结构示意图
该智能家居控制系统的实时感知无线传感网络主要采用Zigbee【2】网络的拓扑结构,通过Zigbee网络节点可实现对室内的温度、光度、煤气浓度等环境参数的采集。主要由以下五个控制模块组成:(1)智能灯光模块由光照传感器和LED灯组成,负责对光照强度进行控制;(2)智能家电控制模块通过对电路开关的控制,实现对家用电器的控制;(3)智能温控模块通过控制空调实现对室内温度的控制;(4)煤气泄漏报警模块可以实现对屋内煤气泄漏的监控;(5)红外传感器报警模块可实现电子防盗报警功能,由于红外线是不可见光,有较强的隐藏性和保密性,因此可应用到家居中实现人体探测的功能。当所布防的区域内检测到有人员移动时,该模块将动作向指定手机发送安防信息。系统的硬件结构如图2所示。
本智能家居控制系统的主要硬件选择如下:(1)主控采用的是Arduino单片机Atmel32u4芯片,它具有丰富的第三方资源,极大方便了下位机系统各种功能的设计;(2)无线模块是智能家居系统实现远程操作控制的保障,本系统选用的无线模块是CC3000WiFi,该模块在智能家居上有着广泛的应用;(3)温湿度传感器是DHT11数字式传感器,该传感器的灵敏度高,稳定性好,抗干扰能力强。该传感器与一个8位二进制的单片机相连,有一个NTC感温单元和一个电阻式感湿单元;(4)光传感器是智能灯光模块的核心部件,本系统采用的是LX1972环境模拟光传感器,该传感器能够模拟人眼对光线的响应机制,从而实现对光的合理控制;(5)气体传感器是煤气泄漏模块的核心部件,能够有效防止火灾的发生,该系统选用了烟雾传感器MQ-2作为气体传感器。当室内的烟雾浓度达到一定的阀值时会触发传感器,传感器会发出蜂鸣警报,并且通知用户做出紧急处理;(6)热释电传感器主要采用了美国 HAMAMATSU公司生产的 P2288,对人体的移动具有较强的敏感性和抗干扰性。
安卓系统的内核是Linux内核,整个系统是以Linux内核为核心,然后在外层包含了多个硬件的底层驱动程序,在应用层包含了应用程序可以接入系统的接口。应用程序层在安卓系统架构的最上层,通常一个Activity就是一个应用程序的一个单独用户界面,用户通过Activity与应用程序进行交互[5]。由于一个程序需要实现多个功能,通常,每个安卓应用程序都包含多个Activity,不同的Activity对应不同的功能模块。
本文的智能家居控制系统选用Tomcat作为系统的服务器。Tomcat 是一个集成了 JavaEE【2】标准的小型Web服务器,并且其性能稳定,安全免费开源。Tomcat服务器在工作时首先启动server.xml文件进而实现Server启动,Server启动时,会首先启动Service,然后相继启动多个Connector连接器,启动后的Connector会处于等待状态,等待客户机的连接。当客户通过浏览器对服务器进行访问时就会与Connector连接器连接,然后连接器会将用户的请求交给Engine处理,Engine接到请求后会对其进行数据解析,然后交给相应的Host,Host交给对应的Web[4]。
Web服务器是运行在计算机服务端的程序,也就是通常所说的网站服务器。Web服务器可以为APP终端或者浏览器提供所需要的数据。Web服务器是一种被动程序,当客户端或者浏览器通过互联网向其发起连接时,服务器才会响应,服务器不能主动与客户端程序或者浏览器主动连接请求。客户端与Web服务器端的通信过程如图3所示。
图3 智能家居控制系统的数据通信过程
Http协议是超文本传输协议,属于TCP/IP应用层协议。Http协议是实现客户端程序和服务端程序通信的应用最为广泛的通信协议。该协议规定了两者在进行信息交换时应该遵循一定的数据格式。
Http协议的一个事务操作主要分为以下四个步骤:(1)客户端或者浏览器与Web服务器建立连接之后。(2)当两者连接成功后,客户端程序或者浏览器会向服务器端程序发送请求。(3)服务器收到客户端或者浏览器请求之后,会给浏览器发出请求响应。(4)Web服务器端反馈信息后,客户端程序或者浏览器接收到信息后会按照一定的格式展示,并且断开连接。
该智能家居控制系统使用的是CC3000。该器件能够连接各种传感器,并且将传感器的数据传给服务器。
CC3000连接互联网时需要进行如下操作:(1)初始化CC3000模块。(2)设置波特率115200,对串口进行初始化操作。(3)设置系统的SSID和密码,并且发起互联网连接。(4)连接成功后,中间可能会有延时100ms,之后会出现连接成功提示。
CC3000连接互联网的代码如下:
#define SSID“SSID”//设置无线网络ID
#define PASSWORD“88888888”//设置无线网络密码
void setup{
Serial.Begin(115200);//
Serial.println(F(“存储到 Flash”));
If(!Wido.begin()){
Serial.Println(F(“初始化失败,清检查连接”));
while(1);
}
Char*ssid=WLAN_SSID;
Serial.print(F(“尝试连接”));
Serial.println(SSID);
/*如果连接失败,串口返回数据,再次进入循环*/
if(!Wido.connectToAP(WLAN_SSID,WLAN_PASSWORD,WLAN_SECURITY)){
Serial.println(F(“连接失败”));
While(1);
}
Serial.println(F(“已连接”));
Serial.println(F(“请求 DHCP”));
While(!Wido.checkDHCP()){
Sleep(100);// 延时 100ms。
} }
Web服务器在智能家居控制系统中起着桥梁作用,一方面要接收来传感器的数据,另一方面要接收来自客户端或者浏览器的数据。在该系统中Web服务器的接口直接与Arduino【4】控制器进行连接,它的数据传输图如图3所示。
(1)数据库设计
智能家居控制系统中的数据库采用的是MySQL数据库,本文以其中的两个数据表设计为例阐述该系统数据库的设计过程。表1和表2分别是该系统的用户信息表和房间实时数据表。
表1 用户信息表
表2 房间实时数据表
_gas float 否 是 可燃气体浓度_Infrared float 否 是 红外监测
(2)Servlet开发
Servlet【3】是一段运行在服务器端的Java程序,这段程序的主要功能是处理客户端的请求并将其结果发送给客户端,能够动态显示网页内容。服务器端通过创建Servlet实例响应客户端的请求。Servlet在第一次启动后就会驻留在计算机内存中,无需每次都加载 Servlet的接口程序核心代码如下所示:
Package cn.wu.smarthome;
Import java.io.*;
Import javax.servlet.*;
Public class FirstServlet extends GenericServlet{
Public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException{
Res.getOutputStream().write(“My FirstServlet!”.getBytes());
} }
(1)Android与数据库通信
安卓系统与数据库通信的过程是:客户端向Web服务器发送JSON请求,Web服务器对请求进行解析然后采取相应处理,然后JDBC对远程数据库进行处理操作。Web服务器将数据库响应的操作打包成JSON数据包返回给客户端程序,客户端在接受到程序后会对数据进行JSON解析,然后进行响应处理[5]。
(2)应用程序功能设计
本智能家居控制系统的客户端应用程度设计结构是:程序启动时首先进入登录页,登录成功后程序自动跳转到首页,在程序的首页有智能家电、智能燃气报警、智能温度控制、智能灯光控制和红外布防等几个模块。智能灯光控制模块连接客厅、卧室、厨房、走廊灯多个灯光,通过该模块可以分别对这些灯光进行控制;智能家电控制连接热水器、空气净化器、音响、洗衣机等,通过该模块可以对其实施远程控制;智能温度控制模块可以实现对空调的远程控制和调节;燃气报警和红外布防可根据需要设定区域监测、设防或撤防等功能。
智能家居便是在这一背景下的产物,本文设计并实现了一个智能家居系统,该系统主要分为智能灯光、智能温度控制、智能家电控制、智能燃气报警控制和红外传感器报警等几个功能模块,为智能家居的实现提供了现实案例。