基于andriod平台的wifi温度监测系统设计大学论文.docx
- 文档编号:12394217
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:61
- 大小:1.53MB
基于andriod平台的wifi温度监测系统设计大学论文.docx
《基于andriod平台的wifi温度监测系统设计大学论文.docx》由会员分享,可在线阅读,更多相关《基于andriod平台的wifi温度监测系统设计大学论文.docx(61页珍藏版)》请在冰豆网上搜索。
基于andriod平台的wifi温度监测系统设计大学论文
基于Andriod平台的WIFI温度监测系统设计
摘要:
本课题研究的是温度度的智能化采集,远程传输和实时监控通过选取的主控为新一代的8051单片机15W4K32S4,通过串口,网络传输等方式与ESP8266wifi模块,能够实现远程温度测控的功能。
用户则可以通过app实时查看和控制,APP开发平台为Android平台,开发的APP功能包括:
与开发板搭建的TCPServer实现连接;实现与手机用户的人机交互;将手机用户的操作转换为信息通过手机的wifi模块传入远程单片机平台。
同时,为了实现对于ESP8266WIFI模块的控制,系统选用15W4K58S4作为控制核心,配合串口队列,可以实现对于ESP8266模块的及时控制与响应。
系统还附带了DHT11温湿度采集模块,可以实现对于环境温度的实时监测,用户可以通过安装相应应用,连接网络实时查看温度数据控制温度调节设备的开关。
本系统可以协助用户使用移动端,远程读取测控温度。
掌握新一代高性能单片机15W4K32S4的使用方法,将其通过串口,网络传输等方式与ESP8266wifi模块,手机应用相连接。
关键词:
单片机STC15W4K32S4;ESP8266wifi模块;app;Android
IntelligentclassroomdesignsystemofBaojiUniversitybasedonInternetofthings
Abstract:
Thistopicisthestudyofthetemperaturedegreeofintelligentacquisition,remotetransmissionandreal-timemonitoringbychoosingmaster15w4k32s4foranewgenerationof8051singlechipmicrocomputer,throughaserialport,networktransmissionwayandtheESP8266wifimodule,canrealizethefunctionofremotetemperaturemeasurementandcontrol.Theuserwillbeapptocheckandcontrol,real-timeappdevelopmentplatformfortheAndroidplatform,thedevelopmentoftheappfeaturesinclude:
developmentboardstructures,theTCPServerimplementationandconnectivity;Withmobilephoneusersinhuman-computerinteraction;Transformstheoperationofmobilephoneusersforinformationthroughthemobilephonewifimoduleintotheremotesingle-chipmicrocomputerplatform.Atthesametime,inordertorealizethecontroloverESP8266WIFImodule,thesystemselectsthe15w4k58s4ascontrolcore,cooperatewithserialqueue,canbeachievedforESP8266modulecontrolandresponseinatimelymanner.SystemalsocomeswithDHT11temperatureandhumidityacquisitionmodule,canrealizereal-timemonitoringfortheenvironmenttemperature,theusercaninstallthecorrespondingapplicationofconnectednetworkreal-timeswitchtocheckthetemperaturedatacontroltemperaturecontrolequipment.Thissystemcanhelpuserstousethemobileterminal,remoteaccessandcontrolthetemperature.Tomastertheuseofanewgenerationofhigh-performancemicrocontroller15w4k32s4method,itsviaaserialport,networktransmissionwayandtheESP8266wifimodules,suchasmobileapplications.
Keywords:
STC15W4K32S4;ESP8266wifi;app;Android
第一章绪论
1.1.课题背景与意义
人大三次会议以后,国家对互联网+的发展尤为重视,在去年的《政府工作报告》中初次讨论发布了“互联网+”发展部署计划,手机产业,软件开发,智能化等产业成为了国家产业改革,发展高科技企业的重点方向。
“互联网+”的目的是加大国家的投入和扶持,加快高新科技技术如手机应用开发,智能化生产等与传统工业生产制造,服务等传统行业的结合。
众多的新型发明和应用比如手机应用和智能化等,已经越来越多的和人们的生活息息相关了,例如手机应用中的人脸识别支付系统,停车场的智能自动收费系统,智能早教机器人等等。
为了加快“互联网+”的实际应用与发展,作为具有科技引领作用的高度学府正在加快传智能检测的项目的发展。
许许多多高等学府利用自身优势,组织学生老师参与采用物联网、大数据等技术进行设计的智能化测控系统,并取得了阶段性成果,然而,改革的路也不是一帆风顺的,智能测控系统也存在诸多问题。
智能化的发展不可能一蹴而就,如何将各种高新技术应用起来,如何将移动端数据和云端数据整合起来,如何能实现利用多个终端进行数据的采集与分析分析,建设智能化程度高,成本低的智能化的检测监控设备,这需要更多人的思考,研究与参与。
在不久的将来必定会有更多的学生和老师参与到关于远程智能测控设备的研究中,不断解决实际操作中的技术难题。
1.2课题研究现状
目前大多数的温度测控设备还没有没有实现远程智能化,在很多地方的温度检测还需要通过人为检测,不仅效率低下,还会浪费很大的人力物力而且在很多环境是极度危险的比如火山温度测量,深海温度测量等等。
在传统温度检测中的应用,用作控制器,温度控制仪表面板打开安装,安装问题,如果温度控制点太多了,不美观,成本很高。
广泛应用的触摸屏、PLC、工业电脑,几乎每一个生产线,每个设备配备触摸屏,有些甚至是更多的屏幕,所以做温度控制功能的控制器是首选。
通过触摸屏,除了操作方便,灵活处理,温度、实时曲线、历史曲线数据记录,公式,等等。
很容易做到,这是一个传统的温度控制仪表的无可比拟的方案。
而伴随着互联网,物联网等互联技术的广泛应用,温度测控有新的发展。
人们可以通过互联技术实现远程遥控和远程温度测控,大大提高了工作效率和安全性。
可以预见到在国家政策,市场需求的引导下,大量资金,高新技术人员的加入,新的测温技术必然会有更广阔的发展空间。
1.3课题设计目标
本课题根据现如今手机应用方便,wifi传输稳定,快捷的有点设计了基于Andriod平台和Wifi的温度监测系统。
以下是本课题的目标:
1.了解安卓系统,掌握如何搭建Android开发环境,如何进行UI设计,如何进行手机应用开发等问题。
2.掌握新一代高性能单片机15W4K32S4的使用方法,将其通过串口,网络传输等方式与ESP8266wifi模块,手机应用相连接。
3对Andriod平台和Wifi的温度监测系统的设计和实施中的问题进行分析并且总结经验单片机开发与编程经验。
第二章Android开发概要
2.1开发环境搭建
2.1.1安装前的准备
本项目所需要的开发环境为AndroidStudio,截至2017/3/10,该IDEforwindows的最新版本为2.2.3,下载地址为http:
//www.android-studio.org/。
图1AndroidStudio下载地址
在安装AndroidStudio之前,需要安装JDK,截至2017/3/10,forwindows最新的版本为jdk-8u121-windows-x64.exe,下载地址为
图2JDK下载地址
在下载了以上两个安装包之后,下面进入正式安装步骤。
2.1.2JDK的安装
双击打开JDK安装包:
图3JDK图标
单击下一步:
图4安装路径的选择
这里需要记住安装路径,方便在AndroidStudio里面更改。
接下来一路下一步即可完成安装。
注意:
较早以前的版本,由于开发问题,JDK需要配置环境变量的,本次课题设计使用的是最新的1.8以上的不需要配置环境变量就可以使用了,安装完成之后即可在命令行界面下输入“java-version”,当屏幕出现版本信息就表明安装程序已经完成执行,可以供用户使用了。
2.1.3AndroidStudio的安装
双击打开AndroidStudio的安装包。
图5AndroidStudio图标
一路next。
图6AndroidStudio安装画面
在这个界面,记得全部选择,这样就不需要安装其他的安卓虚拟机了。
一路next,完成安装。
用户在计算机上使用该程序的正常启动时,有时系统会发送一个请求设置代理的对话框:
图7设置代理提示
点击”SetupPropxy”按钮设置代理:
Hostname:
Portnumber:
80
2.2AndroidUI设计
2.2.1像素
像素(px)简单的来说就是颜色点。
现在工业生产出来的屏幕多种多样比如LCD屏幕,LED屏幕和OLED屏幕等等,但他们实现显示功能原理基本相同,都是由一个一个颜色的小点组成,而这样构成图案的每一个小点就被人们称之为像素。
2.2.2DPI
DPI指的是像素/英寸,即在每个英寸里有多少像素,用比较通俗的语言就是说在每英寸的像素含量。
DPI是图像显示的重要属性之一,其的数值越大,每英寸像素点越多,人们看到的整体图像就越清晰,反正DPI的数值越小,每英寸像素含量就少,组成的图像就会相对模糊一些。
2.2.3分辨率
分辨率的概念与DPI的概念在本质上相差不大,只是所描述的条件有差别,DPI是每英寸上的像素含量,而分辨率则描述的是整屏的像素含量。
比如我们日常使用的手机屏幕,电视屏幕全都由基本的像素组成,分辨率的含义是在我们使用的手机的整个屏幕中包含像素点的个数,同DPI的概念一样,如果在整个屏幕中像素点越多越多,我们看到的屏幕越清晰,若像素点越少越模糊。
例如现在14寸笔记本电脑屏幕的分辨率出厂一般设为1366*768,其含义为在14寸的液晶显示屏中共有长1366*宽768个像素点显示图像。
2.2.4SP
SP是ANDROID系统的字体单位,因为随着手机的不断更新,各种各样的手机产品层出不穷,这就造成了各式手机的屏幕大小不一,用户设置的分别率不同的问题,所以导致不同手机适配时会产生问题。
因此ANDROID系统的设计者们为了更加方便,快捷的适配不同手机,不同分辨率的显示,设计了SP字体单位。
在mdpi密度的屏幕中:
1px=1sp。
SP的主要功能是能够根据用户的不同需求,在各式各样,不同大小分辨率的屏幕中进行字体大小的变化:
图8SP
以上的三个图片为不同的3种分辨率的屏幕显示。
三个图片是成倍数增加的,左1图为mdpi的1倍,中间的图片为xhdpi的2倍,右一图为xxhdpi的三倍。
若mdpi上的字体是12px,那么所对应的是12sp。
由于字体单位sp在不同屏幕,不同分辨率下是相同的,都为12sp,因此使用xhdpi的字体大小作为显示时其大小可表示为:
12*2=24px,xxhdpi的字体大小显示就是12*3=36px,以此类推。
2.2.5DP
DP其用途与SP的用途相似,目的也是为了解决不同屏幕的适配问题,DP的大小,也于SP一样不会跟随分辨率的改变而改变。
DP的大小,在mdpi密度的屏幕中可以表示为:
1dp=1px。
在使用不同的分辨率情况下,可使用其用倍率*dp值计算即可。
图9DPI
分辨率:
160/320/480dpi等这些都是目前的市场上的手机有不同的。
因此用户在使用时不用去记忆众多手机的分辨率所,只要应用DP单位与PX的转化就可以适配与不同的分辨率。
注意转换不是图标,间距和所有元素的大小也应该相应的改变。
还需要注意的是,因为我们设计常用的单位是像素,当我们使用本单元设计,但是开发人员使用dp,所以在设计的过程中以适应不同的手机,android使用dp这个单位PX之间的转换,就是一个上述概念中的一个使用单位。
图10分辨率表
如上表所示,第一行是手机分辨率,这是必须记住,更重要的是,我们所做的设计,它是使用分辨率的大小。
第二行是密度值,这是手机工厂的时间手机制造商,是一英寸内一些颜色分,如LDPI这个分辨率,它的每一寸120色点,所以密度值越高,清晰的屏幕,下面是相应比例的比例,没有说,然后看一看下面的。
MDPI作为基准,也就是说,MDPI的分辨率是一个双,然后给出相应的速率,适配器,剩下的是回忆的转换比率的大小。
我们有这么多的分辨率的大小相应的有太多,当我们去设计应该采取哪一个尺寸作为设计稿吗?
选择布局时通常有两种方法:
方法1:
作为一个基本的大小(320*480或XHDPIMDPI==320*1280)开始,经过放大它不同的屏幕尺寸。
方法2:
从最大的开始屏幕大小,然后删除一些UI元素从一个小屏幕。
XHDPIMDPI是翻了一倍,两倍,都是整数倍,容易适应其他决议,如果XHDPI设计草案,所有数值设计要求是双,将保证不是一个小数点,第二种方法是很难控制,所以一般建议使用第一种,当然,最好的方法自然是每个决议单独去做一套界面图。
2.3Android应用核心
核心应用是系统运行的支持软件,Android应用程序是由多个不同的组件组合而成,系统的基本组件包括Activity,Service,BroadcastReceiver和ContentProvider等,此外还包括专门负责在基本组件之间传递消息的Intent组件。
如果意外停止,您可以重启手机。
Android应用程序没有唯一的启动入口(如C语言中的main()函数入口),一个Android应用程序是由多个不同的组件组合而成,此外还包括专门负责在基本组件之间传递消息的Intent组件。
,组件之间通过Intent来实现通信。
Android系统的基本组件包括Activity,Service,BroadcastReceiver和ContentProvider等,其他活动,重新查看旧信息或更改设置。
虽然他们一起工作形成一个整体的用户界面,此外还包括专门负责在基本组件之间传递消息的Intent组件。
所有组件都必须在AndroidManifest.xml文件中声明。
一、Activity——应用表示层(基类Activity)
一个活动表示一个可视化的用户界面,关注一个用户从事的事件。
例如,一个活动可能表示一个用户可选择的菜单项列表,或者可能显示照片连同它的标题。
一个文本短信应用程序可能有一个活动,其他活动,重新查看旧信息或更改设置。
虽然他们一起工作形成一个整体的用户界面,显示联系人的名单发送信息;第二个活动,写信息给选定的联系人;但是每个活动是独立于其他活动的。
每一个都是作为Activity基类的一个子类的实现。
应用程序中的每个屏幕都是通过继承和扩展基类Activity来实现的。
同一应用中的每个Activity来实现应用中的GUI(用户直接通过GUI和应用程序做交互)。
Activity窗口内的可见内容通过基类View提供。
使用Activity.setContentView()方法设置当前是相互独立的。
程序启动后显示的第一。
Activity利用View来实现应用中的GUI(用户直接通过GUI和应用程序做交互)。
幅画面是应用程序的第一个Activity(默认窗口),而后可以根据需要从这个Activity启动另一个新的Activity法设置当前Activity中的View对象。
二、Service——没有可见的用户界面,但能够长时间运行于后台(基类Service)
服务没有一个可视化的用户界面,但在后台运行下去。
例如,一个服务可能是背景音乐和用户做一些其他的事情,也可以从网络获取数据扩张,或者并提供结果的需要(活动)。
每个服务都是继承自基类的服务。
中运行的应用程序主线程的过程,因此,服务不会阻止其他组件和用户界面。
服务不能启动,必须通过上下文对象(比如一个活动)调用startService或bindService方法开始(启动服务生命周期的两种方法)。
3、广播接收器——用户通知组件(基类BroadcastReceiver)
广播接收器是一个组件,它不做任何事情,只是接受广播公告并作出相应的反应。
许多广播系统代码,例如,注意到时区的改变,低电池,已采取图片,改变语言的用户首选项。
应用程序也可以启动广播,例如,为了他的其他应用程序知道一些数据已经被下载到设备上,他们可以使用这些数据。
应用程序可以拥有任意数量的无线电接收器响应任何认为它重要的公告。
所有的接受者从BroadcastReceiver基类继承。
Android的广播系统,或者从常见的应用程序。
许多事件可能导致广播系统,如移动电话的时区变化,电池低,用户更改系统语言设置,等等。
第四,内容提供商来解决问题的应用程序之间的数据通信,共享(基类内容提供者)
内容提供者(内容提供商)让其他应用程序指定一个应用程序的数据集。
这些数据可以存储在一个文件系统,在一个SQLite数据库,或任何其他合理的方式。
内容提供者和继承了ContentProvider基类实现了一组标准的方法,其他应用程序可以检索和存储数据。
然而,应用程序并不直接调用这些方法。
相反,另一种是,他们使用ContentResolver对象和调用它的方法。
ContentResolver可以与任何内容提供商,它与供应商管理参与进程之间的通信。
在Android中,每个应用程序是使用您的用户ID和运行自己的过程中。
这个优点是可以有效地保护系统和应用程序,避免影响其他不常德应用程序,每个进程都有一个独立的进程地址空间和虚拟空间。
一旦需要上面的四个基本组件完成Android应用程序请求,Android将首先确认是否该组件在操作的过程中,如果没有运行,Android将启动过程,并确认所请求的一个组件的实例存在,否则它会创建一个新的组件实例。
5、连接组件的意图——关系
更多的四个基本组件,除了内容提供商通过内容解析器激活,其他三个组件的活动、服务、广播接收器被激活的意图异步消息传递
2.4基本程序单元
一般来说,活动是代表一个可视化界面和用户交互,手机的屏幕,一个屏幕,一个安卓系统的四个组件提供了,轴承的具体组件和用户交互。
Android应用程序通常由超过一个活动,活动的活动堆栈,堆栈的当前活动活动,活动前的下面,变得不活跃的活动,可以恢复等待活动状态[4]。
2.4.1Activity的生命周期
活动有几个必要的生命周期:
onCreate()方法:
创建活动时回调,通常创建活动需要活动活动类或子类的类继承,并覆盖onCreate(包savedInstanceState)方法,初始化活动。
Activity一点会被onCreate()、onStart()、onResume()为启动一个Activity一点会被回调的方法。
Activity须要进行配置才能使用。
“android.content.ActivityNotFoundException:
Unabletofindexplicitactivityclass{xxxxx……};haveyoudeclaredthisactivityinyourAndroidManifest.xml?
”当我们不配置的时候,我们启动Activity就回报错(找不到这个Activity)
所以我们须要在Manifest.xml中对Activity进行配置,我们须要将我们的activity标签添加到application标签中去[5]。
2.4.2Activity的启动与关闭
如果我们的程序只有一个Activity,那么我们就要配置这个activity为我们程序的入口,就要在AndroidManifist.xml中配置其为
name=".MainActivity"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> 如果我们有一个以上的活动,需要在页面之间切换,我们将使用系统提供特定的方法来开始我们的特定的活动。 如果我们只是想开始一个活动,比如我们目前在ActivityA,如果我们要开始ActivityB,我们能够通过代码开始,我们将在一个单击事件,当然,一般方法来开始一个新的活动。 (当我们开始活动代码不再活动,在适配器或其他,我们需要使用的上下文中通过适配器或Adpater控制开始活动,如: 上下文。 StartActivity()) Intentintent=newIntent(); intent.setClass(ActivityA.this,ActivityB.class); startActivity(intent); Activity的关闭直接用finish()方法即可[6]。 2.4.3Activity之间的数据传递 当然如果数据更重要的是,我们将通过包,当我们在跳转到其他Activity中的时候,我们可能会须要传递一些值过去,我们可以用intent来附带一些值过去,然后在新的Activity中取,使用多个片段可以在同一个活动划分布局模块。 包是一个字符串的各种Parcelable类型映射。 我们可以使用的包提供一个实现序列化的对象。 2.4.4Acitvity与Fragment的异同与应用 第一个片段是3.0添加一个概念,即成碎片,和非常类似于活动,用来描述一些行为活动,或轴承部分的接口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 andriod 平台 wifi 温度 监测 系统 设计 大学 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)