当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:针对智能家居的应用需求和特点,对智能家居系统进行分析和研究,提出了一种智能家居系统的整体设计方案。以Cortex—A8为核心处理器,Linux嵌入式系统为智能家居控制系统,利用Android提供的各种资源建立智

摘要:针对智能家居的应用需求和特点,对智能家居系统进行分析和研究,提出了一种智能家居系统的整体设计方案。以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公司的ZICM2410,带有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系统开发的软硬件技术,同时也包含了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