物聯網網關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.pswp.cn/news/540864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540864.shtml
英文地址,請注明出處:http://en.pswp.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…