理论教育 基于ANDROID温湿度采集风扇控制程序开发流程

基于ANDROID温湿度采集风扇控制程序开发流程

时间:2023-06-17 理论教育 版权反馈
【摘要】:图2-21选择Material.Light主题选项设置主题风格完成之后,显示带有标题栏的Android的设计界面,左边界面显示设计效果,右边界面显示控件摆放的轨迹,如图2-22所示。图2-23activity_main文件XML代码通过修改ConstraintLayout为LinearLayout,将项目的约束布局方式修改为线性布局方式,如图2-24所示,显示界面的XML代码。图2-38温度值控件显示效果图2-39控件拖至Com ponent Tree栏ANDROID温湿度采

基于ANDROID温湿度采集风扇控制程序开发流程

基于ANDROID温湿度采集风扇控制程序开发流程

1.创建Android温湿度采集风扇控制程序工程项目

(1)打开Android Studio开发环境,项目选择对话窗体界面上,选择“Start a new Android Studio project”项,如图2-14所示。

(2)在如图2-15所示的创建Android工程对话框中,应用程序名称输入TempHumCtrl-NewApp,单击“Next”按钮

(3)选择合适的Android SDK版本,这里手机平板设备选择API22版本,如图2-16所示。

图2-12 温湿度采集模块流程图

图2-13 风扇控制模块流程图

图2-14 新建工程对话框

图2-15 输入Android项目名称

图2-16 选择Android SDK版本

(4)在添加Activity的对话框内,选择“Empty Activity”模板,单击“Next”按钮,如图2-17所示。

图2-17 选择创建的Activity样式

(5)在定制Activity的对话框内,设置Activity Name为“MainActivity”,Layout Name为“activity_main”,单击“Finish”按钮,如图2-18所示。

图2-18 设置文件名称

(6)Android温湿度采集风扇控制程序项目创建完成之后,会自动打开项目开发主界面,在Android Studio的主界面上,除了菜单工具栏外,主要是项目结构与项目开发两栏,默认打开activity_main的布局文件和MainActivity.java文件,如图2-19所示。

图2-19 温湿度采集风扇控制程序开发主界面

2.温湿度采集风扇控制程序窗体界面设计

(1)打开activity_main文件,显示Android的设计界面,为了能够显示标题栏,在AppTheme下拉列表中选择“More Themes...”选项,如图2-20所示。

图2-20 选择M ore Themes选项

(2)在选择主题对话框中,左边选择Light项,右边选择Material.Light选项,如图2-21所示。

图2-21 选择Material.Light主题选项

(3)设置主题风格完成之后,显示带有标题栏的Android的设计界面,左边界面显示设计效果,右边界面显示控件摆放的轨迹,如图2-22所示。

图2-22 显示主题模板风格

(4)选择activity_main文件的Text选项,显示界面的XML代码,项目界面布局默认采用约束布局方式,如图2-23所示。

图2-23 activity_main文件XML代码

(5)通过修改ConstraintLayout为LinearLayout,将项目的约束布局方式修改为线性布局方式,如图2-24所示,显示界面的XML代码。

图2-24 设置项目线性布局方式

(6)修改完成之后,选择activity_main文件的Design选项,在Component Tree栏显示为LinearLayout,如图2-25所示。

(7)选择LinearLayout属性,在orientation属性栏中选择vertical,即垂直对齐方式,如图2-26所示。

(8)对齐方式gravity属性栏中选择img,即中间顶部对齐方式,如图2-27所示。

图2-25 项目界面的线性布局效果

图2-26 设置orientation属性

图2-27 设置gravity属性

(9)在Palette工具栏中,选择LinearLayout(horizontal)布局控件拖动到界面上,同理,选择TextView文本控件拖动到界面上,如图2-28所示。

图2-28 设置标题布局和文本控件

(10)选择LinearLayout(horizontal)布局控件,在属性栏中,设置layout_height属性值为wrap_content,gravity属性值为img,如图2-29所示。

(11)选择TextView控制,在属性栏中将text属性值设置为“温湿度采集风扇控制程序”,如图2-30所示。

图2-29 水平布局控件属性

图2-30 设置标题文本属性

(12)标题文本控件设置完成之后,显示如图2-31所示界面效果。

图2-31 标题显示效果

(13)左上角标题栏显示英文的项目名称,为了显示中文项目名称,这里打开strings.xml文件,在string标签中设置“温湿度采集控制程序”,如图2-32所示。

图2-32 修改strings.xm l文件内容

(14)项目名称设置完成之后,显示如图2-33所示界面效果。

(15)为了在界面上显示相应图片,这里需要将程序中四张图片复制到mipmap-mdpi目录下,如图2-34所示。

(16)将Palette工具栏中LinearLayout(horizontal)布局控件拖动到Component Tree栏上,在属性栏中设置layout_height属性值为wrap_content,gravity设置为center,如图2-35所示。(www.daowen.com)

图2-33 项目标题栏显示

图2-34 加入程序显示图片

图2-35 设置LinearLayout(horizontal)布局控件属性

(17)将Palette工具栏中imageView控件拖动到Component Tree栏上之后,自动出现图片选择对话框,这里从Project中选择“temp”温度图片,单击“OK”按钮,如图2-36所示。

(18)图片设置完成之后,将imageView控件的layout_weight属性值由默认值1设置为空,如图2-37所示。

