物联网网关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…

WSFC真实场景仲裁处理

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

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--)…

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 …

智能循迹避障小车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…

《Android应用开发攻略》——2.2 异常处理

2.2 异常处理 Ian Darwin2.2.1 问题Java有一个精心定义的异常处理机制,但是需要花费一定的时间学习,才能高效地使用而不至于使用户或者技术支持人员感到沮丧。2.2.2 解决方案Java提供了一个Exception层次结构,正确地使用它能够带来相当大的灵…

请写出3个Android布局,一起撸一波干货集中营练练手Android(三)布局+实现篇

MPGankIO 布局篇整个App到了这里就开始准备开始实现逻辑啦,有没有点小期待后续如果有需要可以爬一波包包通缉令的数据O(∩_∩)O~~我们的布局采用5.0之后的新布局控件1.CardViewCardView特别的属性如下:android:cardCornerRadius:在布局中设置…

小米净水器压力传感器_净水器中RO的完整形式是什么?

小米净水器压力传感器RO:反渗透 (RO: Reverse Osmosis) RO is an abbreviation of Reverse Osmosis. It is a course of action that aids the RO water purifier to banish unfavorable ions, dissolved solids, and TDS from the water. Reverse osmosis is the c…

即时通讯应用战争开打,到底谁能最终定义我们的交流方式?

题图:风靡亚洲的Line 北京时间4月4日消息,据科技网站TechRadar报道,对业界来说,即时通讯应用是一个巨大的市场,除了专门发力该领域的公司,专注搜索的谷歌和专注社交的Facebook最近几年也都开始深耕此类应用…

离散点自动生成等高线_有限自动机| 离散数学

离散点自动生成等高线有限状态机 (Finite state machine) A finite state machine (FSM) is similar to a finite state automation (FSA) except that the finite state machine "prints" an output using an output alphabet distinct from the input alphabet. Th…

android点击加号,Android仿微信朋友圈点击加号添加图片功能

本文为大家分享了类似微信朋友圈,点击号图片,可以加图片功能,供大家参考,具体内容如下xml:xmlns:app"http://schemas.android.com/apk/res-auto"android:layout_width"match_parent"android:layout_height&qu…

AI 创业公司 Kyndi 获850万美元融资,帮助公司预测未来

雷锋网(公众号:雷锋网)8月10日消息,据外媒报道, Kyndi 是一家总部位于帕洛阿尔托的 AI 创业公司。该公司今天宣布,已经完成了850万美元的 B 轮融资。 本轮融资的资金来源包括 PivotNorth Capital,Darling Ventures 和 …

css max-width_CSS中的max-width属性

css max-widthCSS | 最大宽度属性 (CSS | max-width property) The max-width property is used to help in setting the width of an element to the maximum. Although if the element or content is already larger than the maximum width then the height of that content…

20个编写现代CSS代码的建议

本文翻译自Danny Markov 的20-Tips-For-Writing-Modern-CSS一文。 本文归纳于笔者的Web Frontend Introduction And Best Practices:前端入门与最佳实践中CSS入门与最佳实践系列,其他的关于CSS样式指南的还有提升你的CSS姿势、Facebook里是怎样提升CSS代码质量的。本…