国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Iot物聯(lián)網(wǎng)-插件版

類(lèi)型 應(yīng)用插件
版本 1.0.5
版本更新時(shí)間 2025-03-17
大小 34.1 KB
開(kāi)發(fā)商
iot物聯(lián)網(wǎng)平臺(tái)
評(píng)分

本系統(tǒng)為iot物聯(lián)網(wǎng)的插件版,功能和文檔與獨(dú)立應(yīng)用版有些地方不一致,以本文檔內(nèi)容為準(zhǔn)

詳細(xì)介紹

本系統(tǒng)是基于webman開(kāi)發(fā)的一套物聯(lián)網(wǎng)平臺(tái),可以實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備的聯(lián)網(wǎng)上線(xiàn)、數(shù)據(jù)采集、命令下發(fā)、被動(dòng)回復(fù)、實(shí)時(shí)通訊等功能,支持TCP協(xié)議和Websocket協(xié)議(ws和wss),本系統(tǒng)提供的是TCP協(xié)議透?jìng)?,用?hù)需根據(jù)實(shí)際情況將設(shè)備協(xié)議轉(zhuǎn)為T(mén)CP協(xié)議后接入本系統(tǒng),一般可使用DTU設(shè)備或IO設(shè)備,這些設(shè)備可以將硬件的各種協(xié)議統(tǒng)一轉(zhuǎn)為T(mén)CP協(xié)議,如電表、儀表、傳感器、地磅、IO設(shè)備、開(kāi)關(guān)量、模擬量、掃碼槍、語(yǔ)音播報(bào)、身份證讀卡器、各類(lèi)燈具、門(mén)禁開(kāi)關(guān)等都支持,真正實(shí)現(xiàn)萬(wàn)物互聯(lián)。

安裝步驟

1、安裝數(shù)據(jù)庫(kù)組件:(參考webman文檔)

composer require -W illuminate/database

2、安裝redis組件:(需安裝redis擴(kuò)展,參考webman文檔)

composer require -W illuminate/redis illuminate/events

3、安裝gateway-worker插件(安裝完成后,需將config/plugin/gateway-worker/app.php中的enable改為false)

composer require webman/gateway-worker

4、安裝http客戶(hù)端插件

composer require -W workerman/http-client

以上步驟完成之后,再去webman-admin的插件管理里面安裝本插件。
注意:php版本要求7.X

功能特性

1、數(shù)據(jù)采集:支持利用TCP協(xié)議從設(shè)備實(shí)時(shí)采集數(shù)據(jù),數(shù)據(jù)可以直接存入redis里,支持string類(lèi)型和list類(lèi)型,支持?jǐn)?shù)據(jù)過(guò)濾,支持?jǐn)?shù)據(jù)轉(zhuǎn)發(fā)給指定url。
2、命令下發(fā):支持服務(wù)端秒級(jí)給設(shè)備下發(fā)指令,支持以隊(duì)列的方式下發(fā)。
3、被動(dòng)回復(fù):根據(jù)設(shè)備發(fā)送的特定指令,針對(duì)性的回復(fù)命令。
4、實(shí)時(shí)通訊:可以跟設(shè)備實(shí)時(shí)進(jìn)行通訊,方便驗(yàn)證命令和調(diào)試設(shè)備。
5、數(shù)據(jù)轉(zhuǎn)發(fā):可以實(shí)現(xiàn)兩個(gè)或多個(gè)設(shè)備之間的相互轉(zhuǎn)發(fā),如:想讓設(shè)備采集的數(shù)據(jù)直接發(fā)送到網(wǎng)頁(yè)websocket,用轉(zhuǎn)發(fā)即可簡(jiǎn)單實(shí)現(xiàn)。

安裝使用

1、下載代碼部署到服務(wù)器上
2、修改配置參數(shù):文件路徑:plugin/iotplug/config/iot.php,其中ip:為所在服務(wù)器的公網(wǎng)IP,tcp_port:TCP協(xié)議監(jiān)聽(tīng)端口,ws_port:WebSocket協(xié)議監(jiān)聽(tīng)端口(ws),wss_port:WebSocket協(xié)議監(jiān)聽(tīng)端口(wss),ssl_cert:SSL證書(shū)(.crt),ssl_key:SSL證書(shū)密鑰(.key),super_code:超級(jí)權(quán)限注冊(cè)包(注意修改),默認(rèn)所有的設(shè)備收到的消息都會(huì)轉(zhuǎn)發(fā)消息到這個(gè)注冊(cè)包.
(1)設(shè)置的端口要注意開(kāi)啟放行,如果是用的寶塔,在安全欄目添加,如果是阿里云ECS,注意在ECS控制臺(tái)里添加安全組放行。
(2)wss_port是https的websocket端口,如果需要使用,請(qǐng)配置ssl證書(shū),阿里云騰訊云都可以申請(qǐng)免費(fèi)的證書(shū)。注意:如果是鏈接wss的話(huà),websocket不能用ip地址,需要用域名,跟證書(shū)保持一致。如WebSocket("wss://iot.xxx.com:6363"),其中iot.xxx.com的證書(shū)要跟配置的wss.key和wss.crt一致