图2-36 选择温度显示图片

图2-37 温度图片属性设置

(19)同理,将EditText和TextView控件拖动到Component Tree栏上,设置相应属性值之后,显示如图2-38所示效果。

(20)同理,在Palette工具栏中,选择其他相关控件拖动到Component Tree栏上,设置相应属性值之后,显示如图2-39所示。

图2-38 温度值控件显示效果

图2-39 控件拖至Com ponent Tree栏

ANDROID温湿度采集控制程序界面设计2

(21)选择相应的控件之后,在属性栏中设置相关属性值,温湿度采集风扇控制程序界面设计完成之后如图2-40所示。

图2-40 温湿度采集风扇控制程序界面设计

(22)将图2-39中主要控件进行规范命名和设置初始值,如表2-1进行说明。

表2-1 程序各项主要控件说明

3.温湿度采集风扇控制程序功能代码实现

(1)根据界面中所设置的EditText控件、ImageView控件、CheckBox控件以及Button控件,在MainActivity类中定义对应的控件变量,同时定义网络通信的Socket套接字、输入流、输出流以及接收线程对象等。

具体代码如下:

ANDROID温湿度采集控制程序功能代码实现1

(2)在onCreate方法中通过调用findViewById方法将控件的ID号转变为对象变量,如EtTemp=findViewById(R.id.editTextTemp)。另外,为了单击按钮产生onClick方法进行单击事件处理,进行设置Button的setOnClickListener监听器,并采用匿名内部类实现onClick方法,这里在连接网络按钮事件处理方法中主要完成线程的启动,实现网络连接功能,同时开启接收线程,实现WIFI网络中传感器数据到来之后接收。在断开网络按钮事件处理方法中主要完成输入流和套接字关闭功能。

具体代码如下:

(3)在onCreate方法中,为了能够手动控制风扇和选择联动模式功能,这里采用匿名内部类实现onClick方法,一方面将控制风扇的字符串信息通过Message对象作为参数调用Handler的sendMessage方法,发送给UI主线程;另一方面根据选择的CheckBox选项,决定是否采用联动模式。

具体代码如下:

ANDROID温湿度采集控制程序功能代码实现2

(4)为了通过启动Thread线程连接WIFI网络,需要实现Runnable接口,在接口Run方法中实现套接字对象,并绑定服务器IP地址和端口号。另外,为了接收服务器端发送过来的温湿度数据,需要再次启动ReceivedThread线程进行接收。

具体代码如下:

(5)为了在连接WIFI网络成功之后,能够接收服务器端发送的温湿度数据,需要开启ReceivedThread线程进行接收,这里通过继承Thread线程类,实现ReceivedThread线程类,并在ReceivedThread线程类构造方法中传递套接字对象作为参数,实现接收数据的输入流和往输出流输出数据。具体代码如下:

ANDROID温湿度采集控制程序功能代码实现3

(6)在ReceivedThread线程类中需要实现Run方法,在Run方法中通过输入流的Read方法读取服务器发送的温湿度数据,并解析数据。首先判断数据是否为空,当不为空时,在判断字符串是否以“0101”开始,如果成立,则取0101的后面两位字符,它们是温度数据;然后判断“0102”字符串是否存在,如果成立,则取0102的后面两位字符,它们是湿度数据。最后以Message对象作为参数调用Handler对象的sendMessage方法,发送给UI主线程。

具体代码如下:

ANDROID温湿度采集控制程序功能代码实现4

(7)一旦选择联动模式,isAuto变量设置为真,条件满足则执行自动控制风扇的运行和停止,这里根据设定的温度阈值和当前温度值进行比较,如果大于设定温度阈值,将自动开启风扇,否则关闭风扇。具体代码如下:

(8)当Handler对象调用sendMessage方法之后,将包含温湿度数据的Message对象发送至UI主线程,主线程中的Handler对象再次调用handleMessage方法处理Message对象中的消息数据,并根据what属性值1和2分别将温度数据和湿度数据显示在界面中对应的控件中,同时根据what属性值3将控制风扇的字符串命令WIFI方式发送出去。具体代码如下:

ANDROID温湿度采集控制程序功能代码实现5

(9)为了让程序在移动端通过WIFI网络连接物联网网关设备中的服务器,需要将AndroidManifest.xml文件打开,添加网络访问权限,如图2-41所示。

图2-41 添加网络访问权限

4.将温湿度采集风扇控制程序下载至移动端运行

(1)程序编译完成之后,单击红色的三角运行按钮“img”,将温湿度采集风扇控制程序下载至移动端,如图2-42所示。

图2-42 单击程序下载按钮

(2)将功能开关挡位切换到移动端挡之后,嵌入式网关模块将传感器采集的数据信息通过WIFI模块无线发送至手机移动端,从而无线接收各种采集数据,如图2-43所示。

(3)当温湿度采集风扇控制程序下载至移动端之后,首先将移动端WIFI网络连接到物联网设备WIFI模块的AP热点中,然后运行程序,单击“连接网络”按钮,(一方面可以实时显示温湿度数据信息,另一方面单击打开风扇按钮可以WIFI无线方式控制风扇的转动和停止操作,)如图2-44所示为温湿度采集风扇控制数据运行界面。

图2-43 移动端通信挡位

图2-44 移动端温湿度风扇控制运行界面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