基于OpenWRT的智能网关的设计与实现

2018-10-29 11:00吴明代鹏飞
中文信息 2018年9期

吴明 代鹏飞

摘 要:随着计算机技术及网络通信技术的高速发展,家居设备的智能化管理已经为人们的生活提供方便、便捷的服务。在智能家居系统中,智能网关是整个系统的核心,在具有基本的数据包路由功能外,还需要提供控制智能家居的网络服务,实现对家居终端数据的收集、转发以及控制终端数据的转发和发送,可以说,是整个智能家居系统最为重要的部分。

关键词:OpenWRT 智能网关 嵌入式服务器 MIPS

中图分类号:TP393 文献标识码:A 文章编号:1003-9082(2018)09-000-01

在智能家居系统的构成中,智能网关往往扮演着设备组网及智能控制的角色。在智能网关的设计和实现中,往往对于其运行的可靠性、经济性以及功能性方面有较高的要求。在智能网关硬件的选型方面,可以选择的硬件平台有ARM、MIPS以及X86,而这些不同的硬件平台在不同的应用环境中具有不同的优劣。

在智能网关的实现中,以基于MIPS架构的RT5350芯片为硬件基础,以嵌入式操作系统OpenWrt为系统软件基础,实现一个功能完备的软件系统。

一、智能网关功能需求分析

智能网关要具有提供网络服务的功能,就需要具备提供Web服务以及数据库服务的能力,实现对控制终端状态、控制数据的存储。另外,为了能给提供更为智能的控制服务,需要根据用户以往的行为数据进行预测分析。其需要具备的功能如图1所示。

二、基于MIPS架构的硬件平台

智能家居系统的网关在硬件平台的选择方面,采用了雷凌公司生产的嵌入式微处理器RT5350芯片,该芯片采用了MIPS架构,具有360MHZ的处理芯片,既支持Wifi也支持bluetooth,而且其内部更是集成了射频放大器,从而实现了单芯片无线连接及控制功能。嵌入式微处理器RT5350芯片是一款在成本、尺寸方面控制的相当优秀的一款高质量产品,非常适合各种环境中无线环境的构建。该微处理器内置了第二代802.11n无线局域网协议,在实现超大覆盖范围以及超高数据吞吐率的情况下,更具有更低成本、更简单的二次开发的优势。

三、设计并实现智能网关软件系统

1.智能家居网关操作系统OpenWrt

Openwrt操作系统对各种架构的处理器都有很好的支持,比如X86、MIPS等,因此,该系统非常适合用于开发作为智能家居系统的智能网关系统。对于操作系统OpenWrt的开发使用,既可以使用命令行方式也可以使用基于Web的图形化方式。另外,OpenWrt操作系统具有动态添加、删除功能模块的特性,因此,使用该系统可以组建一个动态可更改的操作系统。

2.OpenWrt操作系统的配置及编译

在开发嵌入式系统时,需要采用交叉编译的方式进行,因此,OpenWrt操作系统的交叉编译环境选择使用Linux的桌面发行版,从而保证系统开发中的跨平台需求。

在交叉编译OpenWrt操作系统时,具体的操作步骤如下所示:1、下载工具的安装。在centos操作系统中对OpenWrt操作系统进行交叉编译之前,需要使用专有的下载工具以及库文件的支持。1)、SVN工具的安装。在root用户模式下使用yum install subversion命令来安装SVN工具,主要为下载OpenWrt操作系统的源代码提供支持。2)、GIT工具的安装。在root用户模式下使用yum install git-core命令来安装GIT工具。3)、安装依赖的库文件。在root用户模式下使用yum install命令来安装所依赖的库文件,比如g++、bzip2、flex、bison等等。 2、 OpenWrt操作系统源码的下载。当使用命令yum install subversion安装了SVN下载工具后,就可以使用该工具进行OpenWrt操作系统源码的下载了。在下载操作系统源码之前,需要使用mkdir OpenWrtCode命令创建一个存放源码的文件夹OpenWrtCode。3、硬件平台的选择。在下载了最新的Openwrt操作系统源码之后,需要使用make menuconfig命令打开配置界面,并在该界面中配置需要运行的硬件芯片类型。由于OpenWrt操作系统需要运行在RT5350芯片之上,因此,在硬件平台配置界面需要配置选择其目标系统为Ralink RT28/RTxx、目标平台为RT/RT5350 based boards以及配置文件为HAME-MPR-A2。4、开启无线功能。使用Vi命令将mac80211文件夹下对应的mac8021.sh脚本文件中的option disabled 1语句启用无线功能即可。

通过以上4个步骤的实施就可以在OpenWrtCode/trunk目录下执行make V=99命令,进行OpenWrt操作系统的编译,编译完成后将在该目录下生成一个bin镜像文件。使用tftpd工具将该镜像文件下载到开发平台即可。

四、嵌入式服务器的搭建

在嵌入式操作系统中,可以使用PHP开发语言来编写程序实现数据的接收、存储和转发,因此,需要搭建一个嵌入式的Web服务器。本文通过使用Nginx和PHP来搭建一个运行PHP应用程序的Web服务器,具体的搭建过程如下。

1.安装PHP

通过opkg命令来安装PHP,其中安装了PHP主程序、PHP高速缓冲存储器APC、MySQL、网页交换关键技術fastcgi以及数据解析如xml、json等。

2.配置PHP

PHP安装之后,会在/etc的目录下生成一个配置文件PHP.ini,通过修改该文件来完成PHP的配置工作。在配置文件中进行了主目录的设置、各种扩展以及MySQL的默认的socket等信息。

3.安装并设置Nginx

Web服务器软件Nginx的按照,只需要使用opkg install nginx即可完成安装。在nginx.conf、vhost.conf文件中设置其工作目录、用户及用户组等信息。

4.配置FASTCGI

通过修改安装目录下的fastcgi_param文件来进行配置,配置文件类型解析错误问题的处理方式、查询字符串、内容类型、内容长度等信息。

五、嵌入式MySQL数据库的搭建

1.MySQL数据库的安装

使用opkg install mysql-server语句即可完成数据库的安装。

2.配置MySQL数据库

通过修改/etc文件夹下的my.cnf文件来进行数据库的位置、绑定地址、创建数据库的存放位置以及创建数据库。

至此,经过以上步骤,经过OPenWRT系统烧录至RT5350芯片中,通过配置相应信息,并安装和配置嵌入式服务及嵌入式数据库系统,从而实现了一个智能网关,为整个智能家居系统的运行提供环境支持。