1、 基于 Android 平台的 桥梁 监测 终端 的 开发 摘要: 随着 Android 技术的 迅猛 发展 和 日 趋成熟 , Android 操作系统在手持终端中所占比例正 逐步 上升, 其 开放性 、便携性、 良好的兼容性 、 无缝结合 网络通信等 特点 将 使 Android操作系统在 未来 工业领域中 也有着 广泛 的 应用 。 本 文 提出一种基 于 Android 平台的 桥梁监测终端的 开发 设计方案 , 该方案 的终端设 计 基于 S3C6410 处理器 的硬件平台 和 Android 1.5 版本的软件平台,通 过 Socket 编程使终端利用 Wi-Fi 无线通信 技术
2、接收 桥梁 数据, 通过 分析数据 并 将其保存到 终端 SQLite 数据库中。 终端应用程序 的界面 显示 能够 读出数据获取信息,通过 调用数据库中的 历史 数据 与当前数据进行比较 而达到 对桥梁监测的目的 。该方案重点研究接收终端的 平台 结构,系统架构和 应用程序 的设计与实现。 关键字: Android; Wi-Fi; ARM; Socket Design of Bridge Monitoring Systems Terminal Based on Android Abstract: With the rapid development and increasingly soph
3、isticated of Android technology, Android operating systems share is gradually increased. Its openness, portability, good compatibility, integration of network communication and so on will make Android operating system have a wide range of industrial applications in the future. This paper presents a
4、design of bridge monitoring systems terminal based on Android platform. This terminal design is based on S3C6410 processor and Android 1.5 software platform. The terminal receives bridge data by Wi-Fi wireless technology via Socket programming, then analyses data and saves it to the SQLite database.
5、 Terminals application program can display data on UI, and compare historical data and current data to monitor the bridge. The method focuses on platform of terminal, system architecture and design of application program. Keywords: Android; Wi-Fi; ARM; Socket 引言 (INTRODUCTION) 建国以来,我国桥梁建设发展 迅速 , 但 随
6、着时间的推移,越来越多的桥梁 因 地质灾害发生结构性损伤 将 提前达到设计 基准期。 由于桥梁 是重要的基础设施 ,且 投资巨大 , 所以 对桥梁状况的监测意义重大。 目前桥梁监测存在的主要问题有:监测仪器设备落后 , 工作量大 , 费用高 ,监测复杂且耗时长 。 监测过程中 主观人为因素较大,不能客观准确 地 反映桥梁的实际情况 。 监测技术落后, 没有充分利用现代科学技术发展最新成果和理论。 为全面 监测 桥梁状态 , 确保桥梁 的 安全 , 本文 提出 基于 Android 平台的 桥梁 监测 系统的 终端 设计方案, 以 提高 监测 和评估的可靠性 。 该系统 使用 Wi-Fi 无线通
7、信技术 来获取前端数据,通过手持终端来控制和处理数据信息 ,并 在此基础上 进一步完善人工监控、数据库系统 ,建立 与智能 技 术相结合的桥梁运行状态的分析 及 评估 专家系统 , 最终实现桥梁的 现 代化管理。 0. 系统总体概述 基于 Android 平台的 桥梁 监测 系统 的 开发包括 : 前段采集模块 、 中继模块和手持终端三部分。前端采集模块包括:处理器 、 传感器 、 调理电路 、 ZigBee 无线模块 及外围电路;中继模块包括:处理器 、 Wi-Fi 无 线模块 、 ZigBee 无线模块 、存储单元 及外围电路; 手持 终端包括 :中央处理器 、 Wi-Fi 无线模块、显示
8、单元、存储单元 及外围电路等部分 。 监测 系统运行时, 置于桥梁截面的前端采集模块启动,采集装置在一定时间里采集 一次桥梁的状态数据 : 温度、湿度、降水量、支座位移、桥梁截面振幅等 。 采集数据 经 处理器换算 成 相应的参数 ,通过 ZigBee 传输给中继模块进行本地储存。 开启 手持终端 设备 上 相应的应用程序, 选择 主菜单 的 监测 系统,点击测试按钮,终端向中继器发送指令启动其 Wi-Fi模块 并与终端的 Wi-Fi 模块 建立连接 ,中继器将其保存的数 据通过 Wi-Fi 发送给手持终端,终端在接收数据后进行解析并 在程序界面上 显示出来,同时将数据保存到本地数据库。数据接
9、收完毕,终端应用程序的查询系统可以 调用 SQLite 数据库 查询 桥梁 的 前期数据 , 预警系统将数据和门限值比较得出相应结论,评估系统利用专家系统及数据统计分析对桥梁进行科学的评估。 桥梁监测系统 框架如图 1 所示 : 前 端 采 集中 继 器桥 梁终 端图 1 系统框图 在桥梁监测系统中, 前端采集设备和中继器将收集到的 桥梁 数据传送给终端设备,而 手持 终端 的主要任务是:接收数据、处理数据、 保存数据、显示数据等,预警系统和专家评估系统也需要通过终端来完成。终端的设计在整个桥梁检测系统中 占 有着举足轻重的位置。 1. Android 操作系统 Android 是 Googl
10、e 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称, 该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件 。 Android 操作系统 基于开放的 Linux 内核 , 是真 正开放的平台 , 其 应用程序可以调用 该平台 中任何的核心功能 。 Android 的应用程序可以通过标准 API 访问核心移动设备功能 ,并通过 HTML、 JavaScript 和 WebView 嵌入网络 。 Android 提供了 完 整的多任务 运行 环境,多个 应用程序 可以 在 Android 系统中 并行运行 。
11、SQLite 是 Android 所带的 标准 数据库,支持 SQL 语句,是 轻 量级的 嵌入式数据库,可以对数据进行增、删、查、改的操作。 作为 嵌入式 SQL 数据库引擎, SQLite 没有独立的服务进程 , 直接读写原始磁盘文件 。 拥有多个表、索引、触发器和视图的完整 SQL 数据库包含在 独 立的磁盘文件中 , Android 数据库 中 的数据储存在目录 /data/data/databases中 。 Android 作为 终端操作系统 , 其 软件层次自下而上分为 :基于 Linux 内核的 操作系统层 ,各种库和 Android 运行环境 , 应用程序框架 , 应用程序 ,
12、如图 2 所示: 应 用 程 序主 屏 幕 、 联 系 人 、 电 话 、 浏 览 器 应 用 程 序 框 架视 图 菜 单 、 资 源 管 理 、 提 醒 管 理 、 活 动 管 理 库 运 行 环 境O p e n G L 、 S Q L i t e 、 W e b K i t D a l v i k 虚 拟 机L i n u x 内 核硬 件 驱 动 、 电 源 管 理 、 文 件 系 统 、 进 程 图 2: Android 软件平台结构 Android 应用程序由以下四个部分组成: Activity、 Broadcast Intent Receiver、 Service、Conten
13、t Provider。并不 是 所有的程序都 会 涉及这四部分, 只使用 Activity 类 也可完成 对 特定程序 的 设计开发 。 Android 应用程序需要在 项目 中 的 AndroidManifest.xml 描述文件 里 申明上述四个部分, 并 为 各 部分的功能和需求进行描述。 Android 系统的 UI 设计可以通过 xml 配置 、 用户界面接口 或 直接用代码生成 。 Ac tivity类是 Android 应用程序中 最基本的功能单元 ,该类 借助于 View 和 Viewgroup 两个 最基本的用户界面表达单元 显示在界面屏幕上 。 2. 终端硬件设计 Andr
14、oid 要求系统 CPU 至少为 ARM9 200MHz 才能 运行 Dalvik Java 虚拟机 , 该方案的终端设计 选择 Samsung 公司的 ARM11 S3C6410 嵌入式处理器为核心 , 其 主频 为533MHz/667MHz,最 高达 800MHz。 S3C6410 是基于 16/32-bit RISC 内核的低成本、低功耗、高性能微处理器解决方案,采用 64/32-bit 内部总线架构,内部集成多个功能强大的硬件加速器。 S3C6410 的外部存储器接口能力 极佳 , 能够 满足 Andriod 应用程序 的 开发需求 。 桥梁监测系统中, 终端 要 完成 接收数据、处理
15、数据、保存数据、显示数据 等功能 。 其硬件设计以 S3C6410 嵌入式处理器为核心 , 结合 Wi-Fi 短距离无线通信模块,再辅以 显示应用程序界面的 LCD 显示屏, 以及 USB 接口用以实现其他 功能需求 。 存储单元 为 SDRAM 和FLASH。 其 硬件结构如 图 3 所示 : S 3 C 6 4 1 0电 源W i - F i模 块U S B接 口F L A S H S D R A ML C D 显 示 屏底板图 3: Android 硬件结构 3. 终端 应用程序 设计 该方案 的 终端 应用程序设计 基于 Google研发的 Android 1.5操作系统 来 实现 桥
16、梁 监测 功能。 Android的系统构架分为应用层、应用框架层、系统运行库层和 Linux内核层 , Android应用程序的开发 通过 应用 框架与 Android底层进行交互 。 该 终端 应用程序的设计采用模块化程序设计方案, 根据终端需要 完成的任务、任务性质 及 实时性 等 要求 结合数据流程 详细划分出各功能模块。 根据 桥梁 监测系统功能的需求, 该 终端要实现的功能模块有:界面显示模块,Socket通信模块 , SQLite数据存储模块 。 该终端应用程序的设计采用 简单易懂且逻辑性更强的 MVC模式 把 应用 程序的视图层和控制层相分离 。 应用程序 设计中 ,视图层 在
17、layout目录 里 用 XML语言来编写,控制层 在 src目录里 用 Java语言来编写。 整 个 应用程序流程如图 4所示: 应 用 程 序 启 动创 建 网 络通 信 连 接W i - F i 网 络 配 置接 收 数 据S Q L i t e 数 据 库提 取 数 据将 数 据 和 相 应t e x t v i e w 控 件 关 联屏 幕 显 示 数 据进 入 菜 单关 闭 应 用 程 序解 析 数 据中 继 器 启 动W i - F i 网 络 配 置监 听 网 络通 信 连 接发 送 数 据关 闭 连 接数 据 通 信建 立 连 接否是否是是是图 4:应用程序设计流程 3.1
18、界面显示模块 设计 桥梁监测系统终端的设计中,为保证操作简单且能够方便直观 地 读取数据,良好人机界面的设计是必不可少的。该终端的应用程序界面设计中采用对功能菜单的分类来分别设计相应的界面 。 该监测 系统中,终端 应用程序 要实现的主要界面有:登陆主界面,主功能选择菜单,下属子菜单,数据显示界面四大部分,其设置如 图 5所示 : 登录界面数据显示界面监测子菜单功能选择图 5:界面显示模块 系统界面是用户对 设备操作的人机界面 ,系统界面的良好设计有助于用户对设备的操作 , 方便 进行 设备控制和 数据存储 。 软件界面采用分级结构, 界面的设计由 xml文件生成,java文件用来定义 Act
19、ivity类,并 与 对应 的 xml文件 相 关联, 通过对不同 Activity类的调用,来实现对不同界面的切换 , 这样 设计的应用程序 更具模块 化管理。 具体步骤为: 打开 Android项目里的 reslayout目录 , 用 xml语言来编辑 设计 程序界面 。首先确定界面的布局,嵌套 ViewGroup的 LinearLayout和 RelativeLayout进行 布局, 调整android:layout_width、 android:layout_height、 android:background、 android:padding、android:orientation、
20、 android:gravity等参数值, 以 达到满意的整体布局 效果 。然后在 ViewGroup布局中添 加 View控件 : textview、 button, 根据实际需要调整 各控件的 android:id、android:layout_height、 android:layout_width、 android:text、 android:textSize等参数值。 通过调整布局排列,控件位置,字体大小,最终完成对 Android应用程序 UI的布局 。 3.2 Socket 通信模块 设计 桥梁监测系统运行时,手持终端要接收中继器发送来的数据 则 必须 采用 socket通信 技
21、术 。 socket通信 使手持终端和中继器 建立连接 进行数据交互,最 终将桥梁的状态数据通过中继器传送给接收终端。 打开 Android项目里的 src文件夹 , 为 Activity创建一个相关联的 Java文件,不同 Activity对应各自的 xml界面文件 。 打开测试子菜单对应的 Java文件 ,给对应的 Button控件添加 java程序,使其完成 socket通信的建立,连接与关闭功能。 Socket工作过程如 图 7所示 : 中继 服务器首先启动,通过调用 Socket()建立一个 Socket,然后调用 bind()将该 Socket和本地网络地址绑定在一起,再调用 li
22、sten()使 Socket做好 监听 准备 ,并规定它的请求队列的长度,之后调用 accept()来接收连接。 终端 在建立 Socket后就可调用 connect()和服务器建立连接。连接一旦建立, 手持终端 和 中继 器之间就可以通过调用sendto()和 recvfrom()来发送和接收数据。最后,待数据传送结束后,双方 分别 调用 closesocket()关闭 服务。 s o c k e t ( ) , 建 立 套接 口 , 返 回 套 接 字c l o s e s o c k e t ( ) , 关 闭套 接 口 , 结 束 服 务s e n d t o ( ) / r e c
23、e v f r o m ( ), 通 过 套 接 口 交 换数 据c o n n e c t ( ) , 连 接 到中 继 套 接 口b i n d ( ) , 绑 定 套 接口 与 本 地 地 址s o c k e t ( ) , 建 立 套接 口 , 返 回 套 接 字c l o s e s o c k e t ( ) , 关 闭套 接 口 , 结 束 服 务s e n d t o ( ) / r e c e v f r o m ( ), 通 过 套 接 口 交 换数 据l i s t e n ( ) , 监 听 端 口b i n d ( ) , 绑 定 套 接口 与 本 地 地 址a c
24、 c e p t ( ) , 接 受 连接 到 终 端 接 口建 立 连 接数 据 通 信手 持 终 端中 继 器图 7:手持终端和中继器 socket连接流程 3.3 数据存储模块 设计 手持终端接收到桥梁状态数据后需要在本地对数据进行分析归类并保存在 SQLite数据库中,以便后期的调用查询 。 在该终端的应用程序设计中采用 Android系统内置的 SQLite数据库 ,该数据库 提供了 添加 (insert)、删除 (delete)、查询 (query)、修改 (update)等基本操作 。应用程序通过 SQLite创建私有的数据库以存储复杂的结构化数据 , 在 Android设备中数
25、据库位于 /data/data/databases文件夹 。 该 应用程序设计 中,通过调用 辅助类 SQLiteOpenHelper来 创建 、 打开 、更新 和 升级 数据库 。 SQLiteOpenHelper类的实现 由 调用 其 子类 : onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int)来完成 , 其中 SQLiteDatabase提供 create, delete, execute SQL commands等方法 来管理 和操作 SQLite数据库。 在桥梁监测系统中,为使前端采集设备、中继器和手持终端之
26、间的数据传输更为便捷和高效, 并满足数据存储和显示的要求,特规定 监测系统 中 传输数据所使用的数据格式如下 : 包头 包长度 指令 编号 采集设备号 数据 长度 数据正文 包尾 0x5a 66 0x01 0x12 0x01 0x06 60 数据 1 数据 2 数据 3 数据 4 数据 5 数据 6 0xa5 10 10 10 5 5 20 说明 : 包头: 0xa5 一字节( 1B); 包尾: 0x5a 一字节( 1B); 包长度: 所传输数据包的总长度,包括包头包尾,以字节为单位。 1 字节( 1B); 指令编号:一字节( 1B); 数据长度:数据正文的长度,以字节为单位 。 一字节( 1
27、B); 数据正文:包括六路数据,每路数据占用 10 个字节,共 60 字节( 60B) ,为字符串 。 数据存储 过程如图 8所示: 当 终端和中继器建立 socket连接后,中继器将保存在本地的前端采集数据包通过 Wi-Fi传递给终端。 终端 接收数据包后,在本地 按照 规定 数据格式 进行解析, 将 提取 的 相关数据在本地 SQLite数据库中保存, 并 更新数据表。 需要 调用当前或历史数据时,从本地数据库中提取 数据 , 然后进行二次处理,并将提取出来的数据 和相应的界面控件 Textview关联, 最终将数据 显示在 终端 界面上。 数 据 包S Q L i t e 数 据 库界
28、面 显 示存 储读 取显 示温度上 / 下行 速度降水量湿度桥 梁截 面振 幅支 座位 移解 析图 8: SQLite存储读取数据 桥梁监测系统 终端 应用程序 设计完成后,运行 如下: 4. 总结 本桥梁监测 系统基于 Android系统平台,其开放性 、便携性、 丰富的硬件选择 性 、 良好的兼容性 、 无缝结合 网络通信等 特 点使基于 Android平台的 手持 终端 在工业领 域具有更加 广阔 的发展 前景 。 基于 Android平台的 桥梁 监测 系统 终端的设计 ,通过前端 采集 模块获得桥梁温度、湿度、降水量、支座位移、桥梁截面振幅等 重要状态参数,利用低功耗 Zigbee技
29、术实现前端采集模块与 Android操作系统 终端 之间的 通信,通过对桥梁结构应变等基础数据的监测为桥梁 的 长期 安全维护提供方便可靠的系统方法。 参考文献 : 1 孙弋 . ARM-Linux嵌入式系统开发基础 M. 西安:西安电子科技大学出版社, 2008. 2 余志龙 . Android SDK 开发范例大全 M. 人民邮电出版社 , 2009 . 3 E2Ecloud工作室 .深入浅出 Google AndroidM. 人民邮电出版社 , 2009 . 4 靳岩 ,姚尚明 .Google Android开发入门与实践 M. 人民邮电出版社 , 2009 . 5 杨文志 .Googl
30、e Android程序设计指南 M. 电子工业出版社 , 2009 . 6 Google API大全编委会 . Google API 大全 M.电子工业出版社 , 2009 . 7 张岩 .基于 Java手机平台移动多媒体系统的设计与实现 D. 哈尔滨工业大学 ,2006. 8 韦艳玲 ,黄力 . 基于 J2ME技术在嵌入式领域的应用研究 J. 电脑知识与技术 , 2005 . 9 韦于莉 . 手机应用软件开发中 J2ME技术的应用研究 D. 武汉大学 , 2004 . 10 赵博 . 基于 J2ME的移动终端系统的研究与实现 D. 华北电力大学(河北) , 2009. 11 于少山 ,卡米力
31、 .毛依丁 . 基于 XML的即时通信系统的研究与实现 J. 重庆邮电大学学报 (自然科学版 ), 2007, (S1). 12 张辉宜 ,赵海军 ,张岚 . 嵌入式 Linux2.6内核实时化技术 J. 工业仪表与自动化装置 , 2007, (05). 13 陈粤 ,李志蜀 ,罗奕 . 基于 J2ME平台的手机通讯程序分析与实现 J. 计算机应用 , 2003, (05) . 14 帅小应 ,廉东本 . 基于 J2ME的移动位置服务 3G手机应用平台的设计 J. 计算机应用 , 2004, (11) . 15 李勇刚 ,周晓菲 ,徐明 . 基于 J2ME和 XML技术的移动商务安全设计 J.
32、 计算机应用研究 , 2006, (11). 16 臧海峰 ,张力军 . 通讯软件发展现状的分析与研究 J. 计算机与数字工程 , 2008, (02) . 17 赵亮 ,张维 . 基于 Android技术的界面设计与研究 J. 电脑知识与技术 , 2009, (29) . 18 李观华 ,范辉 . J2ME在移动通信程序中的应用 J. 计算机应用 , 2003, (03) . 19 陈昱 ,江兰帆 . 基于 Google Android平台的移动开发研究 J. 福建电脑 , 2008, (11) . 20 武海峰 . 移动应用在 Android平台上的部署 J. 程序员 , 2009, (0
33、5). 21 公磊 ,周聪 . 基于 Android的移动终端应用程序开发与研究 J. 计算机与现代化 , 2008, (08) . 22 李亮 . Android系统开发问题杂谈 J. 程序员 , 2009, (07) . 23 马越 . Android的架构与应用 D. 中国地质大学(北京) , 2008 24 罗伟 . 基于 Android平台的即时通讯系统的研究与实现 D. 湖南师范大学 , 2009 . 25 舒贤华 . 基于 Android平台的手机 Web地图服务设计 D. 大连海事大学 , 2009 . 26 王巍 . 基于 Android平台蓝牙设备音频应用的设计与实现 D. 北京邮电大学 , 2009 . 27 姚昱旻 . 基于 Android的移动学习终端平台的开发与研究 D. 中 南大学 , 2008 . 28 公磊 . 基于 Android的 GPS测量系统开发 D. 南昌大 学 , 2008 . 29 孙晓宇 . Android手机界面管理系统的设计与实现 D. 北京邮电大学 , 2009 .
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。