設(shè)備操作

一、添加設(shè)備

1、自定義注冊(cè)包:
(1)必填。自定義注冊(cè)包是設(shè)備與服務(wù)端建立連接的唯一憑證,設(shè)備在連接服務(wù)端時(shí),必須使用自定義注冊(cè)包,否則服務(wù)端會(huì)拒絕連接。
(2)自定義注冊(cè)包可以是任意字符串,但是不能包含英文逗號(hào),否則會(huì)導(dǎo)致解析錯(cuò)誤。
(3)注冊(cè)包是設(shè)備的唯一ID且不能跟其他設(shè)備重復(fù),相當(dāng)于設(shè)備的身份證,用于向服務(wù)端驗(yàn)證身份。一般是在使用DTU的時(shí)候配置在DTU里,第一次連接服務(wù)端的時(shí)候,DTU會(huì)發(fā)送自定義注冊(cè)包進(jìn)行身份注冊(cè)。服務(wù)端驗(yàn)證通過(guò)后建立連接。
(4)自定義注冊(cè)包只需在第一次連接服務(wù)端時(shí)發(fā)送,后續(xù)連接服務(wù)端時(shí),不需要再發(fā)送。

2、自定義回復(fù)包:非必填,自定義回復(fù)包是設(shè)備在第一次注冊(cè)成功時(shí),服務(wù)端回復(fù)給設(shè)備的數(shù)據(jù),如果不填寫(xiě),那么服務(wù)端不回復(fù)。

3、名稱(chēng):必填,設(shè)備名稱(chēng)。

4、協(xié)議類(lèi)型:
(1)TCP透?jìng)鳎簞?chuàng)建一個(gè)TCP客戶(hù)端,設(shè)備發(fā)送的數(shù)據(jù)會(huì)直接轉(zhuǎn)發(fā)給服務(wù)端,服務(wù)端發(fā)送的數(shù)據(jù)會(huì)直接轉(zhuǎn)發(fā)給設(shè)備。用戶(hù)可以通過(guò)DTU設(shè)備,將設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)端,服務(wù)端再轉(zhuǎn)發(fā)給設(shè)備,這樣就實(shí)現(xiàn)了設(shè)備與服務(wù)端的通訊。
(2)WebSocket:創(chuàng)建一個(gè)websocket客戶(hù)端。

5、登錄類(lèi)型:
(1)單點(diǎn)登錄:該自定義注冊(cè)包只允許一個(gè)設(shè)備登錄,當(dāng)多個(gè)設(shè)備使用同一個(gè)注冊(cè)包登錄時(shí),會(huì)將已登錄設(shè)備踢下去。通常設(shè)備與服務(wù)端建立的TCP協(xié)議都使用單點(diǎn)登錄。
(2)多點(diǎn)登錄,該自定義注冊(cè)包只允許多個(gè)設(shè)備同時(shí)登錄,通常websocket協(xié)議都是多點(diǎn)登錄。

6、數(shù)據(jù)字段:
(1)此字段為配置redis字段,設(shè)備返回的數(shù)據(jù)會(huì)存入到這個(gè)redis字段里,支持string類(lèi)型和list類(lèi)型,如果是list類(lèi)型,那么設(shè)備返回的數(shù)據(jù)會(huì)存入到list的頭部,如果是string類(lèi)型,那么設(shè)備返回的數(shù)據(jù)會(huì)覆蓋之前的數(shù)據(jù)。如果想設(shè)置list類(lèi)型,那么請(qǐng)?jiān)谧侄吻懊婕由希簂ist,如:list:valList。如果不設(shè)置,默認(rèn)為string類(lèi)型,如:val,即表示字段為val的string類(lèi)型數(shù)據(jù)。
(2)ASCII:設(shè)備返回的數(shù)據(jù)以ASCII格式存入redis,HEX:以16進(jìn)制格式存入redis
(3)請(qǐng)注意:即使不設(shè)置redis字段,這里的數(shù)據(jù)類(lèi)型也要設(shè)置,系統(tǒng)是根據(jù)這個(gè)字段進(jìn)行數(shù)據(jù)轉(zhuǎn)化,如一般的設(shè)備都是HEX,系統(tǒng)默認(rèn)

