APP下载

基于物联网技术的智能家居采暖远程控制系统设计

2018-01-05陈铁民

计算机测量与控制 2017年12期
关键词:壁挂炉控制面板驱动程序

陈铁民

(中国移动通信集团湖南有限公司永州分公司,湖南 永州 425000)

基于物联网技术的智能家居采暖远程控制系统设计

陈铁民

(中国移动通信集团湖南有限公司永州分公司,湖南 永州 425000)

随着物联网技术的高度发展,智能家居在采暖领域焕发了新活力,壁挂炉因具有强大的集中供暖能力,能广泛应用在我国北方大面积采暖领域,但传统壁挂炉的控制方式不具备网络化功能,为了解决壁挂炉传统控制方式的不足,提出基于物联网技术的智能家居采暖远程控制系统;该系统保留了原有壁挂炉显示面板和控制面板的串口通讯方式,在中间增加一个基于OpenWrt路由器的数据采集模块,在维持系统原有的通讯情况下,完成了壁挂炉的远程控制;经实验测试,搭载远程控制APP的移动终端能与网络化改造后的壁挂炉正常通讯,并完成指定操作;同时,壁挂炉也充当家庭网关,自动组建家庭网络,以供其他移动设备连接;该系统使用户摆脱了近距离操作壁挂炉温度参数的限制,使壁挂炉的控制变得更智能、更便捷,也为壁挂炉的远程控制提供可参考的网络化改造方案。

物联网技术;采暖;壁挂炉;远程控制;OpenWrt

0 引言

随着物联网技术的高度发展,智能家居在信息时代焕发了新的活力。壁挂炉作为家用常见的供暖设备,在移动互联的影响下得到发展。壁挂炉是具有强大集中供暖功能、能同一时间满足多居室采暖需求的供暖设备,各个供暖位置能根据用户设定而设置舒适的采暖温度,并且能提供恒温舒适的卫浴用水,因此能广泛应用在日常家庭生活中[1-2]。加入物联网技术后的壁挂炉,用户通过移动终端下发指令,便能完成壁挂炉的远程开启和关闭、温度设定、模式控制等复杂功能[3]。

OpenWrt应用是物联网技术的一种体现,它是基于高度模块化、自动化的嵌入式Linux系统,凭借强大的网络组件和扩展性,常常被用于工控设备、小型机器人、智能家居、智能路由器等场合[4-6]。

基于上述,结合OpenWrt的优势,提出基于物联网技术的智能家居采暖远程控制系统,在不改动壁挂炉原有线路布局基础上,增加一个OpenWrt路由器,维持原有数据交互的同时完成了壁挂炉的远程控制操作逻辑,以此完成壁挂炉的网络化改造。

1 系统结构及原理

现有的壁挂炉主要由控制面板和显示面板组成,如图1(a)所示。用户通过操作显示面板上的按键,便可完成简单控制指令的输入,显示面板收到用户的控制指令后,通过串口与控制面板通讯,从而控制壁挂炉打火工作、打开水泵维持水路流畅等功能。为了方便厂家完成壁挂炉的网络化改造,以减少原来壁挂炉显示面板和控制面板的线路连接为原则,在显示面板和控制面板中间增加一个OpenWrt路由器作为数据采集模块[7-9]。一方面作为采集模块,捕获了显示面板和控制面板之间的正常通讯,并维持了显示面板和控制面板之间的数据交互;另一方面作为网络模块,通过wifi或者ETH组建基于移动终端的远程控制系统,用户可通过该系统向壁挂炉发起远程控制。网络化改造后的方案如图1(b)所示。

此外,数据采集模块本身也是路由器,烧写固件后拥有组建家庭网络的能力,可以桥接到家庭的其他路由器上,扩大无线wifi的覆盖范围,也可以作为网络源组建家庭网络。

图1 壁挂炉网络化改造方案

2 数据采集模块硬件设计

