Linux平台智能家居的本地监控与远程监控

发布者:数字航海家最新更新时间:2014-01-23 来源: 电子设计工程 关键字:Linux智能家居  Cortex—A8为  Android 手机看文章 扫描二维码
随时随地手机看文章
引言
    随着社会电子信息化的不断发展,人们在家居中使用的电器也越来越多,由此带来的安全隐患也有了明显的增多。在这些电器中,一旦出现一些异常,便会给人们带来很大的损失。为了降低电器的不合理使用带来的异常情况,就要求在异常发生时用户能及时得到信息,并通过实时监控,采取一定的操作排除异常。因此,智能家居系统的作用是非常巨大的。
    在智能家居控制系统中,核心设备是家居智能控制终端。综合目前的研究现状,主要有以下几种方案:第一种是采用键盘、红外遥控器、触摸屏和LCD显示器等设备对家电进行控制。当前智能家居控制系统大都采用此种控制终端,使用此种方式需要分别对控制终端的软件与硬件进行设计,设计复杂,成本高。此外,使用此种控制终端只能进行本地控制,不能实现远程控制。第二种是采用家庭或者办公电脑作为智能家居控制系统的控制终端。使用这种控制方式的缺点是,只能用固定点对家居进行控制,控制终端不能移动,不够方便。第三种是采用手机作为控制终端,使用手机通过无线网络(WiFi、蓝牙、GSM等)对家居系统进行控制,可以真正做到方便、快捷、触手可及。但目前采用这种方式的智能家居系统还不是很多,而且大部分操作繁琐,没有良好的用户体验。
    本文解决了嵌入式智能家居系统、ZigBee无线通信、家居控制协议等相关技术难点,分析了各自的基本特点和所要实现的基本功能,并在此基础上提出了基于Linux平台的嵌入式智能家居系统的整体设计方案。

1 系统整体结构概述
   
根据全面感知、可靠传递和智能处理的功能需求,可将智能家居系统划分为感知层(家电信息采集终端)、网络层(家庭网关)和应用层(包括PC机网页和手机客户端)3个部分,其整体框架结构如图1所示。

c.JPG


    其中,感知层的核心功能是实现数据的采集,主要通过各类传感器来完成数据的获取,最终将获取到的数据通过无线网络打包发送到网络层的家庭网关中。网络层需要实现一个基于嵌入式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主机接口的设备,实现组网通信。[page]
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所示。

d.JPG



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输出插件,其代码如下:
    e.JPG
    f.JPG
3.2 家电物联网服务器设计
   
该服务器主要负责为网页提供家电的实时状态信息,同时也为Android手机客户端提供服务,让Android手机客户端具有实时显示和远程控制家电的能力,其关系如图3所示。[page]

g.JPG


    在网页上显示信息主要是通过.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所示。

a.JPG


    其中,HAL层包括LED灯、蜂鸣器和按键等设备,主要用于实现供JNI调用的接口。在函数实现中,HAL利用底层驱动提供的接口(即ioctl)来控制寄存器,实现对设备的控制操作。JNI层通过封装将Framework层调用的接口关联到JNI层,每个设备都有自己唯一的设备ID。应用层UI显示来自M0的模拟量,主要用于管理A8上各种设备的工作情况,可以实现LED控制、按键检测、蜂鸣器控制、A/D转换、温度传感器的数据读取和方向传感器模拟值的处理等功能,其控制程序客户端主界面如图5所示。图中,上侧为项目菜单栏,通过不同项目菜单下的信息和控制按钮,可以实现对家居设备的远程实时监控;中间部分是对不同设备的控制开关,通过这些开关可以实现对警报灯、电风扇和蜂鸣器等设备的控制,并可以根据需要对报警温度值进行设置;最后,通过对下侧不同测量点的选择,可以实现对不同位置房间的监控。

b.JPG



结语
   
将设计的Android手机客户端软件安装后,经反复测试,手机可以通过无线网络实现对家居设备的控制。同时,也可以通过Internet远程监控网页实现对家居设备的控制。通过本系统,可以实现对家居设备的集中管理和控制,随时随地掌控家中的状态,得到家中的最新状况。
    此控制系统采用当前较新的控制方式——远程监控网页和智能手机软件控制,与其他终端控制方式相比优势明显。同时,设计开发的手机软件具有通用性强、易于移植、市场应用价值高、易于推广等特点。本系统的设计不仅涵盖了Linux系统开发的软硬件技术,同时也包含了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。

关键字:Linux智能家居  Cortex—A8为  Android 引用地址:Linux平台智能家居的本地监控与远程监控

上一篇:基于QT的能耗管理系统终端设计
下一篇:LPC1766与Si4432的无线数据传输系统设计

推荐阅读最新更新时间:2024-03-16 13:34

