基于Web的家居设备远程控制系统设计与实现

2017-10-21 03:40张正炳胡蓉华
网络安全与数据管理 2017年19期
关键词:浏览器家居联网

武 磊,张正炳,胡蓉华

(1. 长江大学 电子信息学院,湖北 荆州 434023; 2. 长江大学 计算机科学学院,湖北 荆州 434023)

基于Web的家居设备远程控制系统设计与实现

武 磊1,张正炳1,胡蓉华2

(1. 长江大学 电子信息学院,湖北 荆州 434023; 2. 长江大学 计算机科学学院,湖北 荆州 434023)

为了方便用户远程控制家居设备以及提高设备可靠性,设计了一套基于Web的远程家居设备控制系统,可以让用户只需要登录手机或者PC浏览器就可以监控相隔千里的家居设备。此系统包含节点设备控制平台和物联网平台,其中,节点设备控制平台采用控制芯片STM32F407、PHY芯片Lan8720、LwIP协议栈,实现了节点设备入网、控制及状态检测;物联网平台采用Web技术,响应来自用户浏览器的控制命令及监控设备运行状态。实际测试结果表明,该系统性能可靠、使用方便,可以满足家居设备控制需要,有着广泛的应用前景。

STM32;LwIP;Lan8720;Web控制

0 引言

随着互联网技术和智能硬件的快速发展,基于网络的远程设备控制系统被广泛地应用在家居、农业[1]和工业[2]中,最初大多采用C/S模式,需要交互双方分别安装客户端和服务端,使用起来比较复杂;继而梁铁等[3]提出基于Web服务器的方式,不需要安装服务端程序,只需在设备中嵌入Web网页,利用现有浏览器就可以控制节点设备,但该设计工作在局域网中,控制距离短;结合Yeelink物联网平台,杜一腾等[4]提出了基于Arduino与Yeelink平台的远程设备控制系统,这种方式使用简单,但是依赖于Yeelink平台,可扩展性差,同时无法实时观察当前设备运行开关状态,导致安全隐患。针对这些问题,本文采用STM32F407芯片、Lan8720芯片以及Web技术,设计了基于Web技术的远程家居设备控制系统。此系统可以使用户不受限于时间和地点,只需要打开随身携带的手机或PC浏览器登录位于云服务器的物联网平台,通过控制平台网页中与节点设备平台绑定的虚拟开关,就可以控制家居设备,使用方便,同时可以在物联网平台上实时了解当前家居设备的运行状态,及时消除故障设备隐患。该系统成本低、实时性强、使用简单,在农田灌溉、大棚温调等智能农业领域,家居设备开关控制等智能家居领域以及工业中危险设备的远程控制等智能工业领域有一定的应用价值。

1 系统总体设计

本系统是基于Web技术的远程家居设备控制系统。本系统包含两部分,一部分是位于云服务器的物联网平台,另一部分是接入了因特网的节点设备控制平台,此部分连接了多个家居节点设备,这两部分与用户的联网设备(如手机、PC)构成了整个远程家居设备控制运行环境。工作时,用户只需要打开自身携带的计算机或手机浏览器登录到物联网平台中,通过控制与家居节点设备对应的虚拟开关,就可以打开家里所对应的目标设备,同时在物联网平台上可以实时查看当前家居设备的开关状态。系统框图如图1所示。

图1 系统框图

2 系统硬件设计

本系统的节点设备控制平台包括了串口模块、电源模块、 STM32主控模块、多路被控节点模块、PHY模块以及网口模块6个部分,如图2所示。

图2 硬件设计框图

各模块具体实现如下:

(1)PHY模块由PHY芯片Lan8720[5]完成,Lan8720是一款低功耗的10/100M的以太网PHY层芯片,支持RMII接口与以太网MAC层通信,并可以通过自协商的方式与目的主机建立最佳的工作方式(速度和双工模式)。在此系统中主要完成物理层的功能,实现数据的串并转换、同步等;

(2)被控节点模块由继电器控制及开关检测电路组成,一是用于执行主控模块传递过来的节点设备控制命令,二是检测当前被控节点设备的运行状态;

(3)串口模块由RS232及外围电路组成,主要用于网络连接状态及设备运行状态显示等;

(4)电源模块主要是为 STM32主控模块、节点模块及其他硬件设备供电;

(5)STM32主控模块由STM32F407[6]及外围电路组成,STM32F407是基于Cortex M4内核的一款嵌入式芯片,相对于STM32F1,具备更高的性能,更低的功耗,同时自带以太网模块,该模块支持介质独立接口(MII)和简化介质独立接口(RMII)。在本系统中配合软件设计实现了MAC层、网络层、传输层及应用层的功能。

3 系统软件设计

3.1系统软件工作流程

