《毕业设计论文—基于Android的物联网监控手机软件设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文—基于Android的物联网监控手机软件设计.doc(42页珍藏版)》请在三一办公上搜索。
1、重庆大学本科学生毕业设计(论文)基于Android的物联网监控手机软件设计学 生:何峰学 号:20085025指导教师:张玲 教授专 业:电子信息工程重庆大学通信工程学院二O一二年六月Graduation Design(Thesis) of Chongqing UniversityDesign of Android-Based Internet of things monitoring phone software Undergraduate: He FengSupervisor: Prof.Zhang Ling Major: Electronic Information Engineerin
2、gCollege of Communications EngineeringChongqing UniversityJune 2012摘 要2007年美国Google公司向外界展示Android操作系统,将Android手机的兴起推向高潮。Andriod系统的各大优点运用到了诸多领域,同时Android软件运用具有面向对象思想的Java语言编写,极大的促进了软件的灵活性。另一方面,物联网也是新一代的高端技术,运用Android的高性能优点,将其运用到物联网监控中定会是一项非常前沿的技术。本文将介绍如何用Android软件实现对物联网监控端进行实时监控。该系统分为硬件端(监控端)和软件端(手机端
3、),其硬件端主要通过STM32单片机实现,通过温度传感器,加速度传感器以及脉搏心跳传感器,对人体的体温、姿态、心跳速率及脉搏速率进行测量,并通过GPRS模块或串口采用三种法式(包括短信,WIFI和J2EE服务器)传送监控数据到手机端。软件端主要采用Java语言编写,实现对数据的处理、显示以及备份等功能。三种通信方式各有所长。对于整个系统,已基本实现预期功能,同时也能对其进行拓展,例如手机与监控端的相互交互等。对于后续的研究工作希望能和读者一起探讨。 关键词:Android,物联网,热点,监控ABSTRACT In 2007, Googles Android operating system t
4、o show the rise of the Android phone to a climax. 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 ge
5、neration 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 sy
6、stem 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 (in
7、cluding 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 t
8、o 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目 录中文摘要ABSTRACT1绪论1 1.1 设计背景1 1.2 国内外研究现状综述11.3 设计特点21.4 设计功能概述2 1.4.1 物联网监控端的硬件2 1.4.2 Android应用程序32 相关技术及开发工具简介42.1 Java语言
9、简介42.1.1 Java技术的特点42.1.2 Java ME简介52.1.3 Java EE简介52.2 Android系统简介62.3 Java及Android开发工具简介72.3.1 MyEclipse集成开发环境72.3.2 Android SDK72.3.3 Android ADT83 基于Nios II的物联网监控端设计93.1 系统结构93.1.1 硬件结构103.1.2 软件结构103.2 监控端硬件设计113.2.1 信息采集端硬件设计113.2.2 信息接收与传输硬件设计123.2.3 监护端硬件设计123.3 监控端软件设计13 3.3.1 体征信息采集端的软件设计13
10、 3.3.2 体征信息接收与传输端软件设计154 基于Android的手机软件设计16 4.1 设计概述164.1.1 研究目标164.1.2 需求分析164.2 基于UDP协议的Wifi通信设计174.2.1 UDP协议简介174.2.1 PC端串口程序设计184.2.3 数据包的解析法则204.2.4 UDP发送及接收程序设计224.2.5 热点的配置234.3 短信接收及解析设计254.3.1 短信接收程序设计254.3.1 文件的存储与读取264.4 基于J2EE的网页监控设计274.4.1 Tomcat服务器简介274.4.2 基于Serverlet的网页设计274.4.3 基于JD
11、BC技术的MySQL数据库操作284.4.4 手机端嵌入网页的设计294.5 系统架构及界面设计294.5.1 系统程序文件结构及功能294.5.2 系统界面设计295 总结31参考文献32附录A:手机端程序主要源代码33 1 绪论1.1设计背景近年来,Android手机兴起的趋势无法阻挡,而至今年Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,在我国更是高达58%,终结了Symbian的霸主地位,跃居全球第一,在今后一段时间内Android将更广泛的普及和发展。对于Android手机应用软件,中低端目前的主流应用很多,而现在Android最高版本为4.0.3
12、,相比于苹果系统有过之而无不及,今后的发展一定相当乐观。而Android系统的手机软件大多采用Java语言编写,其跨平台和面向对象的特点,无论是从界面还是性能来讲,都能更方便更强大地满足用户的高要求。根据其良好的发展趋势,对本课题也值得去研究。另一方面,物联网是新一代信息技术的重要组成部分,其概念一经提出就一直是一大热门,它在各种感知技术上的广泛应用以及对智能信息处理的能力并且对物体实施智能的控制已然成为下一个推动世界高速发展的重要生产力,具有节约成本提高经济效益等优势更可以为全球经济复苏提供技术动力。如此高端热门且发展趋势十分乐观的两种产品Android手机和物联网相结合而产生的该课题基于A
13、ndroid的物联网监控手机软件的设计必将广泛应用在今后的实际生活中。1.2 国内外研究现状综述对于物联网的研究,国外要比国内研究较早,技术也相对成熟,在很早的时候美国施乐公司将其应用用到售货机上,而现今美国有很多大学在做了大量工作在物联网的研究生上。同时国外很多知名企业都做了网联网技术方面的研究,例如美国的克尔斯博公司,它是国际上率先在该领域取得研究成果的先驱之一。相比之下,国内在物联网技术上的研究相对落后,不过也在硬件和软件房间取得了相应的突破,在基于国外的技术之上开发了自己的中间软件。另一方面,Android智能手机在国内也是越来越高端,像去年上市的小米手机轰动全国,与之匹敌的华为荣耀接
14、而上市,把中国Android手机应用推向高潮。当然,伴随着手机的兴起,无论是游戏还是应用软件,小到个体程序员大到世界五百强的软件公司,Android手机软件都必然将风靡全球。与此同时,新兴的物联网监控技术与如今正如火如荼的第三代移动通信想结合,将改变现有的物联网监控模式,使监控人员无论身在何处无论何时都可以对需要进行监控的设备信息进行监控,这样也不用每天坐在办公室或监控室守着一台监控器,使这样实时的监控工作更加方便。1.3 设计特点 本系统主要针对人体如体温,姿态,心跳及脉搏等数据进行测量监控,对于这些数据监控,我们的监控端应该具备实时、可靠、无线连接、体积小等特点,同时应该尽量使监护行为不对
15、用户的日常活动产生影响,即佩戴在人体身上让人不会有生理或心理负载同时也能准确的测量各种数据信息。由此我们设计了面向家庭的便携式可穿戴的远程智能监护仪。本作品分为信息采集端、信息接收与传输端和监护端。在被监护人一端,只需佩带信息采集端,就能在满足低生理、心理负荷条件下,实现人体日常姿态、体温、脉搏、心跳等生命体征信息的获取,并且通过多种无线传输方式如短信,Wifi以及搭建J2EE服务器技术等最终将数据传输至便携式监护端、手机监护端、远程监护端进行分析和处理,监护人可远程查询被监护人的生理情况,在被监护人生理情况出现异常时,系统自动采取多种报警即应急措施。本监护仪区别于传统的大型检测仪器,利用SO
16、PC的思想将监测人体姿态、体温、脉搏、心跳等基本生命体征的传感器集中在一起,小巧方便可穿戴,减小了生理负担,便携易用。医护人员可实时查看被检测人的姿态、体温、脉搏、心电等生命体征信息,并可以将实时信息存储到手机端SD卡等非易失存储设备中。结合日益成熟的J2EE技术以及目前异军突起的Android技术,通过自行设计的Android手机软件,让Android智能手机也能成为本系统的监护端的一部分,可根据不同情况选择更适合的远程监护模式,随时随地被监护人的生理状况尽在掌握。Android技术的运用使得本系统紧跟信息时代的步伐,给使用者提供了更为熟悉和便捷的用户体验。1.4 设计功能概述本课题完成了基
17、于Andriod的手机软件设计,以及STM32单片机对GPRS模块(M20)进行控制的硬件设计和软件设计。用java语言完成的一款能够在Andriod手机运行的手机软件,通过可行的三种方式-短信、Wifi和网页,接收实验板发送的通过温度、加速度等传感器测量的数据,并在手机屏幕上实时显示同时将实时记录保存子手机SD卡的txt文件中。1.4.1物联网监控端的硬件物联网监控端可分为信息采集端、信息接收和 传输端。所用到的硬件开发平台包括DE2-70开发板、LB3开发板、物联网调试板。在被监控的场所如汽车、寝室安装好该系统,通过温度、加速度传感器采集当前信息,并通过无线传输的方式发送给接收和传输端。信
18、息接收与传输端主要是通过串口将数据发送到PC端,让PC端进行数据处理和编码,最终发送到Android 手机上。同时该模块也要通过GPRS模块与Android手机取得通信,能接受Android手机反馈回来的信息。1.4.2 Android应用程序该模块主要是在具有Android系统的手机上运行,以接收监控端发送过来的短信并进行解码,把实用的温度、加速度等信息直观明了简单的显示在该软件上。其软件的编写将使用Java语言在MyEclipse集成开发软件上进行开发并搭建SDK和ADT10.0.0的Android模拟器,并且能达到界面美观信息显示方式大方明了且能对历史信息进行保存和查看的功能。同时也可以
19、根据该软件与监控开发板进行反馈。2 相关技术及开发工具简介2.1 Java语言简介Java是一种面向对象的可以撰写跨平台应用软件的程序设计语言, Sun Microsystems公司在1995年5月推出了Java平台(即JavaSE, JavaEE, JavaME的总称)和Java程序设计语言。本设计用到了JavaEE, JavaME两大技术。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,本论文中实现的物联网监控系统就是基于Java技术编写的,因此,在本章将对Java技术作一个简要的介绍。2.1.1 Ja
20、va技术的特点JAVA是非常新的一种语言(1995年正式发布),具有面向对象、分布式、解释执行、健壮性和安全性、体系结构中立、可移植、多线程、以及动态性等特点。和其他编程语言相比,它有很多优点。使用JAVA的优点具体体现在以下几个方面:(1)封装Java是一种面向对象的语言,它的封装特性是将具有一定特征的事物封装成一个类,在类中用Private将所有成员变量定义成私有的,要想通过另一个类得到或改变该成员变量必须调用该类的Get和Set方法。这样就可以将一个类封装成一个独立的事物,有助于程序代码的维护。(2)继承顾名思义,Java继承就是是使用已存在的类的定义作为基础建立新类,新类可以用父类的功
21、能,也可以增加新的数据或新的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。(3)多态多态具体表现在重写和重载,多态就是类的多种表现方式,比如在同一个类中可以有名字相同但参数不同的方法,同时子类也可以重写父类的方法。这样便可以改善代码的组织结构,增强代码的可读性。2.1.2 Java ME简介 Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构
22、成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 And
23、roid系统简介Android是Andy Rubin公司开发的一种以Linux为基础的开放源代码操作系统,主要使用于便携设备例如手机MP4等。2005年由Google收购注资,2007年正式向外界推出Android系统,逐渐扩展到平板电脑及其他领域上。Android系统在手机上的应用已经占据了主要市场。2011年第一季度,Android在全球的市场份额首次超过之前独步天下的塞班系统,跃居全球第一。 2012年2月数据,Android系统占据全球智能手机操作系统市场52.5%的份额,中国市场占有率更高,为68.4%。Android的系统采用了分层的架构,这也是与其它操作系统的不同之处。Andro
24、id分为四个层,从低层到高层分别是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程序了,下面将介绍
25、这几种开发环境。2.3.1 MyEclipse集成开发环境MyEclipse是一个用于开发Java的软件集成环境,十分好用,其功能非常强大,支持也特别广泛,特别是对各种开源产品的支持想当不错。它是在EclipseIDE的基础上进行了扩展,我们可以利用它更方便的在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面完成工作。同时它也是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, Spring , SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类: 1
26、) JavaEE模型2) WEB开发工具 3) EJB开发工具 4) 应用程序服务器的连接器 5) JavaEE项目部署服务 6) 数据库服务 7) MyEclipse整合帮助 以上每一种功能上的类别都可以再Eclipse中得到相应的体现,并通过一系列的插件来实现它们。MyEclipse在Eclipse的基础上,可以让我们在不影响其他模块的情况下,对任一模块进行单独的升级和扩展。 也就是说,MyEclipse是Eclipse的插件,也是一款功能强大的Java集成开发工具,支持代码编写、调试以及Debug等,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本
27、安装时不需安装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 developmen
28、t 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的压缩包解压
29、到适当的位置,就这么简单;SDK安装OK。使用Eclipse进行android应用开发需要给Eclipse装adt插件,这样Eclipse就可以和android sdk建立连接,可以在Eclipse中启动android模拟器进行程序调试等ADT插件安装这里不再累赘,也可以下载adt的zip包安装 安装完插件后,需要做一些简单的配置:1) 在MyEclipse中,选择Window Preference; 2) 从左侧的菜单中,选择Android项; 3) 设置SDK Location,点Browse选择SDK的安装根目录; 4) OK,完成。2.3.3 Android ADT在开发Android
30、的过程中,不可能一直用真机进行测试,因此必须安装ADT插件,这样就可以再MyEclipse中使用Android模拟器进行调试了。ADT就是一些特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。也就是说它是开发工具包集合,是整体开发中所用到的工具包。有了这个工具包就可以对程序进行模拟器测试,如图2.3Android模拟器界面:图2.3 Android模拟器界面3 基于Nios II的物联网监控端设计本章将介绍整个硬件监控端以及信息接收端的设计,由于硬件电路板已经是做好的,而且本课题主要重点在于手机端软件的
31、设计,所以本章只是从理论上介绍其设计实现。如何用温度和加速度等各种传感器检测到人体的体温和姿态,如何将检测到的数据进行编码,如何将检测到的数据通过无线发送到信息接收端,如何将信息接收端接收到的数据打包准备发送到手机以及通过串口发送到PC机,这些问题都将在本章得到解决。3.1 系统结构本系统以Altera FPGA开发平台为核心,采用各种人体传感器对人的体温、脉搏、心电等生命体征信息进行采集,利用三轴加速度传感器实现对人体姿态的采集,通过无线的方式进行传输,通过软件应用程序在触摸屏上显示交互界面,通过触摸屏与PS2键盘进行数据的输入。另外,监测数据存储在大容量SD卡中,用户可以通过网络、GPRS
32、进行远程监护。图3.1是系统结构示意图。图3.1系统结构示意图 系统主要包含三个层面,即信息检测层、信号处理层、信息反馈层。信息检测层完成数据的检测与数据的无线发送,信息处理层完成数据的无线接收与信息处理,信息反馈层实现人机交互与有效信息的各种反馈,系统框图具体如图3.2所示。 图3.2系统结构框图3.1.1 硬件结构系统硬件由体征信息采集端、体征信息接收与传输端和监护端硬件组成,需要进行的硬件开发包括信息采集端硬件电路的设计、接收传输端硬件电路设计、GPRS模块接口电路设计、无线模块电路设计、各种传感器接口电路设计,以及监护端SOPC系统的构建。图3.3监控端硬件结构示意框图3.1.2软件结
33、构采集端主要用于控制各种传感器以及CC1101无线模块的正常工作,因此主要设计了对脉搏传感器以及心电传感器的A/D采样算法,温度传感器读取温度算法、CC1101控制算法等。为了保证电池的使用时间,还设置了无线模块的低功耗模式等。监控端软件结构图如图3.4所示:图3.4监护端软件结构图3.2 监控端硬件设计本系统的采集端以STM32F101C6为控制核心,对各种传感器进行编程控制,将采集所得到的体征信息通过无线方式进行传输。在IAR5.4开发环境下编写应用程序。本系统的接收与传输端也是以STM32F101C6为控制核心、对M20(GPRS)模块、CC1101无线收发模块以及232串口进行编程控制
34、。在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锂电池作为电源,
35、由于部分传感的工作电压为5V和为了保证使用的时间考虑使用两节电池串联的方式供电。由于脉搏传感器采集出来的脉搏信号个体差异比较明显,当被检测人员身体发生抖动时可能出现负电压的脉搏信号,所以在脉搏信号输入A/D前通过了1.1V的电平提升电路,避免了负电压的出现。3.2.2信息接收与传输端硬件设计 接收与传输端主要包括电源电路、Jlink下载调试电路、232接口电路和GPRS接口电路等,其硬件电路框图如图3.6所示。图3.6接收与传输端硬件框图3.2.3监护端端硬件设计根据系统设计需求,在Nios II系统中添加的必要外设有:充当内存的SDRAM,SSRAM,串行芯片EPCS,固化程序的FLASH,
36、调试用的串口JTAG,系统时钟,辅助时钟,以及自定义模块:SD卡、PS/2、USB口、网口等。SOPC系统配置如图3.7所示。图3.7 SOPC系统配置3.3 监控端软件设计3.3.1体征信息采集端的软件设计体征信息采集端的软件流程图如图3.8所示。本部分软件设计主要完成STM32对信号的采集处理与无线发送。图3.8信息采集端软件流程图1) 温度传感器软件设计本设计采用DS18B20数字温度传感器来采集人体温度。DS18B20数字温度计提供12位(二进制)温度读数,信息经过单线接口送入DS18B20或从DS18B20送出。DS1820的测量范围从古-55到+125,可在1s内把温度变换成数字。
37、STM32控制DS18B20完成一次温度转换必须经过3个步骤:复位、发送ROM指令、发送RAM指令。每次对DS18B20的操作都要进行以上三个步骤。 复位:STM32将数据线拉低至少480us,然后释放数据线,等待15-60us让DS18B20接收信号,DS18B20接收到信号后,会把数据线拉低60-240us,主机检测到数据线被拉低后标识复位成功。 发送ROM指令:ROM指令表示主机对系统上所接的全部DS18B20进行寻址,以确定对哪一个DS18B20进行操作,或者是读取某个DS18B20的ROM序列号。 发送RAM指令:RAM指令用于单片机对DS18B20内部RAM进行操作,如读取寄存器的
38、值,或者设置寄存器的值。2) 姿态检测算法人体姿态检测是医疗监护的重要方面,通过对运动姿态检测,有益于对运动障碍病人进行诊断和治疗,为医疗康复提供重要的参考数据,由于本系统中需要测试脉搏、心电、体温等其他体征信息所以只是测试人体处于静止状态时的一些姿态信息。本文在测试者腰部佩戴传感器来检测运动时加速度信息。将X、Y、Z三轴所得到的加速度信息送给单片机进行A/D采样,在软件上通过对三轴加速度数据分析,设计出一套判断人体姿态的算法。姿态算法流程图如图3.9所示。图3.9 姿态算法流程图3.3.2体征信息接收与传输端软件设计体征信息接收与传输端的软件流程图如图3.10所示。本部分软件设计主要完成ST
39、M32对信号的无线接收处理及串口发送,GPRS短信收发。图3.10信息接收与传输端软件流程图通过无线传送到信息接收端,然后将数据打包,用一个Byte数组存放并将该数据通过串口发送到PC机上,或者解析成相应的温度加速度值,在温度大于33C时采用短信的传输方式将数据发送到手机端。4 基于Android的手机软件设计本章主要介绍手机端整个系统软件的实现过程,也是本课题的核心设计。采用3种不同的通信方式短信、Wifi、网页接收监控端发送过来的数据,每种通信方式相互独立,可供用户选择使用。同时也将介绍Wifi热点的配置以及Android开发中几个重要的问题,不仅仅应用于该课题,相信在其他很多地方这些知识
40、也是相当有用的。4.1 设计概述4.1.1 研究目标(1)了解Android应用程序的设计和开发过程。(2) 使用多种组件进行Android 监控软件的开发。(3) 采用多种通信方式接受监控端发送的数据并显示。4.1.2 需求分析该软件是为了实现接收从监控端硬件板上发送到手机端的监控数据,实现在手机上安装好改程序后能够正常启动并开始对监控端发送的实时数据进行监控显示。该软件的首页会有三个选项,每个选项对应相应的监控模式所选择的通信方式,每种通信方式对应功能分别如下:(1) 短信监控模式该模式是实现接收监控端发送的短信数据,并进行解析,在屏幕上显示。当监控端测量到温度超过37摄氏度时会自动向所设
41、定的手机发送报警短信。手机端将接收到的短信进行解析并实现报警的效果,同时将该条信息存放到某固定的TXT文件中,方便随时对历史报警记录的查看。(2) Wifi监控模式该模式需要实现将电脑设为热点,手机通过其Wifi功能与电脑进行连接,同时接收由监控板通过串口将数据发送到PC机再由PC机通过UDP协议将数据发送到手机。手机端需要实时接收并显示温度和姿态等数据。(3) 网页监控模式该模式需要实现搭建J2EE服务器,构建自己的网站。使用JSP,Serverlet,JDBC等技术在公共网络上显示监控板通过串口发送到PC机上再由PC机将数据部署到tomcat服务器上。手机软件通过点击网页监控按钮直接访问该
42、网站达到实时监控的效果。 三种监控模式可以互相切换,其中短信模式实现报警功能,所以无论该软件是否处于运行的状态,都将随时监控是否收到报警短信,并直接用Toast的方式显示在手机屏幕上。如图4.1所示系统结构图:图4.1 系统结构图4.2 基于UDP协议的Wifi通信设计4.2.1 UDP协议简介UDP 是User Datagram Protocol的简称, 中文译为用户数据包协议,是一种无连接的传输层协议,提供不可靠信息传送服务。在网络中用于处理数据包,与TCP协议有类似的地方。在七层协议中位于第四层传输层,在IP协议的上一层。UDP有不能对数据包的排序和不提供数据报分组、组装和的缺点,也就是
43、说,当数据发送出去以后不能知道接收端有没有收到或者数据有没有到达。 不过UDP与TCP相比具有速度快的优点,能够一直不停的发送数据而不需要服务器端发送反馈信息。直至今日,UDP也是一种非常实用和可行的网络传输协议。如下图4.2所示为UDP传输原理图:图4.2 UDP传输原理4.2.2 PC端串口程序设计串口程序主要是通过串口接收监控板端发送到PC的数据,以byte数据流的形式接收。在设计程序中必须引入Jm包,下面介绍该包中几个重要的类:Jm.Commport:这是用于描述一个被底层系统支持的端口的抽象类。它包含一些高层的IO控制方法,这些方法对于所有不同的通讯端口来说是通用的。Jm.CommP
44、ortIdentifier:这个类主要用于对串口进行管理和设置,是对串口进行访问控制的核心类。主要包括以下方法(1) 确定是否有可用的通信端口(2)为IO操作打开通信端口(3)决定端口的所有权m.SerialPort:这个类用于描述一个RS-232串行通信端口的底层接口,它定义了串口通信所需的最小功能集。通过它,用户可以直接对串口进行读、写及设置工作。程序的组成架构.图4.3为串口发送流程图:图4.3 串口发送流程图该模块的主要功能是实现通过串口从开发板上接收数据。(1)SerialDemo类:图4.4 用户界面该类主要负责创建串口接收的面板,用于与用户之间的交互。用户可以通过该面板设置串口的
45、参数并且通过串口发送和接收数据。其中Choice控件提供给用户用来选择波特率,输入流控制方式,输出流控制方式,数据位,停止位以及奇偶校验。还有两个TextArea用来发送和接收数据。(2)SerialConnection类用来连接串口,主要调用的函数是portId=CommPortIdentifier.getPortIdentifier(parameters.getPortName();该函数用于打开电脑发现的串口,并返回串口的ID。然后调用(SerialPort)portId.open(SerialDemo, 30000)函数用来打开串口,并调用设置串口的函数,用来把在SerialDemo中
46、设置的串口相关的参数传递到SerialParameters中,并在该函数中定义一个输入流和一个输出流。 InputStreamis=sPort.getInputStream();/从外设获取数据 OutputStreamos=sPort.getOutputStream();/发送命令到外设(3)SerialConnectionException类,用于处理串口连接的异常。4.2.3 数据包的解析法则在PC机上采用串口的方式接收监控端发送过来的数据并不是直观明了的,这是采用一定的法则在监控端将数据编码打包,将整个数据包一帧一帧的发送到PC机。所以在PC端就需要对该数据包进行解码,把各项数据直观明了的解析成人所能理解到的信息,如温度加速度等具体的值,这样讲解析出来的字符串直接通过UDP协议发送到手机端就非常直观了。其具体的解析法则是根据监控端的打包法则,一项一项的提取数据,首先分析数据包的结构:数据包是由255个十六进制数组成的Byte数组,其中以“FFFF”开头,以“EEEE”结尾,表明每一个数据包的开始和结束,接下来是以“AAAA”或“BBBB”形式的字节数连接,其中“AAAA”表示心跳监控,“BBBB”表示脉搏监控,之后连接两位十六进制数“XXXX”表示温度位,然后同样以两位十六进制数表示姿态,接下来连接244位十六进制数表示心电的波形