网络化改造的壁挂炉远程控制系统,核心部件是数据采集模块,其难点有:1)网络化的设计要求决定了普通嵌入式设备不能满足需求;2)能充当家庭路由决定了系统成本不能太高;3)壁挂炉打火时对数据采集模块的稳定运作造成巨大挑战。

为了克服这些难点,经过考虑,采用Ralink的RT5350作为控制器,该模块集成了CPU、Wifi等基本模块,单芯片可以解决与移动终端的无线连接以及控制功能,以其高集成度、低成本、易于二次开发等优点,广泛应用于各个智能家电上。RT5350无线wifi模块管脚如图2所示。

图2 RT5350标准无线wifi模块管脚图

由于壁挂炉的控制面板上集成开关电源、打火装置,壁挂炉点火时产生高频噪音,影响数据采集模块的正常工作。为了解决电源干扰问题,采用高性能的同步降压稳压器MP1484作为电源模块。其内部集成了85 mΩ MOSFET,输入电压范围为4.75~23 V,负载电流为3A。电源模块原理如图3(a)所示。

数据采集模块作为路由器时,需要WAN口接入网关,而RT5350硬件上支持2个网口。在此处,将1个配置为WAN口,另1个配置为LAN口,以此拓展以太网接口。硬件上,采用内置变压器的RJ45网口,减少大量布线,而且WAN口和LAN口连接方式一致,只是在固件上配置稍微不同。以太网接口模块原理如图3(b)所示。

图3 数据采集模块底板原理图

此外,将RT5350上两个串口引出,分别与壁挂炉的显示面板和控制面板相连,如图3(c)所示。为了指示数据采集模块当前的工作状态,设置电源指示灯、壁挂炉显示面板和控制面板连接状态指示灯、Wifi信号指示灯,如图3(d)所示。最后设置复位按键1个,并规定:短按复位按键,数据采集模块将重启,长按超过5秒,路由器的所有配置将恢复出厂设置,如图3(e)所示。

3 网络化的壁挂炉软件设计

3.1 现有壁挂炉控制逻辑

根据文献[10](2016)可知,现有的壁挂炉主要由显示面板和控制面板组成,系统上电后,控制面板处于待机状态,而显示面板作为下达控制命令的主体,为了保证与控制面板连接的硬件完成所有的初始化流程,显示面板将保持2秒的待机状态,然后才执行初始化配置流程[10]。在系统进入初始化配置流程后,显示面板将向控制面板发送21条工程参数命令,命令涵盖了壁挂炉的点火阈值、点火量、采暖水温度阈值、卫浴水温度阈值等多种运行参数。控制面子收到工程参数后,更新壁挂炉的硬件运行参数,然后显示面板和控制面板进去关机状态[11-12]。当用户通过显示面板发起开机指令后,控制面板操作点火器进行点火,随后控制面板每隔50毫秒向显示面板不停循环发送6条实时状态信息(如表1所示),并只有在显示面板返回特定指令后,控制面板才更新下一条实时状态信息。

表1 实时状态信息表

3.2 软件系统搭建

在开发驱动程序和应用程序前,需要搭建OpenWrt路由器的固件。首先安装subversion,以及gcc、g++、git-core等必要的编译工具,再使用svn co svn://svn.openwrt.org.cn/openwrt/trunk下载系统源码,并执行“./scripts/feeds update -a”和“./scripts/feeds install -a”更新源码,使OpenWrt系统获取更多的软件支持。一般情况下,源码是缺少openssl和libssl-dev,也需要一同下载[13-15]。

在默认情况下,OpenWrt系统的路由参数并不是需要的,因此,需要在源码中修改,以便每次编译固件后,无需在配置文件中频繁修改。

1)修改路由子网参数。编辑/package/ base-files/files/lib/functions/uci-default.sh和/package/ base-files/files/bin/config_generate文件,将里面的set network.lan.ipaddr设置为需要的网段,在这里设置为set network.lan.ipaddr='192.168.1.1'。