7、數(shù)據(jù)轉(zhuǎn)發(fā):
(1)此字段為配置轉(zhuǎn)發(fā)設(shè)備的注冊(cè)包,多個(gè)注冊(cè)包用英文逗號(hào)分隔。

上圖含義:路燈M9NRilOsYETL2接收到的數(shù)據(jù)會(huì)同步轉(zhuǎn)發(fā)到vW5FqKGW6G28,B2PeiPfwejdu兩個(gè)設(shè)備里。
(2)轉(zhuǎn)發(fā)的數(shù)據(jù)會(huì)進(jìn)行簡(jiǎn)單的打包,以json字符串進(jìn)行轉(zhuǎn)發(fā)。格式為:

{"k":"M9NRilOsYETL2","v":"values","t":"xxxx-xx-xx xx:xx:xx"} 

解釋?zhuān)簁:數(shù)據(jù)來(lái)源的注冊(cè)包,v:轉(zhuǎn)發(fā)的數(shù)據(jù),t:轉(zhuǎn)發(fā)時(shí)間.

8、Http-Client:
(1)此字段為配置數(shù)據(jù)轉(zhuǎn)發(fā)的url,多個(gè)url用英文逗號(hào)分隔。

上圖含義:自來(lái)水供水tK8i2JvLJGrf3接收到的數(shù)據(jù)會(huì)同步轉(zhuǎn)發(fā)到http://xxx.com,http://yyy.com 這兩個(gè)域名,
(2)轉(zhuǎn)發(fā)會(huì)以post請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),有以下參數(shù):vtype:數(shù)據(jù)類(lèi)型:0表示ASCII,1表示HEX16進(jìn)制,msg:轉(zhuǎn)發(fā)的數(shù)據(jù),from:轉(zhuǎn)發(fā)來(lái)源注冊(cè)包

9、數(shù)據(jù)過(guò)濾
(1)如果啟用的話(huà),系統(tǒng)會(huì)對(duì)設(shè)備發(fā)來(lái)的數(shù)據(jù)進(jìn)行簡(jiǎn)單的過(guò)濾,不符合過(guò)濾條件的數(shù)據(jù)會(huì)被丟棄。
(2)字節(jié)長(zhǎng)度:會(huì)根據(jù)數(shù)據(jù)的字節(jié)長(zhǎng)度進(jìn)行過(guò)濾。
(3)前N位字符:會(huì)根據(jù)數(shù)據(jù)的前N位字符進(jìn)行過(guò)濾。
(4)忽略心跳包:會(huì)根據(jù)特定字符串進(jìn)行過(guò)濾。

二、定時(shí)下發(fā)

1、設(shè)備默認(rèn)不啟用定時(shí)下發(fā),如果啟用的話(huà),需要設(shè)備重新連接后生效。
2、系統(tǒng)默認(rèn)支持頻率:1秒1次、1秒2次、30秒1次、1分鐘1次、3秒1次、10秒1次。
3、自定義內(nèi)容:ASCII類(lèi)型,HEX類(lèi)型。物聯(lián)網(wǎng)設(shè)備一般以HEX16進(jìn)制類(lèi)型下發(fā)。
4、支持填寫(xiě)多個(gè)指令,用英文逗號(hào),分隔。若設(shè)置多個(gè)指令,則會(huì)按照設(shè)置的頻率,按照指令從前到后依次發(fā)送。
如上圖所示,代表第一個(gè)30秒的時(shí)候,發(fā)送010300010001D5CA,第二個(gè)30秒發(fā)送010300040001C5CB,第三個(gè)30秒發(fā)送010300010001D5CA,依次類(lèi)推。這樣設(shè)計(jì)的目的是有些設(shè)備會(huì)限制請(qǐng)求幀的頻率,頻率太高或一次性發(fā)多條,設(shè)備就不會(huì)回復(fù)。

三、被動(dòng)回復(fù)

1、系統(tǒng)支持設(shè)置兩套命令回復(fù)。
2、觸發(fā)指令:設(shè)備回復(fù)的指令如果與觸發(fā)指令匹配即觸發(fā),服務(wù)端會(huì)進(jìn)行回復(fù)。
3、回復(fù)指令:當(dāng)觸發(fā)被動(dòng)回復(fù)后服務(wù)端回復(fù)的指令。
4、ASCII類(lèi)型,HEX類(lèi)型(16進(jìn)制)

四、數(shù)據(jù)流

