基于android的智能手机远程监控软件毕业设计说明书论文.docx

上传人:b****1 文档编号:10293004 上传时间:2023-05-24 格式:DOCX 页数:62 大小:1.48MB
下载 相关 举报
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第1页
第1页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第2页
第2页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第3页
第3页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第4页
第4页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第5页
第5页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第6页
第6页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第7页
第7页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第8页
第8页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第9页
第9页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第10页
第10页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第11页
第11页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第12页
第12页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第13页
第13页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第14页
第14页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第15页
第15页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第16页
第16页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第17页
第17页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第18页
第18页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第19页
第19页 / 共62页
基于android的智能手机远程监控软件毕业设计说明书论文.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于android的智能手机远程监控软件毕业设计说明书论文.docx

《基于android的智能手机远程监控软件毕业设计说明书论文.docx》由会员分享,可在线阅读,更多相关《基于android的智能手机远程监控软件毕业设计说明书论文.docx(62页珍藏版)》请在冰点文库上搜索。

基于android的智能手机远程监控软件毕业设计说明书论文.docx

基于android的智能手机远程监控软件毕业设计说明书论文

基于Android的智能手机远程监控软件

 

学院名称:

电气信息工程学院

专业:

通信工程

班级:

09通信2W

学号:

09313218

姓名:

指导教师姓名:

指导教师职称:

 

二〇一三年六月

基于Android的智能手机远程监控软件

TheDesignofremotemonitoringsoftware

basedonAndroidsmartphones

 

 

绪论

 

Android是Google发布的一款基于Linux核心的手机操作系统,Android是一种开源的、免费的移动计算软件平台,目前基于Android智能手机的用户数量众多。

在智能手机操作系统中市场占有率最高。

Android平台最大的优势就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。

显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

丰富的硬件,这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。

功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。

本课题是基于Android智能手机进行远程监控程序及其硬件监控终端开发的。

移动性强,真正做到随时随地为用户提供服务。

本说明书共分为4章,第一章课题分析与方案论证;第二章对监控终端硬件进行了说明;第三章对详细的对应用软件进行了分析;第四章有针对性的列举了Android应用软件在调试过程中出现的问题,并对问题作出了分析。

设计的最终成果是能通过Android智能手机显示远程终端传来的数据,并通过指令实现对远程终端的控制。

 

 

第1章课题分析与方案论证

 

1.1课题任务分析

本课题主要实现用Android智能手机显示远程监控终端传来的数据,并通过指令实现对远程终端的控制。

谷歌公司为了方便用户Android平台上开发软件,使用了使用人数最多的JAVA语言作为主要的开发语言,开发环境是IBM开发的开源软件Ecplise。

在开发Android应用软件软件之前,需要首先配置好开发环境,这其中包括Eclipse软件下载(免安装),JAVA虚拟机的安装,android开发包SDK的下载并作为插件添加到Eclipse中。

运用实验室的CDMA终端模块,该模块通过GPRS网络发送数据给具有良好移动性的Android手机,Android手机将接收到的数据处理后显示出来,通过GPRS网络发送指令给终端模块从而控制终端模块。

本设计研究并实现了通过无线设备获取远程终端监测信息。

研究内容主要包括Android的系统架构、应用开发环境建立、智能手机远程监控应用软件开发、远程监控网关软硬件设计。

模块软件功能上包括:

用户根据需要进行数据检测、接口选择与配置;设备地址配置。

基于应用的Android远程监控管理软件用于监控远程基站的温湿度环境。

实现对远程基站检测节点终端的温度、湿度等状态参数的收集与管理。

软件运行环境是Android2.2操作系统及其以上版本。

具有掉电后台数据保护功能,适当修改可被广泛用于监测和管理远程数据终端。

1.2方案论证

尽管没有在课堂上系统的学习过JAVA语言及Android软件开发技能,但是由于JAVA语言设计的比C++简洁的很多,在有C语言的基础上自学JAVA语言,难度不是很大,谷歌为了推广Android,不但推出了便于使用的SDK开发包,还编写了大量帮助文档,同时也给出了一定数量的使用示例源代码,结合实验室的CDMA终端模块,通过价格合适的GPRS网络传送数据。

本次方案论证主要对数据传送方式的选择。

方案一:

1.Android手机收发数据方案

选用通用的短信方式收发数据,根据特定的数据协议,从接收到的短信中提取数据,经过处理去掉数据中的控制部分,将相关的监测数据提取出来,在应用程序界面上给予显示,同时通过短信的方式,按照数据传输协议,以规定的方式传送控制指令到CDMA控制终端。

2.CDMA监控终端收发数据方案

通过的短信方式收发数据,间歇性质的采集周围环境的温湿度数据,根据数据传输协议,将采集到的数据按照特定的格式,通过短信的方式传输数据给Android智能手机。

同时根据特定的数据协议,从接收到的短信中提取数据,经过处理去掉数据中的控制部分,得到Android智能手机发送的控制指令,根据指令的内容做出相关的反应。

方案二:

1.Android手机收发数据方案

选用网络的方式收发数据,购买一个固定的IP地址,在某个可以联入网络的设备上开发一款服务器软件(比如PC),该服务器软件具有的功能是储存相关设备的IP地址,并且相关设备可以通过该服务器软件系统查询其他设备的IP地址。

在Android手机联入网络的时候,可以得到一个随机的IP地址,Android手机向具有固定IP地址的设备汇报自身的IP地址,并且查询CDMA监控终端的IP地址。

查询成功后,尝试基于IP地址的通信,尝试成功后,即可进行通信。

根据特定的数据协议,从信息中提取数据,经过处理去掉数据中的控制部分,将相关的监测数据提取出来,在应用程序界面上给予显示,同时IP通信方式,按照数据传输协议,以规定的方式传送控制指令到CDMA控制终端。

2.CDMA监控终端收发数据方案

在CDMA监控终端接入网络的时候,可以得到一个随机的IP地址,CDMA监控终端向具有固定IP地址的设备汇报自身的IP地址,等待其余设备接入请求,接收到请求后,尝试基于IP地址的通信,尝试成功后,间歇性质的采集周围环境的温湿度数据,根据数据传输协议,将采集到的数据按照特定的格式,通过基于IP的通信方式方式传输数据给Android智能手机。

同时根据特定的数据协议,从接收到数据中,去掉数据中的控制数据,得到Android智能手机发送的控制指令,根据指令的内容做出相关的反应。

综合上述两种方案,区别在于所传输数据的方式不同。

方案一:

选用通用通用的短信方式传送数据,优点是初期开发难度、工作量较小,成本低廉。

缺点是传输数据所需要的费用,短信是按条数收费,比起IP采用流量计费的方式要贵。

方案二:

采用基于IP的方式收发数据,优点是符合现代的通信潮流,比起短信是按条数收费方式,IP采用流量计费的方式要便宜。

缺点是初期开发难度、工作量均较大,需要投入的硬件成本也高昂。

通过比较我发现,第一种方案软、硬较第二种方案简单,易于开发实现,且充分利用了Android本身自带的资源,节约了成本。

为此,我采用第二种方案。

 

第2章硬件电路

 

设计一种合适的GPRS网关的模块,该模块具有无线收发数据的能力。

研究内容主要包括Android软件监控平台的设计,CDMA无线监控节点模块软件件接口设计、自定义传输协议设计。

软件设计功能上包括:

用户根据需要进行设备地址配置;连网与数据传输。

2.1CDMA网关模块硬件设计

GPRS网关模块硬件以CDMA2000为处理器模块或高功率模块为核心,RS232、RS485作为用户设备接口,方便嵌入到用户设备中。

 

图2-1CDMA模块硬件设计图

2.2电源电路

(1)CDMA2000网关模块电源设计

 

图2-2CDMA2000网关模块电源电路

CDMA2000电源电路如图2-2所示。

CC2530模块的工作电压为9V,选用稳压芯片进行电压变换。

2.3LED灯指示电路

图2-3LED灯指示电路

LED电路如图5所示。

LED1作为电源指示灯,有硬件确定。

LED2和LED3由接收到的指令控制亮灭。

2.4CDMA2000网关UART接口电路

通过UART串口电路与电脑进行数据传输,通过电脑的屏幕显示硬件工作状态,从而方便调试,在实际工作中不需要用到这个部分。

 

图2-4UART接口电路

2.5网关模块PCB设计

(1)CDMA2000网关模块PCB图

 

图2-5GPRS网关PCB图

根据CDMA2000网关模块的原理图,绘制出网关模块PCB图,如图2-4所示。

第3章软件设计

在本章中,给出了CDMA终端监控节点软件设计流程图,给出了Android平台监控软件设计流程图,考虑到侧重点问题,详细的说明了Android平台监控软件的设计。

3.1CDMA终端监控节点软件设计流程图

图3-1CDMA终端监控节点软件设计流程图

CDMA终端监控节点上电后首先对电路进行初始化处理,读取用户信息,读取成功后不断的尝试接入GPRS网络,联网成功后,判断有无指令通过GPRS网络传来,若有,指令Aandroid只能手机传送来的指令;接着查看定时3秒时间是否已到,如果3秒已到,读取温湿度信息,读取成功后,通过GPRS网络传送给Android智能手机,由Android只能手机负责信息的显示。

3.2Android平台监控软件设计流程图

图3-2Android平台监控软件工作流程图

Android软件开启后,输入正确的用户名和密码,可以登录系统,在系统中可以配置监控终端信息,可以通过此软件发送信息控制终端平台,终端平台每隔三秒钟发送信息给手机,手机通过监控平台将信息显示出来。

3.3Android监控软件详细设计与实现

3.3.1登录界面设计与实现

进入登录画面,在这一过程中用户输入相关的个人账户信息,输入完成后点击登录按钮或者点击修改按钮,进入相关的界面。

如果用户的个人信息连续输入错误次数超过3次,软件自动退出。

图3-3登录界面

在上述图标中如果输入用户名和密码正确,并且选择修改密码选项。

进入修改密码界面。

如果两次输入的密码都正确,返回到重新登录界面。

以新的配置信息登录。

如果连续3次输入两个表格中的输入不一致,退出程序。

关键代码如下:

//登录

classloginButtonListenerimplementsOnClickListener

{

intnamePosition,passwdPosition;//存储用户名和密码的索引

//生成该类的对象,并将其注册到控件上。

如果该控件被用户按下,就会执行onClick方法

@Override

publicvoidonClick(Viewv)

{

Stringusername=usernameEdit.getText().toString();

Stringuserpasswd=userpasswordEdit.getText().toString();

if(loginTimes>=3)//如果输入次数不低于3次,结束。

{

finish();

}

//搜索是否存在username字符串,-1表示没有。

if(username.length()!

=0&&

userpasswd.length()!

=0&&

(namePosition=pass.indexOf(username))>=0&&

(passwdPosition=pass.indexOf(userpasswd))>=0&&

(namePosition+username.length()==passwdPosition))

{

Intentintent=newIntent();

//设置Intent对象要启动的Activity

intent.setClass(login.this,SMSReceviedProjectActivity.class);

//通过Intent对象启动另外一个Activity

login.this.startActivity(intent);

//注销这个Activity

finish();

}

else

{

Toast.makeText(login.this,"输入用户名或密码有误",

Toast.LENGTH_SHORT).show();

loginTimes++;

}

}

}

用户可以在登录的时候,选择是否修改用户名和密码。

图3-4修改界面

修改成功后,使用新的用户名和密码登录。

关键代码如下:

//修改用户名或者密码

publicclasschangeextendsActivity

{

privateTextViewuserpasswdChange=null;//新密码

privateEditTextuserpasswdEditChange=null;

privateTextViewuserpasswdChange2=null;//第二次输入新密码

privateEditTextuserpasswdEditChange2=null;

privateButtonokButton=null;//确认按钮

privateButtoncancelButton=null;//取消修改

intchangeTimes=0,loginTimes=0;//记录输入次数

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.change);

userpasswdChange=(TextView)findViewById(R.id.userpasswdChange);

userpasswdEditChange=(EditText)findViewById(R.id.userpasswdEditChange);

userpasswdChange2=(TextView)findViewById(R.id.userpasswdChange2);

userpasswdEditChange2=(EditText)findViewById(R.id.userpasswdEditChange2);

okButton=(Button)findViewById(R.id.okButton);

okButton.setOnClickListener(newokButtonListener());

cancelButton=(Button)findViewById(R.id.cancelButton);

cancelButton.setOnClickListener(newcancelButtonListener());

}

//确认

classokButtonListenerimplementsOnClickListener

{

//生成该类的对象,并将其注册到控件上。

如果该控件被用户按下,就会执行onClick方法

@Override

publicvoidonClick(Viewv)

{

//测试使用,没有在此处写代码。

实际应用中需写入。

}

}

//取消

classcancelButtonListenerimplementsOnClickListener

{

//生成该类的对象,并将其注册到控件上。

如果该控件被用户按下,就会执行onClick方法

@Override

publicvoidonClick(Viewv)

{

}

}

}

3.3.2地址配置界面设计与实现

点击新建按钮新建地址信息,地址信息只有在此处输入时,才会给予修改显示显示。

个性化的配置地址信息,界面如下:

图3-5修改地址信息

关键代码如下:

publicclassAddressOperationDialogextendsDialog{

DbDataFactorydbDataFactory;//数据库操作类

AddressManagerActivityaddressMangerActivity;

EditTextaddress;//地址

EditTexttelnum;//号码

Buttonadd;//添加按钮

Buttoncancel;//取消按钮

//记录操作数据

MyMessagemymessage;

Helphelp;

publicAddressOperationDialog(Contextcontext,MyMessagemymessage){

super(context);

//TODOAuto-generatedconstructorstu

this.addressMangerActivity=(AddressManagerActivity)context;

this.mymessage=mymessage;

}

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

setContentView(R.layout.addressoperation);

setTitle("添加地址信息");

//初始化

init();

}

//初始化

privatevoidinit(){

//TODOAuto-generatedmethodstub

help=newHelp();

dbDataFactory=newDbDataFactory();

address=(EditText)findViewById(R.id.address);

telnum=(EditText)findViewById(R.id.telnum);

//判断是操作还是修改

if(null!

=mymessage)

{

//更新的时候将信息显示到控件

address.setText(mymessage.getAddress());

telnum.setText(mymessage.getTelnum());

//号码不可更改

}

cancel=(Button)findViewById(R.id.cancel);

cancel.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

dismiss();

}

});

add=(Button)findViewById(R.id.add);

add.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

if(isEmptyData())

{

//空数据给出提示

help.ToastMessage(addressMangerActivity,R.string.emptydata,2000);

}else

{

//不是空数据

MyMessagenewMessage=null;

Messagemsg=newMessage();

if(null==mymessage)

{

//新增

newMessage=getdata(0);

msg.what=(int)dbDataFactory.addMyMessage(addressMangerActivity,newMessage);

dismiss();

}else

{

//更新

newMessage=getdata(mymessage.get_id());

dbDataFactory.updateMyMessage(addressMangerActivity,newMessage);

dismiss();

}

//回调addressMangerActivity的updateDataHandler更新数据

addressMangerActivity.updateDataHandler.sendMessage(msg);

}

}

});

}

//获取数据

privateMyMessagegetdata(intid){

//TODOAuto-generatedmethodstub

returnnewMyMessage(id,telnum.getText().toString(),address.getText().toString(),"");

}

privatebooleanisEmptyData(){

//TODOAuto-generatedmethodstub

if((telnum.getText().toString().trim().length()!

=0)

&&(address.getText().toString().trim().length()!

=0))

{

returnfalse;

}

returntrue;

}

}

3.3.3显示界面设计与实现

软件开启并且配置后,显示效果如下。

从图中可以看出,该应用程序成功的显示出了地点、温湿度、时间等信息,达到了设计要求。

图3-6监控显示

关键代码如下:

publicHandlersmsShowHandler=newHandler()

{

@SuppressWarnings("unchecked")

publicvoidhandleMessage(Messagemsg)

{

//取消进度条

if(progressDialog.isShow

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2