首页 基于Android的物联网监控手机软件设计(可编辑)

基于Android的物联网监控手机软件设计(可编辑)

举报
开通vip

基于Android的物联网监控手机软件设计(可编辑)基于Android的物联网监控手机软件设计(可编辑) 基于Android的物联网监控手机软件设计 重庆大学本科学生毕业设计(论文) 基于Android的物联网监控手机软件设计 学 生: 学 号:20085025 指导教师:教授 专 业:电子信息工程 重庆大学通信工程学院 二O一二年六月 Graduation DesignThesis of Chongqing University Design of Android-Based Internet of things monitoring phon...

基于Android的物联网监控手机软件设计(可编辑)
基于Android的物联网监控手机软件设计(可编辑) 基于Android的物联网监控手机软件设计 重庆大学本科学生毕业设计(论文) 基于Android的物联网监控手机软件设计 学 生: 学 号:20085025 指导教师:教授 专 业:电子信息工程 重庆大学通信工程学院 二O一二年六月 Graduation DesignThesis of Chongqing University Design of Android-Based Internet of things monitoring phone software Undergraduate: He Feng Supervisor: Prof.Zhang Ling Major: Electronic Information Engineering College of Communications Engineering Chongqing University June 2012 摘 要 2007年美国Google公司向外界展示Android操作系统,将Android手机的兴起推向高潮。Andriod系统的各大优点运用到了诸多领域,同时Android软件运用具有面向对象思想的Java语言编写,极大的促进了软件的灵活性。另一方面,物联网也是新一代的高端技术,运用Android的高性能优点,将其运用到物联网监控中定会是一项非常前沿的技术。本文将介绍如何用Android软件实现对物联网监控端进行实时监控。 该系统分为硬件端监控端和软件端手机端,其硬件端主要通过STM32单片机实现,通过温度传感器,加速度传感器以及脉搏心跳传感器,对人体的体温、姿态、心跳速率及脉搏速率进行测量,并通过GPRS模块或串口采用三种法式包括短信,WIFI和J2EE服务器传送监控数据到手机端。软件端主要采用Java语言编写,实现对数据的处理、显示以及备份等功能。三种通信方式各有所长。 对于整个系统,已基本实现预期功能,同时也能对其进行拓展,例如手机与监控端的相互交互等。对于后续的研究工作希望能和读者一起探讨。 关键词:Android,物联网,热点,监控 ABSTRACT In 2007, Google's Android operating system to show the rise of the Android phone to a cli. The major advantage of the Andriod system applied to many fields, while the use of the Android software written in Java language, object-oriented thinking, to promote the flexibility of the software. Internet of Things, on the other hand, is a new generation of high-end technology, the use of high-performance advantages of Android will be applied to the monitoring of Internet of Things will be a very cutting-edge technology. This article describes how to use the Android software to achieve real-time monitoring of Things monitoring client. The system is divided into the hardware side control side and the software side mobile terminal, the hardware side by STM32 microcontroller, temperature sensor, accelerometer, and the pulse of the heartbeat sensor, body temperature, posture, heart rate, and pulse rate measurement, and three French including SMS, WIFI, and a J2EE server to send control data to the mobile terminal through the GPRS module or serial. Software side using the Java language to write the data processing, display and backup functions. For the entire system has been basically achieve the desired functionality, but also to expand, such as mobile phones and monitor the client interact with each other. And readers to discuss follow-up research. Key words: Android, Internet of things, Wifi, monitor 目录 中文摘要 ? ABSTRACT ? 1绪论 11.1 设计背景 11.2 国内外研究现状综述 1 1.3 设计特点 2 1.4 设计功能概述 2 1.4.1 物联网监控端的硬件 2 1.4.2 Android 应用程序 3 2 相关技术及开发工具简介 4 2.1 Java语言简介 4 2.1.1 Java技术的特点 4 2.1.2 Java ME简介 5 2.1.3 Java EE简介 5 2.2 Android系统简介 6 2.3 Java及Android开发工具简介 7 2.3.1 MyEclipse集成开发环境 7 2.3.2 Android SDK 7 2.3.3 Android ADT 8 3 基于Nios II的物联网监控端设计 9 3.1 系统结构 9 3.1.1 硬件结构 10 3.1.2 软件结构 10 3.2 监控端硬件设计 11 3.2.1 信息采集端硬件设计 11 3.2.2 信息接收与传输硬件设计 12 3.2.3 监护端硬件设计 12 3.3 监控端软件设计 13 3.3.1 体征信息采集端的软件设计 13 3.3.2 体征信息接收与传输端软件设计 15 4 基于Android的手机软件设计 164.1 设计概述 16 4.1.1 研究目标 16 4.1.2 需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 16 4.2 基于UDP协议的Wifi通信设计 17 4.2.1 UDP协议简介 17 4.2.1 PC端串口程序设计 18 4.2.3 数据包的解析法则 20 4.2.4 UDP发送及接收程序设计 22 4.2.5 热点的配置 23 4.3 短信接收及解析设计 25 4.3.1 短信接收程序设计 25 4.3.1 文件的存储与读取 26 4.4 基于J2EE的网页监控设计 27 4.4.1 Tomcat服务器简介 27 4.4.2 基于Serverlet的网页设计 27 4.4.3 基于JDBC技术的MySQL数据库操作 28 4.4.4 手机端嵌入网页的设计 29 4.5 系统架构及界面设计 29 4.5.1 系统程序文件结构及功能 29 4.5.2 系统界面设计 29 5 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 31 参考文献 32 附录A:手机端程序主要源代码 33 1 绪论 1.1设计背景 近年来,Android手机兴起的趋势无法阻挡,而至今年Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,在我国更是高达58%,终结了Symbian的霸主地位,跃居全球第一,在今后一段时间内Android将更广泛的普及和发展。对于Android手机应用软件,中低端目前的主流应用很多,而现在Android最高版本为4.0.3,相比于苹果系统有过之而无不及,今后的发展一定相当乐观。而Android系统的手机软件大多采用Java语言编写,其跨平台和面向对象的特点,无论是从界面还是性能来讲,都能更方便更强大地满足用户的高要求。根据其良好的发展趋势,对本课题也值得去研究。另一方面,物联网是新一代信息技术的重要组成部分,其概念一经提出就一直是一大热门,它在各种感知技术上的广泛应用以及对智能信息处理的能力并且对物体实施智能的控制已然成为下一个推动世界高速发展的重要生产力,具有节约成本提高经济效益等优势更可以为全球经济复苏提供技术动力。如此高端热门且发展趋势十分乐观的两种产品??Android手机和物联网相结合而产生的该课题《基于Android的物联网监控手机软件的设计》必将广泛应用在今后的实际生活中。 1.2 国内外研究现状综述 对于物联网的研究,国外要比国内研究较早,技术也相对成熟,在很早的时候美国施乐公司将其应用用到售货机上,而现今美国有很多大学在做了大量工作在物联网的研究生上。同时国外很多知名企业都做了网联网技术方面的研究,例如美国的克尔斯博公司,它是国际上率先在该领域取得研究成果的先驱之一。相比之下,国内在物联网技术上的研究相对落后,不过也在硬件和软件房间取得了相应的突破,在基于国外的技术之上开发了自己的中间软件。 另一方面,Android智能手机在国内也是越来越高端,像去年上市的小米手机轰动全国,与之匹敌的华为荣耀接而上市,把中国Android手机应用推向高潮。当然,伴随着手机的兴起,无论是游戏还是应用软件,小到个体程序员大到世界五百强的软件公司,Android手机软件都必然将风靡全球。 与此同时,新兴的物联网监控技术与如今正如火如荼的第三代移动通信想结合,将改变现有的物联网监控模式,使监控人员无论身在何处无论何时都可以对需要进行监控的设备信息进行监控,这样也不用每天坐在办公室或监控室守着一台监控器,使这样实时的监控工作更加方便。 1.3 设计特点 本系统主要针对人体如体温,姿态,心跳及脉搏等数据进行测量监控,对于这些数据监控,我们的监控端应该具备实时、可靠、无线连接、体积小等特点,同时应该尽量使监护行为不对用户的日常活动产生影响,即佩戴在人体身上让人不会有生理或心理负载同时也能准确的测量各种数据信息。由此我们设计了面向家庭的便携式可穿戴的远程智能监护仪。本作品分为信息采集端、信息接收与传 输端和监护端。在被监护人一端,只需佩带信息采集端,就能在满足低生理、心理负荷条件下,实现人体日常姿态、体温、脉搏、心跳等生命体征信息的获取,并且通过多种无线传输方式如短信,Wifi以及搭建J2EE服务器技术等最终将数据传输至便携式监护端、手机监护端、远程监护端进行分析和处理,监护人可远程查询被监护人的生理情况,在被监护人生理情况出现异常时,系统自动采取多种报警即应急措施。 本监护仪区别于传统的大型 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 仪器,利用SOPC的思想将监测人体姿态、体温、脉搏、心跳等基本生命体征的传感器集中在一起,小巧方便可穿戴,减小了生理负担,便携易用。医护人员可实时查看被检测人的姿态、体温、脉搏、心电等生命体征信息,并可以将实时信息存储到手机端SD卡等非易失存储设备中。结合日益成熟的J2EE技术以及目前异军突起的Android技术,通过自行设计的Android手机软件,让Android智能手机也能成为本系统的监护端的一部分,可根据不同情况选择更适合的远程监护模式,随时随地被监护人的生理状况尽在掌握。Android技术的运用使得本系统紧跟信息时代的步伐,给使用者提供了更为熟悉和便捷的用户体验。 1.4 设计功能概述 本课题完成了基于Andriod的手机软件设计,以及STM32单片机对GPRS模块(M20)进行控制的硬件设计和软件设计。用java语言完成的一款能够在Andriod手机运行的手机软件,通过可行的三种方式--短信、Wifi和网页,接收实验板发送的通过温度、加速度等传感器测量的数据,并在手机屏幕上实时显示同时将实时记录保存子手机SD卡的txt文件中。 1.4.1物联网监控端的硬件 物联网监控端可分为信息采集端、信息接收和 传输端。所用到的硬件开发平台包括DE2-70开发板、LB3开发板、物联网调试板。在被监控的场所如汽车、寝室安装好该系统,通过温度、加速度传感器采集当前信息,并通过无线传输的方式发送给接收和传输端。 信息接收与传输端主要是通过串口将数据发送到PC端,让PC端进行数据处理和编码,最终发送到Android 手机上。同时该模块也要通过GPRS模块与Android手机取得通信,能接受Android手机反馈回来的信息。 1.4.2 Android应用程序 该模块主要是在具有Android系统的手机上运行,以接收监控端发送过来的短信并进行解码,把实用的温度、加速度等信息直观明了简单的显示在该软件上。其软件的编写将使用Java语言在MyEclipse集成开发软件上进行开发并搭建SDK和ADT10.0.0的Android模拟器,并且能达到界面美观信息显示方式大方明了且能对历史信息进行保存和查看的功能。同时也可以根据该软件与监控开发板进行反馈。 2 相关技术及开发工具简介 2.1 Java语言简介 Java是一种面向对象的可以撰写跨平台应用软件的程序设计语言, Sun Microsystems公司在1995年5月推出了Java平台(即JavaSE, JavaEE, JavaME 的总称)和Java程序设计语言。本设计用到了JavaEE, JavaME两大技术。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,本论文中实现的物联 网监控系统就是基于Java技术编写的,因此,在本章将对Java技术作一个简要的介绍。 2.1.1 Java技术的特点 JAVA是非常新的一种语言1995年正式发布,具有面向对象、分布式、解释执行、健壮性和安全性、体系结构中立、可移植、多线程、以及动态性等特点。和其他编程语言相比,它有很多优点。使用JAVA的优点具体体现在以下几个方面: 1封装 Java是一种面向对象的语言,它的封装特性是将具有一定特征的事物封装成一个类,在类中用Private将所有成员变量定义成私有的,要想通过另一个类得到或改变该成员变量必须调用该类的Get和Set方法。这样就可以将一个类封装成一个独立的事物,有助于程序代码的维护。 2继承 顾名思义,Java继承就是是使用已存在的类的定义作为基础建立新类,新类可以用父类的功能,也可以增加新的数据或新的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。 3多态 多态具体 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现在重写和重载,多态就是类的多种表现方式,比如在同一个类中可以有名字相同但参数不同的方法,同时子类也可以重写父类的方法。这样便可以改善代码的组织结构,增强代码的可读性。 2.1.2 Java ME简介Java ME 以往称作J2ME(Java Platform,Micro Edition), 是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的。根据Sun的定义:Java ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,本课题中的Android手机应用就是Java ME最广泛的应用。 2.1.3 Java EE简介 JavaEE 是 J2EE的一个新的名称,其主要是企业级的运用。其三大框架Spring、Struts、Hibernet将该技术构建的淋漓尽致。JavaEE技术很多时候运用于网站的搭建上,采用MVC模式建立自己的网站会是一个很完整的过程。如图所示JavaEE的架构图: 图2.1 JavaEE架构图 2.2 Android系统简介 Android是Andy Rubin公司开发的一种以Linux为基础的开放源代码操作系统,主要使用于便携设备例如手机MP4等。2005年由Google收购注资,2007年正式向外界推出Android系统,逐渐扩展到平板电脑及其他领域上。Android系统在手机上的应用已经占据了主要市场。2011年第一季度,Android在全球的市场份额首次超过之前独步天下的塞班系统,跃居全球第一。 2012年2月数据,Android系统占据全球智能手机操作系统市场52.5%的份额,中国市场占有率更高,为68.4%。 Android的系统采用了分层的架构,这也是与其它操作系统的不同之处。Android分为四个层,从低层到高层分别是linux核心层、系统运行库层、应用 程序框架层、应用程序层。 Android手机软件主要采用Java语言编写,打包为.apk格式供用户下载安装到Android系统上。所以结合Java面向对象的语言特点,Android软件在游戏、界面等方面居于显著的优点。图2.2为Android系统架构图。 图2.2 Android系统架构图 2.3 Java及Android开发工具简介开发Java程序一般会用到EclipseIDE工具,开发Android程序需要在Eclipse中集成Android SDK以及ADT模拟器,这样就可以方便开发及测试Android程序了,下面将介绍这几种开发环境。 2.3.1 MyEclipse集成开发环境 MyEclipse是一个用于开发Java的软件集成环境,十分好用,其功能非常强大,支持也特别广泛,特别是对各种开源产品的支持想当不错。它是在EclipseIDE的基础上进行了扩展,我们可以利用它更方便的在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面完成工作。同时它也是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持6>HTML, Struts, JSP, CSS, Javascript, Spring , SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类: JavaEE模型 WEB开发工具 EJB开发工具 应用程序服务器的连接器 JavaEE项目部署服务 数据库服务 MyEclipse整合帮助 以上每一种功能上的类别都可以再Eclipse中得到相应的体现,并通过一系列的插件来实现它们。MyEclipse在Eclipse的基础上,可以让我们在不影响其他模块的情况下,对任一模块进行单独的升级和扩展。 也就是说,MyEclipse是Eclipse的插件,也是一款功能强大的Java集成开发工具,支持代码编写、调试以及Debug等,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。 目前,MyEclipse经历了许多版本,本课题用到MyEclipse8.5版本。经过了MyEclipse 8.5 M1和MyEclipse 8.5 M2两个版本,MyEclipse Enterprise Workbench 8.5 for Eclipse 3.5.2终于在2010年3月28号正式发布了!在官方网站上 MyEclipse 8.5 可以下载了,该版本集成了 Eclipse 3.5.2,提升了团队协作开发、开发周期管理以及 Spring 和 Hibernate 的更好支持。 2.3.2 Android SDK SDK(software development kit)是指软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此,Android SDk 指的既是Android专属的软件开发工具包。开发android必须下载及安装Android SDK,现在已有很多SDK版本,本课题用是是Android API 10也就是Android2.3。 下载好Android SDK后,开始安装,Android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本。直接下载jdk安装文件安装更为方便。[1] Android SDK不用安装,下载后,直接解压即可, 将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。使用Eclipse进行android应用开发需要给Eclipse装adt插件,这样Eclipse就可以和android sdk建立连接,可以在Eclipse中启动android模拟器进行程序调试等ADT插件安装这里不再累赘,也可以下载adt的zip包安装 安装完插件后,需要做一些简单的配置: 在MyEclipse中,选择Window Preference; 从左侧的菜单中,选择Android项; 设置SDK Location,点Browse选择SDK的安装根目录; OK,完成。 2.3.3 Android ADT 在开发Android的过程中,不可能一直用真机进行测试,因此必须安装ADT插件,这样就可以再MyEclipse中使用Android模拟器进行调试了。ADT就是一些特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。也就是说它是开发工具包集合,是整体开发中所用到的工具包。 有了这个工具包就可以对程序进行模拟器测试,如图2.3Android模拟器界面: 图2.3 Android模拟器界面 3 基于Nios II的物联网监控端设计 本章将介绍整个硬件监控端以及信息接收端的设计,由于硬件电路板已经是做好的,而且本课题主要重点在于手机端软件的设计,所以本章只是从理论 上介绍其设计实现。如何用温度和加速度等各种传感器检测到人体的体温和姿态,如何将检测到的数据进行编码,如何将检测到的数据通过无线发送到信息接收端,如何将信息接收端接收到的数据打包准备发送到手机以及通过串口发送到PC机,这些问题都将在本章得到解决。 3.1 系统结构 本系统以Altera FPGA开发平台为核心,采用各种人体传感器对人的体温、脉搏、心电等生命体征信息进行采集,利用三轴加速度传感器实现对人体姿态的采集,通过无线的方式进行传输,通过软件应用程序在触摸屏上显示交互界面,通过触摸屏与PS2键盘进行数据的输入。另外,监测数据存储在大容量SD卡中,用户可以通过网络、GPRS进行远程监护。图3.1是系统结构示意图。 图3.1系统结构示意图 系统主要包含三个层面,即信息检测层、信号处理层、信息反馈层。信息检测层完成数据的检测与数据的无线发送,信息处理层完成数据的无线接收与信息处理,信息反馈层实现人机交互与有效信息的各种反馈,系统框图具体如图3.2所示。 图3.2系统结构框图 3.1.1 硬件结构 系统硬件由体征信息采集端、体征信息接收与传输端和监护端硬件组成,需要进行的硬件开发包括信息采集端硬件电路的设计、接收传输端硬件电路设计、GPRS模块接口电路设计、无线模块电路设计、各种传感器接口电路设计,以及监护端SOPC系统的构建。 图3.3监控端硬件结构示意框图 3.1.2软件结构 采集端主要用于控制各种传感器以及CC1101无线模块的正常工作,因此主要设计了对脉搏传感器以及心电传感器的A/D采样算法,温度传感器读取温度算法、CC1101控制算法等。为了保证电池的使用时间,还设置了无线模块的低功耗模式等。监控端软件结构图如图3.4所示: 图3.4监护端软件结构图 3.2 监控端硬件设计 本系统的采集端以STM32F101C6为控制核心,对各种传感器进行编程控制,将采集所得到的体征信息通过无线方式进行传输。在IAR5.4开发环境下编写应用程序。 本系统的接收与传输端也是以STM32F101C6为控制核心、对M20(GPRS)模块、CC1101无线收发模块以及232串口进行编程控制。在IAR5.4开发环境下编写应用程序。 本系统监护端以带MMU的Nios II CPU为核心,以Linux操作系统作为底层平台,以图形库作为应用接口,通过avalon总线接口的自定义模块与LTM、PS/2键盘、SD卡等硬件设备相接。通过Linux驱动模型管理自定义模块的相应驱动,通过轻量级图形库FTK GUI的API接口编写应用程序。 3.2.1 信息采集端硬件设计 采集端硬件电路主要包括电源电路、Jlink下载调试电路、信号采集电路、加速度传感器电路、CC1101无线电路等,其硬件电路框图如图3.5所示。 图3.5信息采集端硬件框图 由于采集端是佩戴在人体身上,所以选择可充电3.7V锂电池作为电源,由于部分传感的工作电压为5V和为了保证使用的时间考虑使用两节电池串联的方式供电。 由于脉搏传感器采集出来的脉搏信号个体差异比较明显,当被检测人员身体发生抖动时可能出现负电压的脉搏信号,所以在脉搏信号输入A/D前通过了1.1V的电平提升电路,避免了负电压的出现。 3.2.2信息接收与传输端硬件设计接收与传输端主要包括电源电路、Jlink下载调试电路、232接口电路和GPRS接口电路等,其硬件电路框图如图3.6所示。 图3.6接收与传输端硬件框图 3.2.3监护端端硬件设计 根据系统设计需求,在Nios II系统中添加的必要外设有:充当内存的SDRAM,SSRAM,串行芯片EPCS,固化程序的FLASH,调试用的串口JTAG,系统时钟,辅助时钟,以及自定义模块:SD卡、PS/2、USB口、网口等。SOPC系统配置如图3.7所示。 图3.7 SOPC系统配置 3.3 监控端软件设计 3.3.1体征信息采集端的软件设计 体征信息采集端的软件 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如图3.8所示。本部分软件设计主要完成 STM32对信号的采集处理与无线发送。 图3.8信息采集端软件流程图 温度传感器软件设计 本设计采用DS18B20数字温度传感器来采集人体温度。DS18B20数字温度计提供12位(二进制)温度读数,信息经过单线接口送入DS18B20或从DS18B20送出。DS1820的测量范围从古-55?到+125?,可在1s内把温度变换成数字。 STM32控制DS18B20完成一次温度转换必须经过3个步骤:复位、发送ROM指令、发送RAM指令。每次对DS18B20的操作都要进行以上三个步骤。 复位:STM32将数据线拉低至少480us,然后释放数据线,等待15-60us让DS18B20接收信号,DS18B20接收到信号后,会把数据线拉低60-240us,主机检测到数据线被拉低后标识复位成功。 发送ROM指令:ROM指令表示主机对系统上所接的全部DS18B20进行寻址,以确定对哪一个DS18B20进行操作,或者是读取某个DS18B20的ROM序列号。 发送RAM指令:RAM指令用于单片机对DS18B20内部RAM进行操作,如读取寄存器的值,或者设置寄存器的值。 姿态检测算法 人体姿态检测是医疗监护的重要方面,通过对运动姿态检测,有益于对运动障碍病人进行诊断和治疗,为医疗康复提供重要的参考数据,由于本系统中需要测试脉搏、心电、体温等其他体征信息所以只是测试人体处于静止状态时的一些姿态信息。 本文在测试者腰部佩戴传感器来检测运动时加速度信息。将X、Y、Z三轴所得到的加速度信息送给单片机进行A/D采样,在软件上通过对三轴加速度数据分析,设计出一套判断人体姿态的算法。姿态算法流程图如图3.9所示。 图3.9 姿态算法流程图 3.3.2体征信息接收与传输端软件设计 体征信息接收与传输端的软件流程图如图3.10所示。本部分软件设计主要完成STM32对信号的无线接收处理及串口发送,GPRS短信收发。 图3.10信息接收与传输端软件流程图 通过无线传送到信息接收端,然后将数据打包,用一个Byte数组存放并将该数据通过串口发送到PC机上,或者解析成相应的温度加速度值,在温度大于33?C时采用短信的传输方式将数据发送到手机端。 4 基于Android的手机软件设计 本章主要介绍手机端整个系统软件的实现过程,也是本课题的核心设计。采用3种不同的通信方式??短信、Wifi、网页接收监控端发送过来的数据,每种通信方式相互独立,可供用户选择使用。同时也将介绍Wifi热点的配置以及Android开发中几个重要的问题,不仅仅应用于该课题,相信在其他很多地方这些知识也是相当有用的。 4.1 设计概述 4.1.1 研究目标 1 了解Android应用程序的设计和开发过程。 2 使用多种组件进行Android 监控软件的开发。 3 采用多种通信方式接受监控端发送的数据并显示。 4.1.2 需求分析 该软件是为了实现接收从监控端硬件板上发送到手机端的监控数据,实现 在手机上安装好改程序后能够正常启动并开始对监控端发送的实时数据进行监控显示。该软件的首页会有三个选项,每个选项对应相应的监控模式所选择的通信方式,每种通信方式对应功能分别如下: 短信监控模式 该模式是实现接收监控端发送的短信数据,并进行解析,在屏幕上 显示。当监控端测量到温度超过37摄氏度时会自动向所设定的手机发送报警短信。手机端将接收到的短信进行解析并实现报警的效果,同时将该条信息存放到某固定的TXT文件中,方便随时对历史报警记录的查看。 Wifi监控模式 该模式需要实现将电脑设为热点,手机通过其Wifi功能与电脑进行连接,同时接收由监控板通过串口将数据发送到PC机再由PC机通过UDP协议将数据发送到手机。手机端需要实时接收并显示温度和姿态等数据。 网页监控模式 该模式需要实现搭建J2EE服务器,构建自己的网站。使用JSP,Serverlet,JDBC等技术在公共网络上显示监控板通过串口发送到PC机上再由PC机将数据部署到tomcat服务器上。手机软件通过点击网页监控按钮直接访问该网站达到实时监控的效果。 三种监控模式可以互相切换,其中短信模式实现报警功能,所以无论该软件是否处于运行的状态,都将随时监控是否收到报警短信,并直接用Toast的方式显示在手机屏幕上。如图4.1所示系统结构图: 图4.1 系统结构图 4.2 基于UDP协议的Wifi通信设计 4.2.1 UDP协议简介 UDP 是User Datagram Protocol的简称, 中文译为用户数据包协议,是一种无连接的传输层协议,提供不可靠信息传送服务。在网络中用于处理数据包,与TCP协议有类似的地方。在七层协议中位于第四层??传输层,在IP协议的上一层。UDP有不能对数据包的排序和不提供数据报分组、组装和的缺点,也就是说,当数据发送出去以后不能知道接收端有没有收到或者数据有没有到达。 不过UDP与TCP相比具有速度快的优点,能够一直不停的发送数据而不需要服务器端发送反馈信息。直至今日,UDP也是一种非常实用和可行的网络传输协议。如下图4.2所示为UDP传输原理图: 图4.2 UDP传输原理 4.2.2 PC端串口程序设计 串口程序主要是通过串口接收监控板端发送到PC的数据,以byte数据流的形式接收。在设计程序中必须引入Javaxm包,下面介绍该包中几个重要的类: //.mport: 这是用于描述一个被底层系统支持的端口的抽象类。它包含一些高层的IO控制方法,这些方法对于所有不同的通讯端口来说是通用的。 //.mPortIdentifier: 这个类主要用于对串口进行管理和设置,是对串口进行访问控制的核心类。主要包括以下方法 (1) 确定是否有可用的通信端口 (2)为IO操作打开通信端口 (3)决定端口的所有权 //.ialPort: 这个类用于描述一个RS-232串行通信端口的底层接口,它定义了串口通信所需的最小功能集。通过它,用户可以直接对串口进行读、写及设置工作。 程序的组成架构.图4.3为串口发送流程图: 图4.3 串口发送流程图 该模块的主要功能是实现通过串口从开发板上接收数据。 (1)SerialDemo类: 图4.4 用户界面 该类主要负责创建串口接收的面板,用于与用户之间的交互。用户可以通过该面板设置串口的参数并且通过串口发送和接收数据。 其中Choice控件提供给用户用来选择波特率,输入流控制方式,输出流控制方式,数据位,停止位以及奇偶校验。还有两个TextArea用来发送和接收数据。 (2)SerialConnection类用来连接串口,主要调用的函数是//.PortName;该函数用于打开电脑发现的串口,并返回串口的ID。然后调用SerialPortportId.open"SerialDemo", 30000函数用来打开串口,并调用设置串口的函数,用来把在SerialDemo中设置的串口相关的参数传递到SerialParameters中,并在该函数中定义一个输入流和一个输出流。 InputStream?is??sPort.getInputStream;//从外设获取数据 OutputStream?os??sPort.getOutputStream;//发送命令到外设(3)SerialConnectionException类,用于处理串口连接的异常。 4.2.3 数据包的解析法则 在PC机上采用串口的方式接收监控端发送过来的数据并不是直观明了的,这是采用一定的法则在监控端将数据编码打包,将整个数据包一帧一帧的发送到PC机。所以在PC端就需要对该数据包进行解码,把各项数据直观明了的解析成人所能理解到的信息,如温度加速度等具体的值,这样讲解析出来的字符串直接通过UDP协议发送到手机端就非常直观了。 其具体的解析法则是根据监控端的打包法则,一项一项的提取数据,首先分析数据包的结构:数据包是由255个十六进制数组成的Byte数组,其中以“FFFF”开头,以“EEEE”结尾,表明每一个数据包的开始和结束,接下来是以“AAAA”或“BBBB”形式的字节数连接,其中“AAAA”表示心跳监控,“BBBB”表示脉搏监控,之后连接两位十六进制数“XXXX”表示温度位,然后同样以两位十六进制数表示姿态,接下来连接244位十六进制数表示心电的波形图,其后分别连接一位十六进制数表示心跳(或脉搏)平均值和一位十六进制数表示心跳(或脉搏)最大值。整个数据包结构如下图4.5所示: 图4.5 监控端发送数据包结构 在发送过程中,监控端以200ms每帧的速度发送数据包,在接收端由于会造成堵塞,所以并不能保证每次收到的数据时一个完整的数据包,这个时候就需要对数据包进行判断,只有当接收到一个完整的数据包时才进行解析,否则就继续等待。具体实现方式如下: 首先将每次接收到的数据包(即长度为256的Byte数组)转换为16进制并且用字符串的形式存放。 创建一个成员变量StringBuffer,用于对接收到并转换成字符串的数据进行临时存放。 将字符串添加到StringBuffer中并将StringBuffer转换成字符串。此时如果是一个完整的数据包,该字符串的长度应该是512位。 截取字符串的前4位,判断是否等于“FFFF”,如果是则认为是一个数据包的开始,执行下一步;如果不是,等待。 判断该字符串的长度是否大于等于512,若大于等于,则执行下一步,否则继续等待。 截取字符串的5到8位,判断等于“AAAA”或“BBBB”,若为“AAAA”则为心跳监控,若为“BBBB”则为脉搏监控。(只有两种情况) 截取字符串的9到12位,将字符串转换为十六进制数,这里用到了Java Util类的Integer.parseInts, 16方法,其中s表示所需要希望转换成整数的字符串,16表示按照十六进制转换成整数。将转换的整数乘以系数0.0625表示温度值,是一个浮点型数值。 截取字符串的13到16位,将字符串转换为十六进制数表示姿态位,所得到的整数可能为0,1,2,3,4,5,6七中情况,分别代表“姿态转换中”,“直立”,“平躺”,“右侧卧”,“左侧卧”,“匍匐”,“倒立”。改数值以字符串表示监控到的姿态。 截取字符串的17到504位,将字符串转换为十六进制数表示心跳(脉搏)波形位,将这244个数据存放到整形数组中,方便之后的画图操作。 截取字符串的505到506位,将字符串转换为十六进制数表示心跳(脉搏)最大值,将该数据用整形变量存放。 截取字符串的505到506位,将字符串转换为十六进制数,用6000处以该数据表示心跳(脉搏)平均值,用整形变量存放。 处理完后删除字符串的前512位,这里用到sb.delete0, 512方法直接删除StringBuffer中的0到251位字符。 每接收到一次数据将转换的字符串添加到StringBuffer的末尾并依次执行A-L的步骤。 具体解析流程如下图4.6所示: 图4.6 数据包解析流程图 解析完毕后各项数据就能够直观明了的现实出来了,本课题中我只对温度和姿态进行发送,其他数据可在今后扩展功能中用到。 4.2.4 UDP发送及接收程序设计 在PC端收到监控板发过来的数据的同时,必须要向手机端将解析好的数据不停的发送,同时手机端要通过线程实现不停的接受数据并实时的更新屏幕上显示的内容。要想实现此功能我采用了UDP通信协议以及Android线程等技术。 服务器端(PC端) 服务器端主要负责将从监控板接收到数据解析成字符串后发送到客户端,这里需要用到java.net包里面的DatagramPacket类,DatagramPacket表示数据报包。 数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。其构造方法DatagramPacket dp new DatagramPacketbytes, bytes.length, InetAddress.getByNamehost, port,其中bytes表示需要传送数据的二进制值数 组,然后得到其长度,host表示与之建立连接的IP地址,最后是端口号。这样就将需呀发送的数据打包成了一个DatagramPacket。 打包好后需要将数据包发送出去,发送数据包也将用到java.net包里面的DatagramSocket类,它表示用来发送和接收数据报包的套接字。 数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。这里直接调用该类的senddp方法,其参数dp即为刚刚打包好的数据报包。很简单的两个类就实现了UDP服务器端的发送。 客户端(手机端) 客户端在Android手机上实现,主要还是基于Java UDP通信。手机端同样用到DatagramSocket和DatagramPacket类,首先创建一个DatagramSocket对象,同时在构造方法中构造端口号,如:DatagramSocket s new DatagramSocket1234 ,创建一个空的DatagramPacket对象用于存放接收到的DatagramPacket包,然后就可以在whiletrue死循环中用使用receive方法一直接收客户端所发送的数据。 为了达到实时更新界面的效果,我采用线程的方法。在android线程的使用中会出现一个很严重的问题,android更新UI界面只能是在Main主线程更新,而在接收数据的子线程中更新UI界面是线程不安全的,所以如果在此更新界面就会报错。于是我们必须采用android的消息队列机制来解决该问题,它满足先进先出的原理,并不会发生插队现象。这里介绍Handler类: 你可以构造Handler 对象来与Looper 沟通,以便将新消息压队列 里;或者接收Looper从消息队列中取出所送来的消息。具体操作如下:在该页面对应的Activity里创建成员变量 Handler并进行初始化,同时创建主线程mainThread,在接收数据的线程里将接收到的数据(这里指一个字符串)重定向,例如:handler.postmUpdateResults,即将该数据压入到队列中,这样就可以再主线程中更新UI界面,达到实时监控的效果。 4.2.5 热点的配置 要想实现电脑与手机端的UDP通信,必须要使手机与电脑建立WiFi连接,通过手机的Wifi功能去搜索无线网络,此时就必须要将电脑设置成一个无线路由器,让手机能搜索到该无线网络,并能够连上该网络同时使用电脑的网络功能。这样,手机和电脑就同时在一个局域网内,就可以随意通过UDP协议互相发送数据了。将电脑设为热点后,在本课题中电脑就将作为服务器,通过串口接收来自监控板上发来的数据的同时将该数据发送到客户端,即手机端程序,手机端作为客户端就能实时接收发送过来的数据,达到实时监控的效果。 下面介绍将使用dr登陆校园网的电脑设置为热点的方法: 使用dr认证网,通过电脑Wifi热点共享上网必须要满足3个条件: 操作系统为微软32bit操作系统。 电脑有无线网卡。(本课题测试笔记本所使用的网卡是Atheros AR5B97 Wireless NetWork Adapter) 无线网卡支持承载网络。检测方法:开始运行cmd键入netsh wlan show drivers.如果出现下图显示即表示支持(如图4.7所示)。 图4.7 是否支持承载网络监测结果 如果满足上述三个条件就可以开始配置热点了: 第一步:以管理员身份运行打开命令窗口,输入以下两行命令: 1.Netsh wlan set hostednetwork modeallow ssidfeng key88888888. 这句话是指将承载网络设置为允许,并且将网络名设置为“feng”安全密 钥设置为“88888888”。这样当手机或者任何其他具有Wi
本文档为【基于Android的物联网监控手机软件设计(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_998870
暂无简介~
格式:doc
大小:56KB
软件:Word
页数:25
分类:企业经营
上传时间:2018-08-10
浏览量:47