2)修改Wifi参数。默认情况下,Wifi功能是失能的,编辑/package/kernel/mac80211/ files/lib/wifi/mac80211.sh文件,将“option disabled 1”改为“option disabled 0”,开启Wifi,并设置ssid、encryption以及key,开启Wifi的加密功能。

最后,执行make menuconfig,选择编译的内核类型,并将驱动文件和应用程序一同编译到OpenWrt系统固件中。

3.3 驱动程序设计

作为一个软件系统,一共分为应用程序、库函数、系统内核以及驱动程序,为了保证结构化的编程,各部分只需开放各自的接口以供上层和下层调用。而基于OpenWrt操作系统的设备驱动程序开发一般分为几个步骤:1)向内核注册驱动程序,使内核收到应用程序传入的文件名时能找到对应的驱动程序;2)通过open、close、write、read等接口函数实现需要的控制逻辑;3)将驱动程序编译到内核中,或者在Linux系统起来时通过insmod命令加载;4)测试驱动程序使之能正常工作。

加载和卸载驱动程序是由以下两个函数实现,往内核中添加或者删除该驱动的标识符。

module_init(GasBoileInit);// insmod时调用

module_exit(GasBoileExit);// rmmod时调用

应用程序与驱动程序之间通过file_operations这个结构体建立关系,用来指定应用程序调用驱动时的接口函数。

static struct file_operations GB_fops = {

/* 编译模块时自动创建的_this_modele变量*/

.owner = THIS_MODULE,

/* 调用接口*/

.open = GB_open,

.write = GB_write,

.read = GB_read,

.read = GB_close,

.unlocked_ioctl = GB_ unlocked_ioctl

};

RT5350有28个GPIO,除了GPIO0外其他的GPIO都有复用功能。在内核加载驱动程序时需要将寄存器映射到内存中,卸载驱动时解除映射关系。驱动程序初始化时进行GPIO的模式配置、输入与输出配置。以LED为例,通过查阅原理图可以知道,其中1个LED是由GPIO25管脚控制。设置相应管脚的工作模式后需要配置输入与输出模式,由GPIO27_22_DIR寄存器控制,当相应的位设为1时表示输出模式,为0时表示输入模式。而GPIO的输出由GPIO27_22_DATA寄存器决定,相应的位设为1时该管脚输出高电平,为0时表示输出低电平。在输入模式下读GPIO27_22_DATA寄存器就等得到该管脚的电平状态。

由于OpenWrt是跑在Linux系统下,对某个硬件寄存器操作时,需要将该寄存器的物理地址映射成虚拟地址以供内核访问。映射是通过ioremap()函数完成,返回值就是该寄存器对应的虚拟地址。因此,内核在执行module_init(GasBoileInit)时将注册设备,并映射寄存器:

// 注册设备

major=register_chrdev(0,“GB”,“GB_fops”);

// 创建类

GB_class=class_create(THIS_MODULE, “GB”);

// 创建设备节点

device_create(GB_class, NULL, MKDEV(major, 0), NULL, “GB”);

// 映射寄存器的地址

GPIOMODE = (volatile unsigned long*) ioremap (0x10000060, 4);

GPIO27_22_DIR = (volatile unsigned long*) ioremap (0x10000674, 4);

GPIO27_22_DATA = (volatile unsigned long*) Ioremap (0x10000670, 4);

// 初始化寄存器的值

* GPIOMODE |= (0x1 << 14);

* GPIO27_22_DIR |= (1<<3) ;

* GPIO27_22_DATA &= ~(1<<3) ;

相反,当内核执行module_exit(GasBoileExit)时,删除设备,并通过iounmap()函数解除寄存器的映射关系。驱动程序在内核编译时添加到内核中,make menuconfig时选中该驱动再执行内核编译。最后在应用程序中,通过open()、write()、read()函数便可执行对应的驱动函数。

3.4 网络化的壁挂炉控制逻辑

