您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>电脑硬件>服务器>

基于OpenWrt的物联网服务器设计

2017年12月27日 14:27 电子发烧友整理 作者: 用户评论(0

本文提出了一种基于OpenWrt操作系统智能服务器,它可用于厨房电器的无线互联和智能化改造。通过利用本智能厨电服务器,实现了对微波炉的智能化改造,并将智能手机通过WiFi网络连接到服务器成功对微波炉进行了远程控制。

本设计可以作为智能厨电的基础物联网平台,可以对该平台进行合理的扩展,使智能家居成为可能。

OpenWrt的编译

OpenWrt是基于Linux系统,为编译OpenWrt需要搭建Linux平台。利用VMwareWorkstation装载Ubuntu14.04虚拟机搭建Linux编译环境。Ubuntu14.04系统安装完成,连接上网络,以非root用户登录,打开“应用程序—附件—终端”,在终端下利用sudoapt-getinstall命令语句,加载如下的软件包:gccg++binutilspatchbzip2flexbisonmakeautoconfgettexttexinfounzipsharutilssubversionlibncurses5-devzlib1g-dev,利用sudoapt-getupdate命令语句更新以上软件包。获取OpenWrt源代码和安装包。在终端中输入命令语句svncheckoutsvn://svn.openwrt.org/openwrt/trunk,将会在OpenWrt代码托管网站上下载OpenWrt最新工程文件。

feeds是OpenWrt环境所需要的软件包套件。通过feeds.conf.default文件检查需要包含在环境中的软件包。下载所需要的软件包,使用[openwrt@localhosttrunk]$./scripts/feedsupdate-a./scripts/feedsinstall-a更新feeds的配置文件,添加新的软件包用于生成系统。使用交叉编译,生成的SDK以及image等文件的类型取决于开发环境、应用硬件及源码版本。这需要对开发环境进行了解,才能进行正确的配置。使用makedefconfigmakeprereqmakemenuconfig进入配置界面(menu-config),如下图所示。

基于OpenWrt的物联网服务器设计

OpenWrt编译配置界面

在TargetSystem和TargetProfile下选择合适的目标即可。本文设计选择TP-LINKTL-WR703N作为目标。选择BuildtheOpenWrtImageBuilder和BuildtheOpenWrtSDK即可在编译中产生相关二进制和SDK文件。

保存好选项,退出配置界面返回终端,利用[openwrt@localhosttrunk]$makepackage/cups/compileV=99语句进行OpenWrt的编译。编译过程中会自动从OpenWrt源码托管网站下载相关的系统文件。等待编译结束后,产生相应的Image和SDK文件。在SDK中添加自己的packages进行智能服务器系统开发。

对于新建的package,可以作为一个可选软件包,利用SDK环境来单独编译,编译生成一个ipk的文件包,最后在OpenWrt系统下安装即可。

在本文设计中利用了socket接口通信协议和ser2net服务。实现方法如下:

com_init();//端口初始化

//设置一个socket地址结构

structsockaddr_inserver_addr;

bzero(&server_addr,sizeof(server_addr));

server_addr.sin_family=AF_INET;//服务器IP

server_addr.sin_addr.s_addr=htons(INADDR_ANY);

server_addr.sin_port=htons(SERVER_PORT);//控制端口//数据发送

voidsend_cmd(unsignedcharcmd){

intlen;

intn=0;

charwrite_buf[50];

n=0;

len=3;

bzero(write_buf,sizeof(write_buf));

write_buf[0]=0xfe;

write_buf[1]=0x00;

write_buf[2]=cmd;

n=write(fd,write_buf,len);

printf(“writedchars\n”,n);

}

本文采用的服务器IP为192.168.1.1,端口为2001。

编写的makefile文件如下:

#buildopenwrt-serverexecutablewhenuserex-

ecutes“make”

openwrt-server:openwrt-server.o

$(CC)$(LDFLAGS)openwrt-server.o-o

openwrt-server

openwrt - server. o: openwrt - server. c

$ ( CC) $ ( CFLAGS) - c openwrt - server. c

# remove object files and executable when user executes “ make clean”

clean:

rm * .o openwrt - server

执行 make 生成 openwrt - server. ipk 文件,将文件 上 传 到 路 由 器。利 用 opkg install 安 装 ser2net. ipk 和 openwrt - server. ipk。

至此,OpenWrt 智能服务器系统编译完成。

TP - Link Wr70n改造

本设计选择 TP - Link Wr70n 作为中继服务器,负责智能手机与厨房电器之间的通信。TP - Link Wr703n 是一款基于 ARM 构架的无线路由器。本文利用 TP - Link Wr703n 的串口与厨房电器进行通信,该款路由器默认未将串口引出。对 TP - Link Wr703n 的改造,让 OpenWrt 系统成功与其适配也是该设计的重点。Wr703n 路由器的版图如下图所示。

Wr703n 电路版图

图中 A 部分是 Wr703n 的控制 AR9331 的位置, B 部分是 Flash 所在位置。通过对 Wr703n 的电路改造引出 TTL 串口。

取下原有的 4 MB Flash 芯片,将芯片更换为Hynix HY27UF084G2B 64 MB Flash 芯片。通过原理图找到 Wr703n 处理器的串口引脚,利用跳线引出串口到 USB 接口上,路由器改造完成。

非常好我支持^.^

(0) 0%

不好我反对

(5) 100%

( 发表人:李建兵 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!