本系统初始化后,节点设备控制平台与物联网平台建立TCP连接,双方进入连接建立状态;当用户通过计算机或手机上的浏览器登录物联网平台,发出打开或者关闭家居节点设备的命令后,命令会写入到网站后台文件中等待节点设备获取;节点设备平台会以60 s的周期,不断发出开关控制状态请求命令,物联网平台收到请求后将网站后台文件中的用户控制命令以HTTP响应包的格式发送给节点设备控制平台,节点设备控制平台提取出HTTP包中的控制信息,告知被控节点完成相应设备的打开或者关闭;同时节点设备平台设置30 s定时器,待定时到后检测当前所有节点设备运行状态发给物联网平台,物联网平台收到请求后更新html页面,用户根据页面中设定的开关状态及节点设备返回的状态监控信息就可以判断控制是否起作用,同时也可以了解其他设备是否运行正常,系统软件工作流程如图3中①~⑨所示。

图3 系统软件工作流程图

本系统软件设计主要包括LwIP协议栈的移植、节点设备控制平台软件设计以及物联网平台软件设计三个部分,介绍如下。

3.2LwIP协议栈移植

基于802标准的TCP/IP协议,如果运行在嵌入式芯片STM32F407上,会由于RAM和ROM容量的限制无法运行,因此,瑞典计算机科学院(SICS)开发了一个小型开源的TCP/IP协议栈,在保持了TCP/IP协议主要功能的基础上减少了对RAM 的占用,它只需十几KB的RAM和40 KB左右的ROM就可以运行,付晓军[7]、张齐[8]等人也提出了LwIP协议栈的改进办法,这使LwIP协议栈[9]更加适合在低端的嵌入式系统中使用。

在本系统中,主控芯片采用了ST公司的STM32F407芯片,其自带以太网MAC模块以及以太网库,移植1.4.1版本的LwIP源码过程如图4所示。

图4 LwIP移植框图

LwIP协议栈的移植过程如下:

(1)通过硬件配置文件对该PHY芯片的工作状态、速率等信息进行配置,使其工作在正常的数据收发模式下。

(2)驱动完成硬件设备加载,使 STM32主控模块可以与PHY芯片正常通信,主要完成以下的工作:①Lan8720的初始化;②配置以太网DMA中断优先级;③获取当前连接速度和双工状态;④配置以太网MAC和DMA;⑤定义网卡收发数据包函数;⑥为收发数据缓存和描述符申请、释放缓存等。

(3)加载LwIP源码,并通过中间接口文件与驱动连接起来。中间文件完成了协议栈内部数据类型、CPU的大小端模式、MAC地址及源端IP地址等信息的定义,完成内存的申请和分配、内核初始化、默认网卡的设置,定义了lwip_pkt_handle()函数来中断接收数据,定义了定时处理函数完成TCP、ARP等定时器的更新等。

(4)LwIP协议通过数据包结构体、网络结构体与应用程序连接起来,数据包结构体pbuf[10]用来描述协议栈使用的数据包,网络结构体netif[10]用来定义网络接口的IP地址、子网掩码、默认网关、收发数据报函数及接口状态等信息。

3.3节点设备控制平台软件设计

节点设备控制平台在与被控节点设备、物联网平台以及计算机交互处理中完成了网络的初始化、与物联网平台服务器的TCP连接、HTTP数据包的解析、封装及节点设备的控制等工作,节点设备控制平台工作流程如图5所示。

图5 远端设备控制平台工作流程图

该系统在物理接入网络后:(1)完成网络的初始化,包括使用DHCP协议分配IP地址、IP地址到物理地址映射,以及通过DNS协议解析物联网平台服务器的IP地址等;(2)与物联网平台服务器建立TCP连接后,以60 s为周期向物联网平台发出开关状态请求数据包;(3)物联网平台返回开关状态响应HTTP包后进行包解析工作,根据解析出来的结果发出设备控制命令完成被控节点设备的开关控制;(4)启动30 s定时器,待定时到后检测所有被控节点设备开关状态,将检测出的结果发送给物联网平台。

3.4物联网平台软件设计

物联网平台响应来自用户浏览器的控制请求及监控当前设备运行的开关状态。工作时,(1)用户通过浏览器登录到物联网平台,平台所在的服务器会返回开关控制及监控页面,用户通过打开或者关闭页面上的开关按钮,发出设备控制命令,命令写入网站后台文件中;(2)待节点设备控制平台发出状态请求命令后将文件中的命令通过网络以HTTP包格式发送给节点设备控制平台;(3)物联网平台实时监控远端节点控制平台发回的设备运行状态信息,完成页面中监控开关的状态更新,以便用户实时查看当前设备的运行情况。物联网平台工作流程如图6所示。

图6 物联网平台工作流程图

4 系统测试

系统测试时,通过串口助手观察节点设备控制平台收到的HTTP包来验证节点设备是否能正确响应来自物联网平台的控制命令,同时通过观察物联网平台上的监控开关来验证是否能够正确监控被控节点设备运行状态。

首先用户通过计算机浏览器登录物联网平台,并将热水器开关、洗衣机开关的开关控制按钮设置为“开”状态,如图7所示。

图7 物联网平台

此时通过串口助手获取节点设备控制平台收到的HTTP响应报文信息,如图8所示。

图8 远端设备控制平台

图8显示了节点设备收到的HTTP包,对包进行解析后提取出数据部分,其中{dev_1_1}、{dev_2_0}、{dev_3_1}、{dev_4_0}分别代表热水器、客厅灯、洗衣机、空调接收的开关命令,其中每个命令最后一位代表开关状态,如此时热水器和洗衣机对应的命令{dev_1_1}、{dev_3_1}最后一位为“1”,代表为开,其中客厅灯、空调对应的{dev_2_0}、{dev_4_0}最后一位为“0”,代表为关,与图7中所设定的开关状态是一致的,验证了此时节点设备控制平台正确收到了来自物联网平台的控制命令,同时观察图7中各个设备的开关监控按钮,对应的热水器、洗衣机为“开”状态,客厅灯、空调为“关”状态,验证了物联网平台能够正确收到来自节点设备控制平台发回的检测信息,并能完成页面的更新,以方便用户实时了解当前设备运行情况。

通过以上测试完成了节点设备控制平台与物联网平台服务器的通信测试,用户无论何时何地登录本系统中的物联网平台网站,都可以远程控制节点设备的打开或关闭,简单快捷,并能够观察节点设备的运行情况,及时排除设备故障隐患。

5 结束语

此远程家居设备控制系统只需一台带有浏览器的手机或者PC,而不需要安装复杂的服务器软件,就可以实现远端家居设备的控制,使用方便快捷,同时还能通过浏览器实时观察家中设备的运行状态,及时排查故障设备,保障设备的可靠运行。该系统在测试及应用中运行稳定,并可以根据用户需求进行节点扩增,在智能家居、智能农业以及智能工业中都有很好的应用前景。

[1] 王丹丹, 宗振海, 陈慧珊,等. 基于STM32的智能温室远程控制系统的设计[J]. 浙江农业学报, 2014, 26(3): 791-796.

[2] 王晖, 周巧娣, 章雪挺,等. 基于LwIP的海洋数据采集与传输系统[J]. 电子技术应用, 2012, 38(8): 26-29.

[3] 梁铁, 李凯, 王付强,等. 基于STM32和LwIP协议栈的Web网页控制系统的设计与实现[J]. 测控技术, 2015, 34(9): 134-137.

[4] 杜一腾, 迟宗涛. 基于Arduino与yeelink平台的实时环境监测系统[J]. 单片机与嵌入式系统应用, 2014(10): 26-29.

[5] SMSC. LAN8720A/LAN8720Ai Datasheet 1.2.LAN 8720A-CP[S]. 2011.

[6] ST.Stm32f407 Datasheet. stm32f407[S] . 2011.

[7] 付晓军, 夏应清, 何轩. 嵌入式LwIP协议栈的内存管理[J]. 电子技术应用, 2006, 32(3):56-58.

[8] 张齐, 劳炽元. 轻量级协议栈LWIP的分析与改进[J]. 计算机工程与设计, 2010, 31(10): 2169-2171.

[9] DUNKELS A. Design and implementation of the LwIP TCP/IP stack[D]. Stockholm, Sweden: Swedish Institute of Computer Science,2001.

[10] 朱升林.欧阳骏.杨晶. 嵌入式网络那些事:LwIP协议深度剖析与实战演练[M]. 北京:中国水利水电出版社, 2012.

Design and implementation of remote home device control system based on Web

Wu Lei1, Zhang Zhengbing1, Hu Ronghua2

(1. Electronics and Information School, Yangtze University, Jingzhou 434023, China;2. School of Computer Science, Yangtze University, Jingzhou 434023, China)

In order to facilitate the remote control of home devices and improve equipment reliability, a remote home equipment control system based on Web was designed. This system allows users to control home devices from thousands of miles away only by logging on to the browser of the phone or PC. It includes the node equipment control platform and the Internet of things platform. The former which used MCU Stm32f407, PHY chip Lan8720 and LwIP protocol stack provides functions such as log in the network, control and state detection for node devices. The latter is based on Web technology to respond to the control commands from the user browser and monitor the running state of devices. The test results show that the system is stable and perfect in functions. It can meet the needs of home equipment control and will have broad application prospects.

STM32; LwIP; Lan8720; Web control

TP273

A

10.19358/j.issn.1674- 7720.2017.19.019

武磊,张正炳,胡蓉华.基于Web的家居设备远程控制系统设计与实现[J].微型机与应用,2017,36(19):66-69.

2017-05-08)

武磊(1990-),男,硕士,助教,主要研究方向:物联网、无线传感器网络安全。张正炳(1961-),男,博士,教授,主要研究方向:图像与视频编码、数据压缩、物联网。胡蓉华(1985-),男,博士,讲师,主要研究方向:物联网、信息安全。

猜你喜欢
浏览器家居联网
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
打造日常家居“氛围感”
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
台北家居
抢占物联网
《数码家居》2009年下半年推荐榜
浏览器