物联网网关linux带串口,物联网网关|串口转HTTP GET协议

支持和Web服务器通信的物联网网关

发布时间:2017-05-10

作者:上海卓岚

浏览量:5582

1.概述

随着物联网的发展,越来越多的设备需要连接到云端。其中的设备有各类仪表、工业设备、采集设备、传感器,这些设备都以串口(RS232、RS485)居多,所以可以通过串口转TCP、串口转Wifi等物联网网关,将数据传输到云端。但是各种设备和云端服务器通信的时候由于协议不同,开发者需要开发各类后台程序以配合数据的转化和存储。

新的“支持和Web服务器通信的物联网”网关可以直接使用POST、GET命令和Web服务器通信,用户只需要编写php代码就可以实现数据的转化和存储简化了物联网上位机接口的开发。

39cee0ce862c0356075f08cebed9d50a.png

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

2.原理

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

1e5ef2bd997766f7eb2a28297ac1bf8b.png

提交的数据内容为:

76042ec33dded94b3adb68469c366c36.png

该数据内容将直接发到Web服务器的(这里的服务器IP是192.168.1.180)80端口。web服务器上运行的php程序就可以正确读取到data=123456这样的数据。

但是传统的透传式物联网网关的问题在于:

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

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

4.使用方法

卓岚ZLAN5143、ZLAN8343N等产品可以实现以上功能。使用步骤如下:

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

bd88bcb544b27d77d6a292a3150313dc.png

注意这里的$符号就表示串口收到的数据,物联网网关收到数据后将会用串口收到的数据替换$,然后将这个配置文件的内容上传给web服务器,这样web服务器就可以按照GET指令的格式接收到串口数据。

2. 如果需要先将数据格式从十六进制转化为字符串,则用#符号代替$符号来写配置文件。

从这里我们看到此类网关不仅实现的是对Web服务器GET指令的支持,而且可以灵活设计,它是一种灵活地在串口数据前面增加前缀、后面增加后缀的通用方法。

5.web服务器下发

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

0f24168a33cf8abf80f6c2cf137337e0.png

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

79f3666ce3cde62b546f15ab589d60f7.png

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

6.总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML--组件图,部署图

组件图用于实现代码之间的物理结构,详细来说,就是实现代码交互。通过接口,将不同的软件,程序连接在一起。 【理解】 1、组件的定义相当广泛,包含:源码,子系统,动态链接库&#xff0c…

ruby字符串截取字符串_如何在Ruby中附加字符串?

ruby字符串截取字符串There are multiple ways to do the required but we will study about three of them. 有多种方法可以满足要求,但我们将研究其中的三种方法。 Method 1: With the help of predefined method concat() 方法1:借助预定义方法conca…

centos查找linux大文件,centos中查找出大文件命令汇总

在linux中简单的查找文件与目录大小很简单#已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小du -sh [dirname|filename]如:当前目录的大小:代码如下复制代码du -sh .当前目录下个文件或目录的大小&…

WSFC真实场景仲裁处理

在本篇文章中,老王将从实际应用的角度来为大家讲解下群集仲裁在真实情况下的呈现,以及出现不同点数的节点宕机应该如何处理,在老王本篇文章中以及以后的文章中,我并不会去讲如何去安装一个群集,后面我们也将主要专注于…

ccie是什么_CCIE的完整形式是什么?

ccie是什么CCIE:思科认证互联网专家 (CCIE: Cisco Certified Internetwork Expert) CCIE is an abbreviation of the "Cisco Certified Internetwork Expert". CCIE是“ Cisco认证互联网专家”的缩写。 It is a technical certification, which was set …

从零开始自学c语言,从零开始学习C语言

