基于WIFI通信的温度监测Andriod APP设计

手机APP已经成为物联网用户终端最主要的形式,这次写博客主要是通过编写温度监测的应用程序这个例子,简单介绍一下Android APP开发的入门知识。本文的源代码请点击此处。

1.Andriod开发环境搭建

Andriod开发环境搭建过程如下:首先是JDK的安装。JDK作为java语言的开发工具包,是开发和运行java程序的基本前提。在安装完成后,打开cmd窗口,输入java-version检查JDK安装是否成功。其次是eclipse的安装。eclipse是一个开放源代码的、基于Java的可扩展开发平台。在安装完eclipse之后,需要在环境变量里设置PATH变量的值,添加JDK的bin目录的路径,否则elipse不能启动。操作步骤为:在计算机的属性中找到高级系统设置,打开环境变量,在系统变量中新建。然后是ADT的安装。将A/DT-15.0.0.zip复制到eclipse文件夹下,点击eclipse.exe,进入菜单中的“Help”->“Install New Software”。安装ADT。最后是Andriod SDK安装。解压Andriod-sdk-windows_rar到当前文件,进入菜单中的“windows”->“Preferences”,后创建AVD。在完成对开发平台及各开发工具包的安装后,通过import导入工程将编写好的整个Andriod源码导入eclipse,再对程序进行编译和运行。启动AVD,将andriod apk文件安装到Andriod设备上,搭建好的开发环境如下图。

这里写图片描述

2.Android 工程文件介绍

一个Android工程最重要的两个目录是src、res。

这里写图片描述

src目录中放置源文件,我们编应用程序时主要在这个目录下写代码。本程序主要包括三个Activity:Application应用程序、MainActivity通信连接程序、RtchatsActivity温度监测程序其中,应用程序部分主要将套接字socket定义为全局变量,使其在整个应用程序运行的过程中都起作用。通信连接程序部分,客户端的socket通过描述它要连接的服务器的IP地址和使用的端口号,通过服务器端的响应,从而完成客户端socket与服务器socket的连接。温度监测程序主要分为两个线程:主线程与子线程,主线程与子线程通过对定时器操作完成数据的接收及刷新显示。

res目录中放置的是应用的资源文件,其中layout目录中放置用到的布局文件,在设计应用程序的UI时在此目录下。例如我设计的这个程序就有两个UI,其中activity_main.xml用于网络连接的界面布局设计,rtchat.xml用于温度监测界面布局设计。

这里写图片描述

这里写图片描述

3.应用程序的设计逻辑

对于终端请求连接程序,在application应用程序中将socket定义为全局变量后,建立socket连接,由客户端的套接字提出连接请求,通过socket描述它要连接服务器套接字,指出服务器端的地址和端口号,当服务器端套接字监听到或接收到客户端套接字的连接请求时,它就响应客户端套接字请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。对于监测显示界面操作而言:先输入目的IP和端口号,点击连接,在连接成功后,点击实时温度监测,进入温度监测界面。

温度监测的Activity包括两个线程,主线程负责图形绘制,子线程负责请求温度数值。之所以使用两个线程,是为了避免在数据通信的过程中出现阻塞问题,导致软件卡死。

主线程软件工作流程:首先通过create()函数进入主界面,完成温度采集初始化的任务,随后创建socket数据收发的子线程,创建并启动定时器New Timer,程序设定创建的定时器每300ms进入定时器Handle处理函数,启动子线程,在子线程中完成数据的接收过程,并返回消息给主线程,当主线程判断子线程数据接收完毕后,刷新当前的温度及温度监测曲线,继续等待定时器时间消息。若数据接收未完成,主线程继续等待自子线程数据接收完毕。

这里写图片描述

子线程软件工作流程:首先客户端通过子线程入口,向服务器发送温度数据请求gettemperature(),随后子线程中接收到服务器端发送的温度数据,数据接收完毕后,由子线程向主线程发送数据接收完毕的消息,然后进入主线程消息处理函数。

这里写图片描述

完成后的软件界面如下:

这里写图片描述

这里写图片描述

这里仅写了局域网内的温度监测,实际上我还借助yilink的第三方服务器实现了远程的温度监测,可以去的CSDN账号下下载源代码,如果积分不够可以邮箱联系我。

这里写图片描述

设计说明: 本设计基于51单片机和ESP8266 WiFi模块实现了一种智能浇花系统,该系统可以通过WiFi连接到互联网,从而实现对花卉的自动浇水。该系统具有自动检测土壤湿度和环境温度的功能,可以根据用户设置的阈值进行自动控制浇水,同时可在手机APP上实时监控花卉的状态。 硬件设计: 1. 51单片机控制器:使用STC89C52单片机,具有强大的处理能力和丰富的IO接口,可以实现花卉状态的实时监控和控制。 2. 电源模块:使用220V AC/DC转5V DC的电源模块,为整个系统提供稳定的电源。 3. ESP8266 WiFi模块:使用ESP8266模块实现WiFi连接,可以与互联网通信,并实现手机APP上的实时监控和控制。 4. 土壤湿度传感器:使用DFRobot土壤湿度传感器,可以实现对土壤湿度的监测。 5. 温度传感器:使用DS18B20数字温度传感器,可以实现对环境温度监测。 6. 继电器模块:使用继电器模块控制水泵,根据花卉状态的自动检测和用户设置的阈值进行自动控制浇水。 7. LCD显示屏:使用1602A液晶显示屏,可以实现对花卉状态的实时显示。 软件设计: 1. 串口通信:使用串口通信实现单片机与ESP8266模块的数据传输。 2. WiFi模块驱动:使用AT指令集驱动ESP8266模块,实现WiFi连接和数据传输。 3. 实时监测:通过土壤湿度传感器和温度传感器,实时监测花卉状态和环境温度,并通过LCD显示屏显示。 4. 自动控制:根据花卉状态的自动检测和用户设置的阈值,使用继电器模块控制水泵进行自动控制浇水。 5. 手机APP:使用Android Studio开发手机APP,可以实现对花卉状态的实时监控和控制,包括设置阈值、手动控制浇水等功能。 总结: 本设计实现了一种基于51单片机的智能浇花系统,具有自动检测土壤湿度和环境温度的功能,可以根据用户设置的阈值进行自动控制浇水,同时可在手机APP上实时监控花卉的状态。该系统具有较高的可靠性和实用性,可以广泛应用于家庭、办公室等场所。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值