苹果面容ID推出快1年 那些面部识别的安卓厂商赶上否
这显然是一句废话,但不知道诸位是否留意过,虽然安卓手机厂商从来没宣称自己采用类似苹果面容ID那样的3D结构光,但面部识别技术却是一夜之间千树万树梨花开。这当中:   1、安卓手机厂商如何实现的面部识别   2、相比苹果的面容ID区别在哪?   2、安卓品牌各自面部识别又是否有所区别?   我们今天就做个简单科普。 刘海屏手机大合集   一、苹果面容ID和安卓设备有本质区别   被广为流传的说法是:苹果面容ID和安卓手机厂商有本质区别。   相对概括的说法是,苹果靠屏幕正面顶部的一堆传感器来识别3D面部信息;而安卓厂商则大部分靠照片来建立面部信息点。至于差异在哪,我们先上一张图: 结构示意图   如图所示,苹果用了三个设备来完成
[手机便携]
三星Galaxy S23处理器调整:曾经的安卓之光Exynos被骁龙代替
三星Galaxy S系列通常采用双平台策略,像Galaxy S22系列国行、美版使用高通骁龙8芯片,而欧版使用Exynos 2200芯片。然而最新报道指出,Exynos芯片可能无缘三星Galaxy S23系列。   5月31日消息, 爆料人GaryeonHan在社交平台暗示,今年三星不再研发Exynos旗舰芯片,这意味着2023年要发布的Galaxy S23系列将全部使用高通芯片。   报道指出,三星今年发布的Galaxy S22系列提供了Exynos 2200版本和骁龙8版本,其中Exynos 2200版本存在发热、卡顿等问题,这影响了Exynos芯片的口碑。   为此三星决定开始研发Galaxy智能手机专用芯片,最快会在
[手机便携]
华硕发布Android Go手机ZenFone Live L1
根据国外媒体的消息,华硕最近在海外市场发布了一款叫做ZenFone Live L1的手机产品,这款产品并不是什么高端机型,配置非常入门,不过他却是一台支持Android Go的手机。 Android Go是谷歌针对发展中国家和新兴手机市场推出的简化版Android系统,目的是让这些地区的用户可以用相对较低的配置更稳定的运行Android操作系统。也算是针对智能手机普及做的工作。Android Go不仅进行了精简,而且还单独优化系统,同时对手机的最配置和价格进行了限制。 这次华硕推出的ZenFone Live L1采用了5.5英寸屏幕为18:9屏幕比例的720P分辨率设计,内置1GB RAM和16GB ROM存储,使用骁龙4
[手机便携]
谷歌有意开发全新车载系统 基于Android系统
    Android Auto可能只是谷歌进军汽车领域的开始而已。在谷歌日前发布的Android兼容性定义文档当中,有人发现了一个名叫Android Automobile的字眼,根据媒体猜测,这可能是谷歌正在秘密研发的另一款汽车信息娱乐系统。     那么Android Auto和它之间究竟有什么区别呢?Android Auto基本上是一款可连接汽车现有信息娱乐系统的应用程序,它需要和你的智能手机相连,后者负责提供所有的运行能力。如果没有手机,那么一切功能也就无从谈起。     部分汽车厂商会使用Android操作系统来开发自己的车载信息娱乐系统,但那些都是基于Android开源项目的第三方版本。问题在于,和手机一样,它
[汽车电子]
微软松口 WP/Android双系统手机年内问世
    据印度时报称,手机制造商Karbonn已经正式与微软签署了协议,公司研发的Windows Phone/Android双系统手机将在半年后正式发布。Karbonn公司的主席Sudhir Hasija称,这款手机将主要面向专业级以及具备一定技术能力的用户。   这款手机并不是我们所听说的第一台WP-Android双系统手机,就在去年10月,彭博社就曾爆料称,厂商们正在与微软商议推出这样的一款机器, 但Windows Phone是作为第二选择的系统。一周后,三星和华为也被列入了微软双系统手机计划的清单。很显然,微软Windows Phone授权费用的减免成为了刺激各大手机制造商采用Windows Phone的最大诱因。
[手机便携]
库克:未来更多苹果应用会登陆Android
    本文来自太平洋电脑网   去年,苹果把自家的Apple Music音乐串流服务带到了Android平台,这也是他们在谷歌这个移动平台上的首次“试水”。而根据苹果CEO蒂姆?库克最近在员工活动上的说法,苹果未来会继续执行跨平台战略,在Android上推出更多的应用产品。 苹果未来应该还会在Android上推出更多的应用   库克在这场员工活动中说道,Android版Apple Music是他们观察能否在安卓平台上进一步拓展服务的一次“试水”。尽管库克接下来并未具体透露会有哪些应用,但苹果真的打算制作更多的Android 版应用,iCloud、Apple Pay、iMessage甚至是其生产力应用是最直接的选择。 A
[手机便携]
谷歌展示Android Q折叠屏优化 可实现应用无缝过渡
在本届Google I/O大会上,谷歌介绍了新版Android Q操作系统对于折叠屏手机的支持。 Android Q利用了折叠屏的天然属性,可让多款应用同时在屏幕上运行,从而进一步强化了设备的多任务能力。此外,谷歌还加入了一项名为“屏幕连续性(Screen Continuity)”的新功能,可将用户在小屏上运行的应用无缝过渡到大屏上。 谷歌表示,今年将有多家厂商推出自己的折叠屏设备,而它们所运行的自然都是Android系统。
[家用电子]
谷歌展示<font color='red'>Android</font> Q折叠屏优化 可实现应用无缝过渡
摩托罗拉总裁称明年发布Android平板电脑
摩托罗拉联席总裁桑杰·贾(Sanjay Jha) 据国外媒体报道,摩托罗拉联席总裁桑杰·贾(Sanjay Jha)周三表示,该公司未来将加强智能机业务,并将发布一款基于谷歌Android系统的平板电脑。   贾在德意志银行技术年会上表示,他希望摩托罗拉能在明年年初发布一款Android平板电脑。“我希望开发一款极具吸引力的平板电脑,”他说,“它有望于明年年初面世。”   贾一直希望搭载Android系统的智能机能够扭转摩托罗拉的颓势,但他认为最新一代的手机软件尚不适用于平板电脑。“我将平板电脑市场视为一个机遇;它不会与智能机市场发生冲突。”他说,“iPad更接近于iPhone的延伸,而不是Mac电脑的迁移。我认为我
[手机便携]
摩托罗拉总裁称明年发布<font color='red'>Android</font>平板电脑
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved