基于android的智能手机远程监控软件毕业设计说明书论文.docx
- 文档编号:10293004
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:62
- 大小:1.48MB
基于android的智能手机远程监控软件毕业设计说明书论文.docx
《基于android的智能手机远程监控软件毕业设计说明书论文.docx》由会员分享,可在线阅读,更多相关《基于android的智能手机远程监控软件毕业设计说明书论文.docx(62页珍藏版)》请在冰点文库上搜索。
基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于android的智能手机远程监控软件 毕业设计说明书论文 基于 android 智能手机 远程 监控 软件 毕业设计 说明书 论文