微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Android平台的电热水器远程控制系统

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

时间:09-12 来源:互联网 点击:

能如表1所示。

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

mySwitch.setOnCheckedChangeListener(newOnCheckedChangeListener()。

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

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

3 服务器及控制器软硬件设计

服务器及控制器共用一个MCU,硬件上可以集成在一起,以减小系统体积。MCU选用STM32F103,该单片机采用Cortex—M3的内核架构,具有功耗低、实时性好、IO口丰富等特点,十分适用于本系统的GPRS通信、开关控制和温度采集等功能。

为搭建服务器,MCU外接高性能工业级GPRS模块SIM900A,其工作频段为900/1800MHZ双频段,支持RS232串口和LVTTL串口,并带硬件流控制,支持5V~24V的超宽工作范围,经电平转换后可以非常方便地与STM32进行连接,从而提供短信和GPRS数据传输等功能。模块采用串口通信发送和接收来自MCU的指令。

控制器由光电隔离开关电路和温度采集电路两部分构成,光电隔离开关电路采用光电耦合器与可控硅构成,用于控制加热器的开关,实现弱电对强电的控制;温度采集电路使用高精度的数字温度传感器DS18B20,经防水设计后接入STM32的GPIO口。主要硬件电路如图3所示。

STM32的软件采用Keil开发,主要包括温度读取、开关控制和建立GPRS通信三个模块。其中,DS18B20温度读取程序和IO口开关控制程序十分常见和简单,不在此赘述。现仅对GPRS通信程序进行说明,利用STM32控制SIM900A建立服务器需要的步骤和指令,见表2。按照表中所示顺序利用串口向SIM900A发送AT指令,即可建立小型数据服务器。

4 运行结果

系统在实验室中进行了调试与试验,利用容积2L的电热杯模拟电热水器。如图4所示。图中上半部分为服务器和控制器,STM32和SIM900A构成服务器,可控硅模块控制电热杯加热器的通断。左下所示为用经过防水处理的DS18B20作为传感器进行温度采集。图右下所示,用一台三星Android智能手机作为客户端,设定水温及开关动作。并获取当前水温,在手机屏幕上显示。

试验表明,服务器可以正确接收手机远程控制指令,加热器开关状态与手机远程所设相同;水温值能够实时准确地显示在远端手机上,供用户查看;水温控制准确,误差在±1℃,对家用沐浴用水来说精度足够。

5 结语

本系统基于Android平台,设计了一套远程水温控制系统,具有随时控制、实时监控、安装方便的特点。通过调用Android提供的控件和网络服务实现系统界面设计和人机交互实现家用电热水器的智能远程控制。由于采用GPRS通信方式,系统在长期工作时比短信模式更加节省通信费用,运行成本大大降低。

经测试,系统方案可行,电路稳定,控制精度满足要求,远程监控可靠,测试结果满足本文设计要求。

系统还有需要完善的地方,如果要对多个家电甚至多个建筑中的电器实现同时远程控制,则需要性能更高的MCU增加处理速度,并引入数据库技术,提升数据交换的能力。这些有待进一步研究和讨论。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top