了解指针变量,代码如下:int main(){int a 10;//4个字节int* p &a;//取地址aprintf("%p\n",p);//有一种变量是用来存放地址的 - 指针变量printf("%p\n", &a);*p 20;//* - 解引用操作符printf("%d\n", a);return…

SFB 项目经验-12-为某上市企业的Skype for Business购买Godday证书

《要想看Lync 2013升级SFB 2015真实项目经验:请看Lync 项目经验-01-到-Lync 项目经验-10》本系列博文:Lync 项目经验-01-共存迁移-Lync2013-TO-SFB 2015-规划01http://dynamic.blog.51cto.com/711418/1858520 Lync 项目经验-02-共存迁移-Lync2013-TO-SF…

在Linux中制作实用程序(MakeFile)

Hey folks, have you ever used IDEs? Most probably, yes. So whats your favorite one? Geany, CodeBlocks, DevC, Eclipse, NetBeans or something else? 大家好,您曾经使用过IDE吗? 很有可能,是的。 那你最喜欢哪一个呢? G…

c语言单片机彩灯程序设计,用C语言实现键控彩灯系统

源程序:#include "reg51.h"#define uchar unsigned charuchar flag;uchar light,assum;void delay05s(){unsigned char i,j,k;for(i5;i>0;i--)for(j200;j>0;j--)for(k250;k>0;k--);}void delay10ms(void){unsigned char i,j;for(i20;i>0;i--)…

wdcp支持两种安装方式

v3.2版本已发布,支持多PHP版本共存共用,支持SSL证书,更多可看论坛 v3版讨论区更多安装说明请看 http://www.wdlinux.cn/bbs/thread-57643-1-1.html wdcp支持两种安装方式 1 源码编译 此安装比较麻烦和耗时,一般是20分钟至一个小时不等,具体视…

c语言定义5个元素数组, 对数组进行从小到大排序,定义一个5行5列的二维数组,并动态赋值,将第3列的数组进行从小到大的排序...

满意答案xvercjdl32013.10.07采纳率:47% 等级:10已帮助:272人#include #include int cmp(const void* a, const void* b){return *(int*)a > *(int*)b;}int main(){int arr[5][5];int tmp[5];int ct 0;int i,j;printf("input 25 …

oracle下载(转载)

复制链接使用迅雷即可下载。4种包的介绍:***_database_*.zip 是Oracle数据库 服务端 软件的安装包,如果你要创建一个数据库,请下载这个版本***_client_*.zip 是oracle数据库 客户端 软件的安装包,如果你不需要创建…

c++ cdi+示例_C ++“或”关键字示例

c cdi示例"or" is an inbuilt keyword that has been around since at least C98. It is an alternative to || (Logical OR) operator and it mostly uses with the conditions. “ or”是一个内置关键字,至少从C 98起就存在。 它是||的替代方法 ( 逻辑…

智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...

余秀玲 余秀娟摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中。通过对基于单片机的智能小车的硬件及软件设计分析,实现红外避障循迹…

主板扩展槽图解_子板:扩展到主板

主板扩展槽图解A daughterboard is a circuit board that plugs into and extends the circuitry of the main board called motherboard. A daughterboard is connected directly to the motherboard. Unlike expansion cards, which connect with the motherboard using the …

c语言春考题目,PAT 2017年春考乙级真题(1066. 图像过滤)(C语言)

题目原文:图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格式:输入在第一行给出一幅图像的分辨率&#xf…

NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作

环境: &nbsp&nbspVisual Studio 2010 一、Mindscape.NhibernateModelDesigner安装 &nbsp&nbsp在打开VS2010之后,我们能够在“工具”菜单下找到“扩展管理器,搜索:Mindscape NHibernate Model Designer 下载安装就…

树1 树的同构_检查树是否同构

树1 树的同构Problem statement: 问题陈述: Write a function to detect if two trees are isomorphic. Two trees are called isomorphic if one of them can be obtained from other by a series of flips, i.e. by swapping left and right children of a numbe…

《SEO的艺术(原书第2版)》——第1章 搜索:反映认知、连接商务

第1章 搜索:反映认知、连接商务 搜索已经与当今的社会融为一体。截至2011年8月,全球每个月执行的搜索超过了1580亿次,每天大约执行52亿次。这意味着,每秒平均要执行大约61 000次搜索。此外,用户对搜索查询返回的期望时…

android 动态contextmenu,在Android中使用ContextMenu与ListView

要从选定的ListView项中获取该项,请参考ContextMenuInfo对象(请参见下面的最后一个实现方法)。完整解决方案如下:1)在ListActivity类中为上下文菜单注册ListViewOverridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstance…