随着家庭生活水平的提高,普通家庭的用电设备越来越多,越来越难以管理,不但无法全面掌握家用电器的运行状况,而且偶尔出现主人出门上班家中某个设备因未关闭而起火,导致重大损失。本文提出一种基于Android的光纤智能家庭用电管理中心,为解决上述问题带来了全新的解决方案。硬件结构智能家庭用电管

首页 > 配售电 > 能源服务 > 技术 > 正文

【分享】基于Android的光纤智能家庭用电管理中心

2016-01-05 13:43 来源:环球表计 

随着家庭生活水平的提高,普通家庭的用电设备越来越多,越来越难以管理,不但无法全面掌握家用电器的运行状况,而且偶尔出现主人出门上班家中某个设备因未关闭而起火,导致重大损失。本文提出一种基于Android的光纤智能家庭用电管理中心,为解决上述问题带来了全新的解决方案。

硬件结构

智能家庭用电管理中心整体硬件结构如图1所示,由AM335X数据处理单元、用户交互单元、电源单元、通信单元、存储单元、时钟单元、拍照单元、继电器控制单元等部分组成。

图1整体硬件结构图

本文设计的光纤智能家庭用电管理中心采用基于Cortex-A8架构的ARM处理器AM335X,该处理器主频720M,具有2个CAN总线接口、6路UART串口、2个USB2.0高速OTG端口、3个I2C端口、2个SPI端口、2个10/100/1000M以太网交换机接口、SGX5303D图形引擎,并且具有多达128个GPIO,完全满足光纤智能家庭用电管理中心的设计需求。

如图1所示的电源单元包括主电源子单元、备用电源子单元;用户交互单元包括显示子单元、触摸输入子单元;通信单元包括光纤通信子单元、微功率无线通信子单元、RS485通信子单元。

其中,用户交互单元,用于显示数据处理单元的处理结果,获取用户的操作请求,并将所述操作请求发送给所述的数据处理单元;数据处理单元,用于将数据处理结果发送到用户交互单元、功能单元和通信单元,并从用户交互单元、功能单元和通信单元获取数据;通信单元,用于将数据处理单元的处理结果发送到远程集中器和本地用电设备,或从远程集中器和本地设备获取数据;光纤通信子单元,用于将数据处理单元的处理结果发送到远程集中器,或从远程集中器获取数据;微功率无线通信子单元,用于与家庭智能插座通信;RS485通信子单元,用于从本地水表、燃气表、热表获取数据。

Android系统

核心控制模块基于Android4.2系统开发,Android是一种基于Linux的开放源代码的操作系统,由Google公司和开放手机联盟领导及开发。Android分为应用程序层、应用程序框架层、系统运行库层和Linux内核层。

应用层:应用层的程序使用JAVA语言编写,本文所述的应用层软件设计就是属于这一层。

应用程序框架层:开发者通过使用核心应用程序来调用Android框架提供的API,这个应用程序结构被设计成为方便利用的组件。任何应用程序都可以公布它的功能,其他的应用程序可以使用这些功能。

系统运行库层:用户空间部分为系统运行库层,包含了系统库和运行时库两种。系统库包含了一套C/C++函数库;运行时库可以分为核心库和Dalvik虚拟机。核心库提供了JAVA语言核心库的大部分功能,Dalvik虚拟机可以提高程序的运行效率。

Linux核心层:可以完成驱动程序的设计,从而为系统提供底层服务。

在本设计中,Android系统使用Google公司开发的Android4.2版本,并不需要大量修改Android系统的代码,只需要修改Linux核心层代码,增加部分驱动程序即可使用,增加的驱动程序包括:液晶屏显示驱动程序、电容触摸屏驱动程序、光纤通信驱动程序、微功率通信驱动程序、RS485通信驱动程序载波通信驱动程序、实时时钟驱动程序、ESAM通信驱动程序。

除了Android系统本身,在系统启动之前还需要引导系统,本文使用uboot作为启动引导系统。uboot是用一段单片机代码用来作为引导程序,这个引导程序在系统启动时是最先执行的,它的主要任务是初始化硬件设备,将系统的软硬件环境带到一个合适的状态,再将内核从一种存储介质读入到内存中,然后跳到内核的入口点去运行,即操作系统。

应用层软件

Android应用包括四大组件:活动(Activity),服务(Service),内容提供者(Contentprovider),广播接收者(Broadreceiver)。

在本文描述的家庭用电管理中心中,活动(Active)就是用电管理中心应用程序,启动后始终处于前台运行状态,用户可通过应用程序的UI主界面选择要执行的操作,包括选择查看当前用电量、查看历史用电量、智能开关状态、查看用电曲线、设置定时开关等操作。下图为显示总用电曲线的流程图。

图2显示总用电曲线的流程图

 

Android系统中,服务(Service)能在后台运行,不要用户界面,用来执行需要长时间处理的组件,能够在后台持久的运行,其它组件可与Service绑定,甚至能进行跨进程的通讯(IPC:interprocesscommunication)。本文中服务包括抄读水、电、气、热四表当前数据、检测周围坏境、智能开关控制等操作。服务的软件框图3所示。

图3软件功能框图

活动(Activity)与服务(Service)之间的通信通过Activity与后台服务绑定,通过中间对象Binder的实例操作后台服务实现,活动与服务绑定后,就可以获取进度信息和服务的状态。

由于在后台服务程序中,有一些程序需要长期运行,并且等待时间较长,例如数据存储等功能需要较长时间运行,会造成活动与服务通信时间过长,操作界面假死,为了避免这种情况,在服务中创建新线程来执行数据存储、环境检测、水、电、气、热表通信等持续运行的操作。服务创建线程后,如果要对线程进行控制(启动,暂停,停止等),那么服务中只要保留线程的引用,就可以直接调用线程的其它方法了。运行的线程要向服务发送消息的话,使用Handler就可以了。

Android平台内置了一套SQLite数据存储机制,并包含了一系列管理SQLiteDatabase的相关方法,如创建、打开数据库以及执行SQL命令等,应用程序可直接使用这些方法来构建私有存储系统,在创建ContentProvider时也可以借用这些方法。本文描述的家庭用电管理中心就选用了Android内置的SQLite数据库。

总结

本文介绍了基于Android的光纤智能家庭用电管理中心的硬件和软件设计,重点介绍了Android系统下应用软件的整体软件架构,以及活动、服务、线程之间的关系。目前基于Android平台的技术方案虽然已经成熟,但本产品尚未经过长期运行实验,其稳定性和安全性仍有待于进一步验证。

基于Android的光纤智能家庭用电管理中心相比于传统的基于Linux或uC/OS-II等系统的用电管理系统具有明显的优势,例如可扩展性强、应用丰富、操作简单、界面友好等,利用Android平台,可以很容易的扩展充电桩的额外功能,例如:

结合GPS功能与Android的地图应用服务,实现每一用户的精确定位,实现火警自动报警自动定位。

结合Android系统内置的相机程序及人脸检测相机程序,可实现家庭进门自动拍照防盗功能。

采用载波和光纤结合技术,即使网络连接断开,依然可以通过载波与上行集中器通信,将重要事件上报主站,实现断网报警。

原标题:【分享】基于Android的光纤智能家庭用电管理中心

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。
展开全文
打开北极星学社APP,阅读体验更佳
2
收藏
投稿

打开北极星学社APP查看更多相关报道

今日
本周
本月
新闻排行榜

打开北极星学社APP,阅读体验更佳