Web服务器物联网网关 点击:159 | 回复:0



wzzlin

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 8回
  • 年度积分:0
  • 历史总积分:428
  • 注册:2008年12月11日
发表于:2017-06-27 10:38:18
楼主

1.概述

  随着物联网的发展,越来越多的设备需要连接到云端。其中的设备有各类仪表、工业设备、采集设备、传感器,这些设备都以串口(RS232RS485)居多,所以可以通过串口转TCP、串口转Wifi等物联网网关,将数据传输到云端。但是各种设备和云端服务器通信的时候由于协议不同,开发者需要开发各类后台程序以配合数据的转化和存储。
  新的支持和Web服务器通信的物联网网关可以直接使用POSTGET命令和Web服务器通信,用户只需要编写php代码就可以实现数据的转化和存储简化了物联网上位机接口的开发。

  此类物联网网关的最大优点是:节省了开发复杂度,网关可以直接以GET/POST指令和云服务器直接通信。

2.原理

  下面讲一下此类网关的用法和原理。我们知道,当我们在浏览器中输入以下链接的时候将以GET指令的方式向Web服务器提交数据。

  提交的数据内容为:

  该数据内容将直接发到Web服务器的(这里的服务器IP192.168.1.18080端口。web服务器上运行的php程序就可以正确读取到data=123456这样的数据。
  但是传统的透传式物联网网关的问题在于:

1. 各类仪表发送给物联网网关的数据并不是标准的GET指令,所以物联网网关需要进行一个数据转化,比如在数据的前面增加GET /1.php?data=的数据,在后面增加HTTP/1.1等数据。

2. 各类仪表发送的数据是十六机制数据,但是web服务器容易处理字符串string数据,所以需要将十六进制转化为字符串。

4. 使用方法

  使用步骤如下:
1.
在计算机上编写一个配置文件,内容如下,然后下载到物联网网关内。

  注意这里的$符号就表示串口收到的数据,物联网网关收到数据后将会用串口收到的数据替换$,然后将这个配置文件的内容上传给web服务器,这样web服务器就可以按照GET指令的格式接收到串口数据。
2.
如果需要先将数据格式从十六进制转化为字符串,则用#符号代替$符号来写配置文件。
  从这里我们看到此类网关不仅实现的是对Web服务器GET指令的支持,而且可以灵活设计,它是一种灵活地在串口数据前面增加前缀、后面增加后缀的通用方法。

5. web服务器下发

  以上的方法只是实现了数据从串口到网络时,串口hex数据转变为GET命令的功能。但是如果Web服务需要按照GET命令下发数据,此时也需要将其中的某部分数据转发到串口。
  例如:当Web服务器向物联网网关(IP地址为192.168.0.200)的端口8080发送GET命令时,GET命令中的有效数据(这里是61626364656667)被转化为十六进制数据(abcdefg)从网关的串口输出,发给控制器、执行器。如下图所示:

  实现的方法是在原来的配置文件第一行增加:NFL: data=# HTTP/1.1,物联网网关在收到任何网络数据的时候将会搜索前缀data=和后缀HTTP/1.1,将中间的部分提取出来,并转化为十六进制从串口输出。

  Web服务器下发功能的实现,还得益于卓岚物联网在作为TCP客户端上传数据的时候,也可以作为TCP服务器接收Web服务器的下发连接和数据。

5. 总结

  能够直接和Web服务器以GET命令通信的物联网网关——包括下发和上发数据——可以大大降低云端程序的开发工作量,该类物联网网关方便了物联网网设备的集成和接入。

 



热门招聘
相关主题

官方公众号

智造工程师