新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Android平台的电热水器远程控制系统

基于Android平台的电热水器远程控制系统

作者:时间:2016-09-12来源:网络收藏

0 引言

本文引用地址:http://www.eepw.com.cn/article/201609/304012.htm

近几年来,人们的生活品质不断提高,传统家电都在向安全、节能、多功能、智能化方向发展,的功能也在随之完善。传统储水式储水量大,加热时间一般都比较长,长期供热必然造成电能的浪费。为了节约用电,很多人对进行了改进,文献采用数字技术,在电热水器中加入单片机定时装置,配以外围驱动电路和继电器,控制电热水器电源通断的时间。这种装置虽然达到了节能的目的,但使用起来仍不方便,用户外出时长未知或临时改变时无法更改加热时间。为此,文献在电热水器中加入短信收发模块,利用手机短信向电热水器的MCU控制器发送指令,实现远程遥控,此方法虽解决了灵活性问题,但带来额外的短信费用,不便于长期使用,且无法随时远距离获取水温信息,因而未得到广泛应用。

本文为满足电热水器控制的灵活性和水温信息获取方便性的要求,着眼于已经相当普及的Android手机,把智能手机作为移动网络终端,将其应用于传统电热水器,利用嵌入式开发技术和GPRS远程通信技术,设计了一套电热水器系统,本系统具有安装方便、价格低廉、使用灵活、界面友好、实时监控等优点,且由于使用了开放的,使得此系统的功能扩展和产品升级十分方便。

1 系统总体方案

电热水器系统采用已经十分成熟的客户/服务器模式,总体方案如图1所示,系统从结构上分为三个部分:客户端、服务器和控制器。

基于Android平台的电热水器远程控制系统

客户端部署在Android手机上,接收来自用户的各种控制命令,对获取的指令加工处理后通过手机自带的3G网络将数据发送给服务器,并实时反馈命令执行情况,获取并显示水温信息和电热水器开关状态;服务器由GPRS模块及其控制器构成,利用大覆盖、高可靠性、低成本的移动互联网络,实现与客户端握手和数据互传;控制器与服务器端共用一个MCU,将接收到的用户指令解码后转变为开关控制命令,并利用高精度温度传感器提取实时水温数值,再通过服务器下载到用户手机,通过直观、友好的人机界面显示给用户,并等待用户的下一步指令,从而实现整个系统的实时监控。

2 下的客户端设计与实现

2.1 功能设计与操作流程

客户端在Android手机上实现,利用Java语言开发。这样做的优点是:界面友好、使用方便;开发成本低、不需增加硬件;支持覆盖广、不受地域限制;保证数据传输的实时性和可靠性。为实现对电热水器的,客户端应具有以下功能:1)登录服务器。获取服务器IP地址,采用Socket方式,建立与服务器的连接。2)获取用户开关指令并上传。通过手机触摸屏,获取用户开关指令,编码成字符串后上传给服务器。3)实时提取并显示水温。向服务器发送请求,等待服务器向手机发送当前水温数值字符串,获取后解码并在手机屏幕上显示。客户端操作流程如图2所示。

基于Android平台的电热水器远程控制系统

客户端首先按照保存的IP地址连接服务器,如连接不成功,说明服务器动态IP己更改,则向服务器发送请求连接短信,等待服务器收到后将新IP地址通过字符串形式回发给客户端,后者再次连接,实现Socket连接的建立;用户的开关指令编码后由客户端手机通过GPRS发送字符到服务器接收,“0”表示关闭热水器,“1”表示加热;指令发送后等待服务器回发的水温值字符串,解码后在手机屏幕上显示;用户可以通过手机设定水温,服务器回发的水温若达到设定值则停止加热并发出声音通知用户。

2.2 Android Studio开发平台搭建

本系统的客户端的编程采用Android Studio IDE开发环境,它是Google于2013年发布的,与以往的Eclipse+ADT开发环境相比,Android Studio提供了集成的Android开发工具用于开发和调试,安装时不需手动配置。该开发环境对UI界面设计和编写代码有更好地支持,具备功能强大的布局编辑器,支持拖拉UI控件并进行效果预览,并可以方便地调整设备上的多种分辨率。

该开发平台的搭建步骤十分简单:1)下载并安装JDK,建立Java开发环境;2)设置环境变量:JAVA HOME、CLASSPATH和PATH,指定到JDK安装路径;3)从Google官方网站或第三方网站下载并安装android-studio-bundle-.exe文件,选择默认选项,安装程序会自动配置Android开发平台。安装完毕后,Android程序开发平台即搭建成功。

2.3 软件主要模块及关键代码

(1)界面布局。根据客户端功能设计,客户端UI包括TextView、Button、Switch等控件,布局代码存放在Layout.XML文件中,采用相对布局方式RelativeLayout,该方式是Android中最常用的布局方式之一,在Android Studio中利用鼠标拖动即可实现,不需编写代码。本程序所用控件及其功能如表1所示。

基于Android平台的电热水器远程控制系统

(2)Switch监听器。利用可视化控件Switch来表示接受用户指令并显示电热水器的开关状态,设置Switch监听器代码如下:

mySwitch.setOnCheckedChangeListener(newOnCheckedChangeListener()。

其中mySwitch为新建的Switch类对象。其监听器实例化方法为:

基于Android平台的电热水器远程控制系统

(3)Socket方式连接服务器。Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。本程序连接服务器通过响应Button监听器实现。调用OnclickListener()中的onClick()为登陆Button控件设置按键监听器,在监听器中建立Intent对象,通过调用startActivity(intent)打开与相应功能菜单相对应的Activity实现界面的跳转。若链接超时,则回出现网络链接超时的提示,后台发送请求短信,获取服务器最新动态IP地址,并重新链接网络。建立Socket连接核心代码如下:


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