数据采集模块的串口1接到显示面板的串口上,串口2接到控制面板的串口上,数据采集模块的核心功能是:将串口1接收的数据通过串口2转发出去,从串口2接收的数据通过串口1转发出去;同时,每隔5秒钟,将6条实时状态信息打包,通过网络向移动终端发送出去。

图4 网络化的壁挂炉应用程序的工作流程图

**如图4所示是网络化的壁挂炉应用程序的工作流程图。即:1)数据采集模块上电,运行OpenWrt路由器固件,进入操作系统后,自动执行壁挂炉远程控制的应用程序;2)随后,应用程序不停监听与显示面板或控制面板相连串口的Buff空间是否为空,为空说明壁挂炉还没启动,或者显示面板和控制面板还没发起数据交互,这时应用程序休眠10 ms,重复第2)步,反之,跳到第3)步;3)为了维持壁挂炉的正常运作,数据采集模块收到串口数据后首先完成数据的转发,然后提取当前的实时状态信息,存放在SDRAM上;4)监听网络的Buff空间是否为空,为空说明没有从网络端收到控制壁挂炉的控制指令,反之,对网络数据进行解析,分离出控制命令,并向控制面板发送壁挂炉控制指令,向显示面板发送显示状态更新指令;5)检测是否达到5 s的实时状态信息上传周期,如果是,对SDRAM上的实时状态信息进行装包处理,发向网络端,随后跳转到第2)步,如果还没达到5 s时间,系统继续计时,并直接跳转到第2)步。

4 实验与小结

为了验证上述方案的可靠性,搭建基于物联网技术的智能家居采暖远程控制系统。其中,数据采集模块的原理框图如图5所示。

图5 数据采集模块原理框图

实验时,数据采集模块作为家庭网关组建内网,将上一级交换机分发下来的网线插到数据采集模块的WLAN口。此外,将壁挂炉的显示面试接在UART1,控制面板接在UART2,由于显示面板与控制面板之间是按照波特率为4800bps的速度传输,所以UART1和UART2也要保持4800bps的波特率。壁挂炉的控制面板一直处于上电状态,同时给数据采集模块供电,上电后电源指示灯亮起。壁挂炉在显示面板下发控制指令前,都处于OFF状态,但数据采集模块的家庭网络部分正常工作。

为了配合完成壁挂炉的远程控制,开发基于安卓平台的壁挂炉远程控制APP,并完成以下测试:

1)APP启动流程。启动APP时,APP向局域网内的壁挂炉IP和端口发送连接指令。在5秒内等待壁挂炉的回复指令,随后进入工作模式,壁挂炉每隔5秒向APP发出实时状态信息。由于壁挂炉与路由器相连,所以壁挂炉的IP即为网关IP,在这里设置为“192.168.1.1”,端口号规定为9999,如图6(a)所示。

2)设置壁挂炉参数。当用户在APP上设置采暖温度或卫浴温度后,APP将向壁挂炉发出控制信号,壁挂炉收到后,返回回复指令,温度控制界面图如6(b)所示。

图6 APP测试效果图

本设计采用了OpenWrt路由器搭建了燃气壁挂炉的远程控制系统,该系统保留了原来壁挂炉显示面板和控制面板的串口通讯方式,在中间增加数据采集模块,在维持系统通讯的情况下,加入了网络控制的手段,使用户摆脱了近距离调整壁挂炉温度参数的限制,使壁挂炉的控制更智能,更便捷。

[1] 徐 俭.浅议家庭网络技术与应用[J].有线电视技术,2012, 19(12):55-59.

[2] 李 旭.从环境舒适度出发的绿色建筑设计思维与方法[J].城市建筑理论研究(电子版),2013,(33):1-4

[3] 陈 煜,张 依,张 辉.燃气壁挂炉采暖的应用现状与面临的问题[J].上海工程技术大学学报,2009, 23(2):106-110.

[4] Barolli A, Oda T, Barolli L. Experimental results of a Raspberry Pi and OLSR based wireless content centric network testbed considering openWRT OS[A].2016 30th International Conference on Advanced Information Networking and Applications (AINA)[C].2016,153:95-100.

[5] 张晓华,张玉华.基于路由器的开源嵌入式操作系统学习平台[J].单片机与嵌入式系统应用,2013,13(2):13-16.

[6] 李德强,孙进生,王超颖,等.基于OpenWrt的室内安防系统的研究与设计[J].工业控制计算机,2016, 29(7):36-37.

[7] 郭稳涛, 何怡刚. 智能家居远程监控系统的研究与设计[J]. 计算机测量与控制, 2011,(09):2109-2112.

[8] 高 鹏, 郑 超, 任岐鸣,等. ARM和ZigBee的智能家居监控网络设计[J]. 计算机测量与控制,2014,(10):3206-3209.

[9] 周 晋.燃气壁挂锅炉系统设计[J].科技展望,2014,(21):198.

[10] 陈嘉源,吴黎明.模组壁挂炉温度协同控制系统设计[J].单片机与嵌入式系统应用,2016,16(6): 58-61.

[11] 黄杰华.一种多功能遥控式壁挂炉:中国,CN203432091U [P]. 2014-02-12.

[12] 李 军.燃气壁挂炉远程监控系统:中国,CN102777972A[P]. 2012-07-11.

[13] Zhao G, Li B. The design of gas boiler combustion system based on ADRC and μCOSII[A]. Control Conference (CCC), 2016 35th Chinese[C]. 2016: 5982-5985.

[14] Kciuk Mk. OpenWRT operating system based controllers for mobile robot and building automation system students projects realization[A]. 2014 15th International Workshop on Research and Education in Mechatronics (REM)[C]. 2014:1-4.

[15] 李德强,孙进生,王超颖,等.基于OpenWrt的室内安防系统的研究与设计[J]. 工业控制计算机,2016,29(7):36-37.

Design of Smart Home Heating Remote Control System Based on Internet of Things

Chen Tiemin

(China Mobile Communications Corporation Hunan Co., Ltd. Yongzhou Subsidiary, Yongzhou 425000,China)

With the highly development of internet of things technology, smart home break out a new vitality in the field of heating. As a strong central heating capacity, gas boiler can be widely used in field of large area heating in the north of China. But the traditional control method of gas boiler does not have network function. In order to solve the limitation of gas boiler with traditional control method, a smart home heating remote control system based on internet of things is presented. It will keep the original serial communication mode between display panel and control panel. And, a data acquisition module based on OpenWrt is added to complete the remote control of gas boiler in the case of maintaining system communication. After the experimental test, the mobile terminal equipped with remote control APP can communicate with gas boiler normally, and complete the specified operation. Besides, the gas boiler can be a home gateway, which can construct a home network automatically, and allow other mobile device connect. This system allows the user to get rid of the restrictions of temperature setting on gas boiler, which can make gas boiler more intelligent and convenient, and providing a reference network reconstruction scheme for gas boiler remote control.

internet of things; heating; gas boiler; remote control; OpenWrt

2017-06-15;

2017-07-26。

陈铁民(1977-),男,湖南永州人,硕士,主要从事嵌入式系统、物联网应用、通信与信息系统研究。

1671-4598(2017)12-0090-05

10.16526/j.cnki.11-4762/tp.2017.12.024

TP272

A

猜你喜欢

壁挂炉控制面板驱动程序
壁挂炉主控板工装测试系统设计
阻止Windows Update更新驱动程序
全预混壁挂炉保养预警设计及应用探讨
恢复开始按钮右键菜单“控制面板”选项
计算机硬件设备驱动程序分析
FES丙烷制冷机控制系统升级改造
多种方法找回传统控制面板
2015年斯巴鲁傲虎空调控制面板操控失灵
几种自动除垢方法在燃气壁挂炉内应用的综合分析
多方因素加快壁挂炉采暖时代到来