摘要:针对智能家居的运用需求和特色,对智能家居体系进行剖析和研讨,提出了一种智能家居体系的全体规划计划。以Cortex—A8为中心处理器,Linux嵌入式体系为智能家居操控体系,运用Android供给的各种资源树立智能家居长途操控软件,完结了家用电器的长途监控和本地监控相结合。
要害词:Linux智能家居;嵌入式体系;Android
导言
跟着社会电子信息化的不断发展,人们在家居中运用的电器也越来越多,由此带来的安全隐患也有了显着的增多。在这些电器中,一旦呈现一些反常,便会给人们带来很大的丢失。为了下降电器的不合理运用带来的反常情况,就要求在反常产生时用户能及时得到信息,并经过实时监控,采纳必定的操作扫除反常。因而,智能家居体系的效果是十分巨大的。
在智能家居操控体系中,中心设备是家居智能操控终端。归纳现在的研讨现状,首要有以下几种计划:第一种是选用键盘、红外遥控器、触摸屏和LCD显现器等设备对家电进行操控。当时智能家居操控体系大都选用此种操控终端,运用此种方法需求分别对操控终端的软件与硬件进行规划,规划杂乱,本钱高。此外,运用此种操控终端只能进行本地操控,不能完结长途操控。第二种是选用家庭或许工作电脑作为智能家居操控体系的操控终端。运用这种操控方法的缺陷是,只能用固定点对家居进行操控,操控终端不能移动,不行便利。第三种是选用手机作为操控终端,运用手机经过无线网络(WiFi、蓝牙、GSM等)对家居体系进行操控,能够真实做到便利、方便、触手可及。但现在选用这种方法的智能家居体系还不是许多,并且大部分操作繁琐,没有杰出的用户体会。
本文处理了嵌入式智能家居体系、ZigBee无线通讯、家居操控协议等相关技术难点,剖析了各自的根本特色和所要完结的根本功用,并在此基础上提出了依据Linux渠道的嵌入式智能家居体系的全体规划计划。
1 体系全体结构概述
依据全面感知、牢靠传递和智能处理的功用需求,可将智能家居体系划分为感知层(家电信息收集终端)、网络层(家庭网关)和运用层(包含PC机网页和手机客户端)3个部分,其全体框架结构如图1所示。
其间,感知层的中心功用是完结数据的收集,首要经过各类传感器来完结数据的获取,最终将获取到的数据经过无线网络打包发送到网络层的家庭网关中。网络层需求完结一个依据嵌入式Web服务器的家庭网关,一方面,用来作为衔接家庭内网与Internet外网的接口,完结家庭内网和Internet的数据通讯功用;另一方面,用来统筹来自感知层的数据和来自运用层的指令。运用层则需求完结一个网页客户端和手机客户端界面,一方面用来加工处理来自服务器端的数据;另一方面,用来完结人机交互,经过客户端界面向服务器端发送操控指令。
1.1 硬件构成
智能家居体系的硬件体系首要包含S5PC100渠道(以下简称A8)、11C14渠道(以下简称M0)和ZigBee模块3个部分。其间,S5PC100开发渠道是依据三星公司Cortex—A8内核的S5PC100处理器规划而成的,支撑多种格局的硬件编解码,如:MPEG-1/2/4、H.263/H.264等,该渠道首要经过开发的体系软件完结对M0渠道的操控。11C14渠道依据LPC11C14微操控器(ARM Cortex—M0内核),具有低功耗、低本钱等长处。一起,该渠道具有丰厚的硬件资源,集成了传感器模块(包含三轴加速度传感器、光敏传感器、温度传感器、湿度传感器等)、RFID设备模块、ZigBee无线通讯模块和OLED显现模块等。该渠道首要用于模仿家庭中的信息收集和履行单元。ZigBee模块选用的是CEL公司的Z%&&&&&%M2410,带有USB转串口芯片,能够便利地衔接PC机或其他带有USB主机接口的设备,完结组网通讯。
1.2 软件环境
(1)U—Boot移植
U—Boot的功用是把内核放到DRAM(Dynamic Random Access Memory)中运转。网上下载的U—Boot对开发渠道只要通用性代码,不支撑和辨认特定开发渠道上的一些硬件和功用。因而,需求增加对这些硬件的辨认、初始化及其相应功用的完结。
U—Boot的移植进程能够分为两个阶段,其间,第一阶段首要完结根本的硬件设备初始化,预备RAM(Randtom Access Memory,随机存储器)空间加载第二阶段代码,仿制第二阶段代码到RAM中,设置仓库指针SP,跳转到第二阶段代码的C进口点;第二阶段首要完结汇编语言跳转到main()进口函数,初始化本阶段即将运用的硬件设备,检测体系的内存映射,加载内核映像文件和根文件体系映像文件,设置内核发动参数和调用内核。
(2)Linux内核移植
Linux内核是一种源码敞开的操作体系,选用模块化的规划。在此只保留了必需的功用模块,删除了冗余的功用模块,并对内核从头编译,从而使体系运转所需的硬件资源显着削减。本规划中内核的移植首要包含:网卡驱动的增加、NAND Flash驱动的增加、增加对YAFFS2文件体系的支撑、增加USB设备驱动、增加LCD设备驱动、增加SD卡设备驱动。
(3)根文件体系制造
假如没有根文件体系,其他的文件体系就不能进行加载。根文件体系包含Linux发动时所有必要的目录和要害性文件,以及使其他文件体系得以挂载的必要文件。制造根文件体系首要包含:增加内核菜单选项、树立目录结构、增加指令程序、复制C库、编写体系发动文件、装备主机的NFS。
2 体系功用模块规划
本体系是在A8、M0及PC等设备的基础上,依据互联网、物联网、传感器等技术并结合物联网新式概念规划的,运用户能够对家庭内部情况进行实时地把握和操控。本体系首要由前端数据中心(A8)、长途监控终端(M0)和服务器端(PC)组成。
首要,数据接纳模块接纳M0经过ZigBee传输上来的实时环境参数(如温度、湿度、光感数据等),并经过接纳端的ZigBee经USB转串口操作,把收集到的环境参数发送给A8,由M0的接纳恳求线程从串口读取音讯,并交给数据处理模块。数据处理模块解码接纳到信息后,激活数据库线程以保存数据,激活内存数据改写线程以更新实时环境信息,并对环境参数进行判别处理,决议是否进行报警。别的,在构建的嵌入式Web服务器上,用户能够经过网络,运用PC机对家居信息进行监控;经过Web页面上的操控按钮,监控设备能够辨认出用户指令并进行相应的动作。体系各模块进程间联系如图2所示。
3 要害算法规划
3.1 视频流服务器规划
该服务器首要用于将摄像头收集的视频或许图片显现到网页和LCD(Liquid Crystal Display,液晶显现器)上,这儿选用MJPG—stream er作为视频流服务器。MIPG—streamer选用的是V4L2(Video 4 Linux 2)接口,能够经过文件或许是HTTP的方法拜访Linux UVC兼容摄像头。视频流服务器将摄像头捕获的图画存入global buffer缓冲区,当客户端有拜访恳求时,服务器便将global buffer缓冲区中的图画数据接连地发送给客户端。该程序中的server_pthread函数运用多线程技术,为每一个衔接恳求的客户端创立一个线程。该线程独登时与客户端进行通讯,发送图画数据。
此外,MJPG—steamer还用来从网络摄像头收集图画,并将它们以流的方法经过依据IP的网络传输到浏览器的网页上。因为MJPG—steam er能够经过运用网络摄像机的硬件紧缩功用来下降服务器CPU的开支,而无需为视频帧紧缩糟蹋很多的资源,因而它为嵌入式设备和一些惯例服务器供给了一个轻量级且较少CPU耗费的计划。MJPG—steamer功用强大,但为了契合本项意图需求,仍需对其进行修正,增加咱们想要完结的功用。在本规划中,需求向MJPG—steamer视频流服务器的增加LCD输出插件,其代码如下:
3.2 家电物联网服务器规划
该服务器首要担任为网页供给家电的实时情况信息,一起也为Android手机客户端供给服务,让Android手机客户端具有实时显现和长途操控家电的才能,其联系如图3所示。
在网页上显现信息首要是经过.xml文件完结的。首要,网页经过BOA服务器,调用CGI(Common Gateway Interface,通用网关接口)程序操控网页线程,并发送指令给单板。然后,单板将收集到的数据发送给家电物联网服务器,服务器经过向.xml文件中写入收集到的数据,完结网页的实时信息动态显现。当网页客户端在浏览器中发送恳求(如设置报警温度等)时,BOA服务器会调用CGI接口解码,区别提交过来的信息,然后把这个信息发送到单板,完结对单板的操控。Android手机客户端与家电物联网服务器的通讯则首要是经过套接字进行的。
3.3 Android客户端软件规划
Android是一个专门为移动电话而规划的敞开源码的操作体系,它将拓荒新的运用,使家居智能化运用于普通家庭。Android客户端操控体系选用模块化的规划思维,首要包含运用层UI(User Interface,用户界面)、JNI(Java Native Interface,Java本地接口)、HAL(Hardwa re Abstraction Layer,硬件笼统层)和底层驱动等的规划。Android运用程序由一个或多个组件构成,组件包含activity、service等,每个组件在运用程序中完结不同的使命,能够被独自激活,也能够由其他运用程序激活,其详细流程如图4所示。
其间,HAL层包含LED灯、蜂鸣器和按键等设备,首要用于完结供JNI调用的接口。在函数完结中,HAL运用底层驱动供给的接口(即ioctl)来操控寄存器,完结对设备的操控操作。JNI层经过封装将Framework层调用的接口相关到JNI层,每个设备都有自己仅有的设备ID。运用层UI显现来自M0的模仿量,首要用于办理A8上各种设备的工作情况,能够完结LED操控、按键检测、蜂鸣器操控、A/D转化、温度传感器的数据读取和方向传感器模仿值的处理等功用,其操控程序客户端主界面如图5所示。图中,上侧为项目菜单栏,经过不同项目菜单下的信息和操控按钮,能够完结对家居设备的长途实时监控;中心部分是对不同设备的操控开关,经过这些开关能够完结对警报灯、电风扇和蜂鸣器等设备的操控,并能够依据需求对报警温度值进行设置;最终,经过对下侧不同丈量点的挑选,能够完结对不同方位房间的监控。
结语
将规划的Android手机客户端软件装置后,经重复测验,手机能够经过无线网络完结对家居设备的操控。一起,也能够经过Internet长途监控网页完结对家居设备的操控。经过本体系,能够完结对家居设备的会集办理和操控,随时随地掌控家中的情况,得到家中的最新情况。
此操控体系选用当时较新的操控方法——长途监控网页和智能手机软件操控,与其他终端操控方法比较优势显着。一起,规划开发的手机软件具有通用性强、易于移植、商场运用价值高、易于推行等特色。本体系的规划不只涵盖了Linux体系开发的软硬件技术,一起也包含了嵌入式产品规划的各种归纳本质和多项技术,具有必定的实用价值。