設(shè)備發(fā)送的數(shù)據(jù)都會(huì)在這個(gè)數(shù)據(jù)流上顯示。系統(tǒng)設(shè)置了一個(gè)超級(jí)權(quán)限注冊(cè)包,即config/plugin/webman/gateway-worker/app.php文件中的super_code字段,所有的iot設(shè)備發(fā)送的數(shù)據(jù),都會(huì)默認(rèn)給這個(gè)超級(jí)權(quán)限轉(zhuǎn)發(fā),即實(shí)現(xiàn)了數(shù)據(jù)流的實(shí)時(shí)數(shù)據(jù)監(jiān)控,super_code也可以通過(guò)數(shù)據(jù)流下發(fā)指令給設(shè)備,即實(shí)現(xiàn)與設(shè)備的實(shí)時(shí)通訊。

五、隊(duì)列下發(fā)指令

1、每一個(gè)設(shè)備在連接服務(wù)端成功之后,都會(huì)默認(rèn)創(chuàng)建一個(gè)定時(shí)器,這個(gè)定時(shí)器是按照1秒1次進(jìn)行下發(fā)指令,該定時(shí)器使用隊(duì)列進(jìn)行依次下發(fā),隊(duì)列為HFiots-注冊(cè)包名-Default-Crontab,如果注冊(cè)包名為xxxx,即:HFiots-xxxx-Default-Crontab。
2、隊(duì)列的數(shù)據(jù)格式為:

$data = json_encode(['vtype' => 1, 'val' => 'xxxxxx'], JSON_UNESCAPED_UNICODE);

vtype:數(shù)據(jù)類(lèi)型 0ASCII,1HEX16進(jìn)制
val:下發(fā)指令
3、使用方法:

Redis::rpush('HFiots-xxxx-Default-Crontab', $data);

4、服務(wù)端會(huì)按照下面代碼的順序1秒鐘給設(shè)備下發(fā)一次指令

Redis::lindex('HFiots-xxxx-Default-Crontab', 0)

六、心跳包

1、系統(tǒng)默認(rèn)要求設(shè)備每隔30秒發(fā)送一次心跳包,如果設(shè)備超過(guò)55秒沒(méi)有發(fā)送心跳包,系統(tǒng)會(huì)自動(dòng)斷開(kāi)設(shè)備連接。
2、如果想關(guān)閉心跳包,可以在config/plugin/webman/gateway-worker/process.php文件中的對(duì)應(yīng)協(xié)議的pingNotResponseLimit字段設(shè)置為0,即關(guān)閉心跳包。

七、指令發(fā)送

1、websocket端可以主動(dòng)給其他客戶(hù)端發(fā)送消息,代碼如下:

var obj = {
    to: th.deviceCode, //目標(biāo)客戶(hù)端自定義注冊(cè)包
    type: 1, //0:ASCII,1:HEX
    eol: 0, //0:指令末尾不加換行,1:指令末尾加換行(有些設(shè)備的協(xié)議需要換行來(lái)區(qū)分)
    val: '010600020001e9ca' //指令內(nèi)容
};
ws.send(JSON.stringify(obj));

2、php端也可以主動(dòng)給其他客戶(hù)端發(fā)送消息,代碼如下:

$my = [
    'from' => 'fromCode', //發(fā)送方的自定義注冊(cè)包
    'to' => 'toCode', //接收方的自定義注冊(cè)包
    'type' => '1', //0:ASCII,1:HEX,2:GB2312
    'eol' => '0', //不加換行
    'val' => $code //發(fā)送的內(nèi)容
];
fwrite($client, json_encode($my, JSON_UNESCAPED_UNICODE) . "\n");

八、視頻教程(陸續(xù)更新)

1、語(yǔ)音播報(bào)設(shè)備:https://www.bilibili.com/video/BV13h411V7FK
2、掃碼槍?zhuān)?a rel="nofollow" target="_blank">https://www.bilibili.com/video/BV1f24y1L7fd/
3、紙幣識(shí)別器:https://www.bilibili.com/video/BV1Vs4y1U7Et/
4、電子秤:https://www.bilibili.com/video/BV1xo4y1H7Ro/

版本歷史記錄
1.0.5
2025-03-16
1、設(shè)備列表頁(yè)的設(shè)備在線(xiàn)狀態(tài)實(shí)時(shí)更新
2、增加踢下線(xiàn)設(shè)備的功能,可以將設(shè)備踢下線(xiàn)。
3、修改定時(shí)下發(fā)設(shè)置的時(shí)候,會(huì)自動(dòng)將設(shè)備踢下線(xiàn)以使設(shè)置生效。注意客戶(hù)端要有重連機(jī)制
1.0.4
2023-12-28
調(diào)整下表結(jié)構(gòu),去掉rkey字段.
1.0.3
2023-12-27
版本號(hào)不正確
1.0.2
2023-12-26
install中去掉依賴(lài)驗(yàn)證.
評(píng)分及評(píng)論
5 滿(mǎn)分5分
cccccc1980 2025-04-20
插件版本什么時(shí)候能支持mqtt協(xié)議?
??