论文部分内容阅读
摘要:随着现代化水平不断提高,人们对智能要求也越来越高。为了提高家居的智能化控制,设计一种使用计算机无线网络基于CortexA8的智能家居控制系统。该系统以CortexA8和ZigBee为核心,采用WEB服务器以B/S进行控制和数据采集,通过移植Linux系统,移植sqhte数据库,移植驱动程序实现。
关键词:智能家居;ZigBee;无线传感网络;监控
中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2017)14-0193-03
物联网在人类生活中有着广泛的用途,但同时物联网的发展进展缓慢,影响物联网发展的一个重大因素就是它非常灵活,在系统中存在大量处于不同网络的设备,这些处于不同网络的设备相互通信很困难,因此设计一个物联网的通用控制平台尤为重要,通过此平台和网络监控可以实现智能家居控制系统,在本文中设计此平台并通过该平台就实现家居中常用设备的控制,除此以外还能进行温湿度采集、有毒有害气体的检测等,在实际应用中有着广泛的应用。
1系统简介
该系统是一个智能家居控制通用平台,考虑到设备间的兼容性,在系统中采用B/S方式进行设计。因此系统结构主要由底层感知层,核心通信层和应用业务层这三层组成。
底层感知层是系统最终被控制或者采集数据的层次,包括各种传感器和执行器。核心通信层是系统中唯一不变的层次,它为整个系统构建框架,在这个层次中包含多个网络服务器程序:隧道服务器、反向代理服务器、SN分配服务器、数据库服务器等。应用业务层是根据开发人员的实际需求,开发出相应的应用程序。由于系统采用B/S的方式,因此系统具有很大的延展性和可扩展性。在这一个层次中,可以使用多种编程语言实现。
2系统工作原理
本系统控制原理是采用嵌入式Linux WEB服务器,通过CGI程序向Linux驱动程序写入命令字,再通过Linux驱动程序控制ARM的GPIO的高低电平来控制电磁继电器的方式来实现。传感器则是单片机通过I/O收集来自传感器的数据、通过串口发送到ARM开发板。步进电机的控制原理则是ARM发送命令数据给CC2530,CC2530输出高地电平控制ULN2003步进电机驱动芯片。从而达到控制步进电机的目的。ARM开发板内移植有Sqlite数据库。收集的数据储存在数据库内。用于显示的CGI程序读取数据库里的值显示到HTML网页。嵌入式WEB服务器的登录认证是由CGI JS cookie配合完成的。
由于IPV4的限制,使其它网络的用户无法访问位于本地局域网内部的WEB服务器,因此系统提供了能访问内网WEB服务器的反向代理程序。它是通过MAC地址对系统中每一个作为物联网网关的ARM开发板提供独一的sN编号,它可使其用户直接输入即可访问。整个系统通过移植linux系统,WEB服务器,Sqlite数据库和CCGI库实现。
1)linux系统的移植
采用天嵌公司TQ210开发板,这款开发板采用S5PV210作为CPU内核,它的架构是ARM Cortex-A8,可在其上移植好linux内核以及相应必要的驱动程序后就可以开始进行WEB服务器的移植。
2)WEB服务器的移植
市场上有很多的嵌入式WEB服务器,对于嵌入式WEB服务器基本要求是占用内存小,实时性高。对于我们的系统而言,必须支持CGI程序。比较好的嵌入式WEB服务器有:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。Apache是主流的WEB服务器但是占用内存多,开销很大。因此不适用于嵌入式WEB服务器。对比了其他服务器后,最终采用boa服务器,boa服务器占用资源很少,并且支持CGI。在www.boa.org上下载boa的源码,解压后进行交叉编译,然后再把boa的可执行文件可配置文件拷贝到开发板上,boa就可以开始运行。
3)Sqlite数据库的移植
Sqlite是一种小型的可用在嵌入式设备上的关系数据库。它主要是用来存储由传感器采集的数据。在www.sqlite.org上下载sqlite的源代码,解压后交叉编译,将可执行文件和库拷贝到开发板上即可。
4)CCGI库的移植
CCGI库是一个C语言库,用于C语言编写CGI程序的一个函数库,下载解压后用VIM打开Makefile文件,将里面的编译器改为交叉编译器即可。
3核心通信层
作为系统的核心,核心通信层为整个系统提供框架,为上层的应用业务层提供设备的控制和采集接口,同时也为底层的底层感知层提供平台支持。
核心通信层可以划分为两个功能模块:一个是网络通信,它主要提供数据的传输,如隧道转发、SN分配、上层接口调用;另一个是嵌入式WEB服务器(采用B/S通信方式),它主要提供WEB服務和底层驱动程序以及安全认证,以便于数据的传输以及对底层感知层的支持。
3.1核心通信层嵌入式WEB服务器设计
系统采用B/S方式进行控制和数据采集,因此嵌入式WEB服务器是整个系统的核心,在实际项目中嵌入式WEB服务器实际上就是物联网系统的物联网网关。在本文中采用ARMlinux平台实现嵌入式WEB服务器。嵌入式WEB服务器结构图如图1所示。它主要通过网络将物联网网关(嵌入式WEB服务器)的端口转发客户端模块与云服务器建立隧道通信和反向代理服务。同时嵌入式WEB服务器提供WEB服务,收集来自协调器的数据后保存在sqlite数据中,再由CGI程序输出和控制。端口转发客户端模块将嵌入式WEB服务器转发到云服务器使得外网用户也能访问。
3.2核心通信层网络通信设计
通信设计是物联网中的核心。在本系统中,由于采用B/S方式进行通信,外网的客户端不能够访问内网的服务器,而物联网系统是一个分布式网络,它负责连接所有的设备,因此网络通信模块主要是解决这个问题。网络通信模块主要实现如下三大功能:SSH隧道转发,代理服务及SN分配。 1)SSH隧道转发
因为嵌入式WEB服务器一般处于局域网内部,因此想要访问嵌入式WEB服务器必须依靠隧道转发技术,这种技术能让用户访问处于内网或者让其他的网络中的客户端进行访问。公网服务器会分配一个端口号,用于监听来自对嵌入式WEB服务器的请求。
2)代理服务器
在这个物联网系统中的代理服务器是一个反向代理服务器,启动隧道转发后,在公网服务器上就会有一个监听端口。这个端口是处于公网服务器的防火墙的内部的。为了数据的安全性因此必须用防火墙对数据进行过滤。反向代理服务器的作用就是将处于防火墙内的端口代理出防火墙外,这样一来有利于数据的安全性。在此系统中,反向代理服务器中常用的是Hap-roxy代理服务器,它将本地的嵌入式WEB服务器端口80映射到公网服务器上时,公网服务器程序会分配一个端口。此时这个端口为127.0.0.1:port,再由Haproxy反向代理出去,并且生成一个URL,这个URL就是嵌入式WEB服务器的控制链接。每一个嵌入式WEB服务器的URL不同,因为在实际应用中,可能存在多个嵌入式WEB服务器。
3)SN分配
在实际中系统中可能存在不仅一个嵌入式WEB服务器。这些不同的嵌入式WEB服务器控制和采集对应的执行器和感知器。SN分配的功能就是将不同的嵌入式WEB区别开,SN号在整个系统中独一无二,SN对应这一个嵌入式WEB服务器。SN分配的原理是端口转发。嵌入式WEB服务器进行端口转发时,服务器会分配一个端口号来进行监听WEB端口请求,而数据库对SN和端口号进行关联。服务器端程序流程和设备终端程序流程分别见图2和图3。
4底层感知层
TQ210与Zigbee通信采用串口通信。Zigbee CC2530电路图如图4所示。该系统中控制步进电机的原理则是CGI程序发送串口数据,Zigbee接收数据后,对命令进行解析,从而实现对步进电机的控制,而家居设备中的灯则是则是通过GPIO的高低电平来来控制电磁电器闭合实现其开、关状态。传感器则是由Zigbee收集数据,通过串口发生给TQ210。CGI程序通过串口收集到数据后,将数据存入数据库,再由用于显示的CGI程序,读取数据库中的数据,最后进行显示,从而实现所需功能。
5应用层
应用层为用户提供输入SN号的操作平台,并且注册用户名、已经通过用户输人的SN来跳转到对应的智能家居网关控制監控页面。
在此系统中,应用层以网站形式呈现,而在核心层服务器已经生成好了页面的链接,该网站只需要根据用户输入的SN号跳转到对应的页面即可。
6结束语
本文实现了基于Cortex A8的智能家居控制系统,能对家居设备进行自动开、关,能通过步进电机实现对电扇的顺时针和逆时针旋转,还能对温湿度和气体进行检测,通过多次实验表明,此设计方案较好地搭建了智能家居控制平台,达到了预期效果,这些思路和方法在实际中都值得借鉴,在工业上也有很高的应用价值。
关键词:智能家居;ZigBee;无线传感网络;监控
中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2017)14-0193-03
物联网在人类生活中有着广泛的用途,但同时物联网的发展进展缓慢,影响物联网发展的一个重大因素就是它非常灵活,在系统中存在大量处于不同网络的设备,这些处于不同网络的设备相互通信很困难,因此设计一个物联网的通用控制平台尤为重要,通过此平台和网络监控可以实现智能家居控制系统,在本文中设计此平台并通过该平台就实现家居中常用设备的控制,除此以外还能进行温湿度采集、有毒有害气体的检测等,在实际应用中有着广泛的应用。
1系统简介
该系统是一个智能家居控制通用平台,考虑到设备间的兼容性,在系统中采用B/S方式进行设计。因此系统结构主要由底层感知层,核心通信层和应用业务层这三层组成。
底层感知层是系统最终被控制或者采集数据的层次,包括各种传感器和执行器。核心通信层是系统中唯一不变的层次,它为整个系统构建框架,在这个层次中包含多个网络服务器程序:隧道服务器、反向代理服务器、SN分配服务器、数据库服务器等。应用业务层是根据开发人员的实际需求,开发出相应的应用程序。由于系统采用B/S的方式,因此系统具有很大的延展性和可扩展性。在这一个层次中,可以使用多种编程语言实现。
2系统工作原理
本系统控制原理是采用嵌入式Linux WEB服务器,通过CGI程序向Linux驱动程序写入命令字,再通过Linux驱动程序控制ARM的GPIO的高低电平来控制电磁继电器的方式来实现。传感器则是单片机通过I/O收集来自传感器的数据、通过串口发送到ARM开发板。步进电机的控制原理则是ARM发送命令数据给CC2530,CC2530输出高地电平控制ULN2003步进电机驱动芯片。从而达到控制步进电机的目的。ARM开发板内移植有Sqlite数据库。收集的数据储存在数据库内。用于显示的CGI程序读取数据库里的值显示到HTML网页。嵌入式WEB服务器的登录认证是由CGI JS cookie配合完成的。
由于IPV4的限制,使其它网络的用户无法访问位于本地局域网内部的WEB服务器,因此系统提供了能访问内网WEB服务器的反向代理程序。它是通过MAC地址对系统中每一个作为物联网网关的ARM开发板提供独一的sN编号,它可使其用户直接输入即可访问。整个系统通过移植linux系统,WEB服务器,Sqlite数据库和CCGI库实现。
1)linux系统的移植
采用天嵌公司TQ210开发板,这款开发板采用S5PV210作为CPU内核,它的架构是ARM Cortex-A8,可在其上移植好linux内核以及相应必要的驱动程序后就可以开始进行WEB服务器的移植。
2)WEB服务器的移植
市场上有很多的嵌入式WEB服务器,对于嵌入式WEB服务器基本要求是占用内存小,实时性高。对于我们的系统而言,必须支持CGI程序。比较好的嵌入式WEB服务器有:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。Apache是主流的WEB服务器但是占用内存多,开销很大。因此不适用于嵌入式WEB服务器。对比了其他服务器后,最终采用boa服务器,boa服务器占用资源很少,并且支持CGI。在www.boa.org上下载boa的源码,解压后进行交叉编译,然后再把boa的可执行文件可配置文件拷贝到开发板上,boa就可以开始运行。
3)Sqlite数据库的移植
Sqlite是一种小型的可用在嵌入式设备上的关系数据库。它主要是用来存储由传感器采集的数据。在www.sqlite.org上下载sqlite的源代码,解压后交叉编译,将可执行文件和库拷贝到开发板上即可。
4)CCGI库的移植
CCGI库是一个C语言库,用于C语言编写CGI程序的一个函数库,下载解压后用VIM打开Makefile文件,将里面的编译器改为交叉编译器即可。
3核心通信层
作为系统的核心,核心通信层为整个系统提供框架,为上层的应用业务层提供设备的控制和采集接口,同时也为底层的底层感知层提供平台支持。
核心通信层可以划分为两个功能模块:一个是网络通信,它主要提供数据的传输,如隧道转发、SN分配、上层接口调用;另一个是嵌入式WEB服务器(采用B/S通信方式),它主要提供WEB服務和底层驱动程序以及安全认证,以便于数据的传输以及对底层感知层的支持。
3.1核心通信层嵌入式WEB服务器设计
系统采用B/S方式进行控制和数据采集,因此嵌入式WEB服务器是整个系统的核心,在实际项目中嵌入式WEB服务器实际上就是物联网系统的物联网网关。在本文中采用ARMlinux平台实现嵌入式WEB服务器。嵌入式WEB服务器结构图如图1所示。它主要通过网络将物联网网关(嵌入式WEB服务器)的端口转发客户端模块与云服务器建立隧道通信和反向代理服务。同时嵌入式WEB服务器提供WEB服务,收集来自协调器的数据后保存在sqlite数据中,再由CGI程序输出和控制。端口转发客户端模块将嵌入式WEB服务器转发到云服务器使得外网用户也能访问。
3.2核心通信层网络通信设计
通信设计是物联网中的核心。在本系统中,由于采用B/S方式进行通信,外网的客户端不能够访问内网的服务器,而物联网系统是一个分布式网络,它负责连接所有的设备,因此网络通信模块主要是解决这个问题。网络通信模块主要实现如下三大功能:SSH隧道转发,代理服务及SN分配。 1)SSH隧道转发
因为嵌入式WEB服务器一般处于局域网内部,因此想要访问嵌入式WEB服务器必须依靠隧道转发技术,这种技术能让用户访问处于内网或者让其他的网络中的客户端进行访问。公网服务器会分配一个端口号,用于监听来自对嵌入式WEB服务器的请求。
2)代理服务器
在这个物联网系统中的代理服务器是一个反向代理服务器,启动隧道转发后,在公网服务器上就会有一个监听端口。这个端口是处于公网服务器的防火墙的内部的。为了数据的安全性因此必须用防火墙对数据进行过滤。反向代理服务器的作用就是将处于防火墙内的端口代理出防火墙外,这样一来有利于数据的安全性。在此系统中,反向代理服务器中常用的是Hap-roxy代理服务器,它将本地的嵌入式WEB服务器端口80映射到公网服务器上时,公网服务器程序会分配一个端口。此时这个端口为127.0.0.1:port,再由Haproxy反向代理出去,并且生成一个URL,这个URL就是嵌入式WEB服务器的控制链接。每一个嵌入式WEB服务器的URL不同,因为在实际应用中,可能存在多个嵌入式WEB服务器。
3)SN分配
在实际中系统中可能存在不仅一个嵌入式WEB服务器。这些不同的嵌入式WEB服务器控制和采集对应的执行器和感知器。SN分配的功能就是将不同的嵌入式WEB区别开,SN号在整个系统中独一无二,SN对应这一个嵌入式WEB服务器。SN分配的原理是端口转发。嵌入式WEB服务器进行端口转发时,服务器会分配一个端口号来进行监听WEB端口请求,而数据库对SN和端口号进行关联。服务器端程序流程和设备终端程序流程分别见图2和图3。
4底层感知层
TQ210与Zigbee通信采用串口通信。Zigbee CC2530电路图如图4所示。该系统中控制步进电机的原理则是CGI程序发送串口数据,Zigbee接收数据后,对命令进行解析,从而实现对步进电机的控制,而家居设备中的灯则是则是通过GPIO的高低电平来来控制电磁电器闭合实现其开、关状态。传感器则是由Zigbee收集数据,通过串口发生给TQ210。CGI程序通过串口收集到数据后,将数据存入数据库,再由用于显示的CGI程序,读取数据库中的数据,最后进行显示,从而实现所需功能。
5应用层
应用层为用户提供输入SN号的操作平台,并且注册用户名、已经通过用户输人的SN来跳转到对应的智能家居网关控制監控页面。
在此系统中,应用层以网站形式呈现,而在核心层服务器已经生成好了页面的链接,该网站只需要根据用户输入的SN号跳转到对应的页面即可。
6结束语
本文实现了基于Cortex A8的智能家居控制系统,能对家居设备进行自动开、关,能通过步进电机实现对电扇的顺时针和逆时针旋转,还能对温湿度和气体进行检测,通过多次实验表明,此设计方案较好地搭建了智能家居控制平台,达到了预期效果,这些思路和方法在实际中都值得借鉴,在工业上也有很高的应用价值。