最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用?Node-RED對(duì)?MQTT?數(shù)據(jù)流處理

 更新時(shí)間:2022年05月24日 16:28:23   作者:EMQX  
本文將介紹使用 Node-RED 連接到 MQTT 服務(wù)器,并對(duì) MQTT 數(shù)據(jù)進(jìn)行過(guò)濾和處理后再將其發(fā)送至 MQTT 服務(wù)器的完整操作流程。讀者可以快速了解如何使用 Node-RED 對(duì) MQTT 數(shù)據(jù)進(jìn)行簡(jiǎn)單的流處理

Node-RED 是一個(gè)可視化的編程工具,可以創(chuàng)新和有趣的方式將硬件設(shè)備、API 和在線服務(wù)等連接起來(lái)。它提供了一個(gè)基于瀏覽器的編輯器,通過(guò)調(diào)色板中廣泛的節(jié)點(diǎn)將流程輕松連接起來(lái),而這些節(jié)點(diǎn)只需通過(guò)一次點(diǎn)擊即可部署到其運(yùn)行時(shí)。

除 HTTP、WebScoket 等一些基礎(chǔ)的網(wǎng)絡(luò)服務(wù)應(yīng)用節(jié)點(diǎn)外,Node-RED 還提供對(duì)于 MQTT 協(xié)議的連接支持。目前同時(shí)提供了一個(gè) MQTT 的訂閱節(jié)點(diǎn)和 MQTT 的發(fā)布節(jié)點(diǎn),訂閱節(jié)點(diǎn)用于數(shù)據(jù)的輸入,而發(fā)布節(jié)點(diǎn)可以用于數(shù)據(jù)的輸出。

本文將介紹使用 Node-RED 連接到 MQTT 服務(wù)器,并對(duì) MQTT 數(shù)據(jù)進(jìn)行過(guò)濾和處理后再將其發(fā)送至 MQTT 服務(wù)器的完整操作流程。讀者可以快速了解如何使用 Node-RED 對(duì) MQTT 數(shù)據(jù)進(jìn)行簡(jiǎn)單的流處理。

Node-RED 安裝

Node-RED 無(wú)論是在你本地的電腦上,還是樹(shù)莓派等設(shè)備,亦或是云端服務(wù)器,都可以快速安裝和使用,下面將使用兩種比較常見(jiàn)的安裝方式:

使用 npm 進(jìn)行全局安裝:

1npm install -g --unsafe-perm node-red

使用 Docker 進(jìn)行安裝:

1docker run -it -p 1880:1880 --name mynodered nodered/node-red

運(yùn)行

如果使用的是 npm 進(jìn)行的全局安裝,那么在提示安裝成功后,只需要在全局運(yùn)行 node-red 命令就可以立即啟動(dòng) Node-RED。

無(wú)論是使用 Docker 還是 npm 在啟動(dòng)成功后,我們只需要打開(kāi)瀏覽器,輸入當(dāng)前地址加 1880 端口號(hào),即可打開(kāi) Node-RED 的瀏覽器編輯器頁(yè)面,例如在本地運(yùn)行的話,打開(kāi)瀏覽器,輸入 http://127.0.0.1:1880,當(dāng)看到如下圖所示頁(yè)面后,說(shuō)明 Node-RED 已經(jīng)成功啟動(dòng):

在 Node-RED 中使用 MQTT

本文將使用 EMQ 提供的 免費(fèi)公共 MQTT 服務(wù)器,該服務(wù)基于 MQTT 物聯(lián)網(wǎng)云平臺(tái) - EMQX Cloud 創(chuàng)建,服務(wù)器接入信息如下:

  • Broker: broker-cn.emqx.io
  • TCP Port: 1883
  • WebSocket Port: 8083

在下面的功能演示中,我們將提供一個(gè)使用 Node-RED 來(lái)處理接收到的包含溫濕度信息的 JSON 數(shù)據(jù),然后對(duì)溫度值進(jìn)行規(guī)則判斷,當(dāng)溫度發(fā)生改變的時(shí)候,就將當(dāng)前發(fā)生改變的溫度值通過(guò) MQTT 再次發(fā)送出去的簡(jiǎn)單使用案例。

連接 MQTT 服務(wù)器

我們首先在左側(cè)菜單欄中,拖拽一個(gè) MQTT in 的節(jié)點(diǎn)到頁(yè)面中,雙擊節(jié)點(diǎn)后,右側(cè)出現(xiàn)一個(gè)編輯 MQTT 節(jié)點(diǎn)的配置頁(yè)面,我們根據(jù)內(nèi)容提示,新建一個(gè)連接信息后,再填入 MQTT 的其它連接信息后,點(diǎn)擊 Done 按鈕后,即可保存該節(jié)點(diǎn)信息。

對(duì) MQTT 數(shù)據(jù)進(jìn)行處理

接入數(shù)據(jù):我們拖拽一個(gè) JSON 節(jié)點(diǎn)到頁(yè)面中,可以在 JSON 節(jié)點(diǎn)的配置頁(yè)面中,配置一個(gè) Action,我們?cè)O(shè)置為 Always convert to JavasScript Object,因?yàn)槲覀儫o(wú)法確定發(fā)送過(guò)來(lái)的數(shù)據(jù)是一個(gè) JSON 格式的數(shù)據(jù)還是一個(gè) JSON 字符串,因此第一步都將接收到的消息進(jìn)行一個(gè) JSON 轉(zhuǎn)換。配置完成后,我們將該節(jié)點(diǎn)與 MQTT in 節(jié)點(diǎn)進(jìn)行連接。

過(guò)濾數(shù)據(jù)

我們配置完成格式化發(fā)送過(guò)來(lái)的消息數(shù)據(jù)后,我們就可以拖拽一個(gè) filter 節(jié)點(diǎn)到頁(yè)面中,同樣雙擊節(jié)點(diǎn)后,在配置頁(yè)面中配置規(guī)則,我們先選擇一個(gè) Mode,我們?cè)O(shè)置為 blcok unless value changes,過(guò)濾規(guī)則為需要當(dāng)前接收到數(shù)據(jù)的值發(fā)生改變,因?yàn)槟壳皵?shù)據(jù)為 JSON 格式,我們判斷的是 JSON 數(shù)據(jù)內(nèi)的某一個(gè)值,因此我們需要在 Property 這里設(shè)置值為 msg.payload.temperature 配置完成后我們點(diǎn)擊 Done 按鈕來(lái)保存數(shù)據(jù)過(guò)濾節(jié)點(diǎn)的配置,最后將該節(jié)點(diǎn)連接到上一步配置完成后的 JSON 節(jié)點(diǎn)。

使用模版

當(dāng)過(guò)濾完數(shù)據(jù)后,同樣拖拽一個(gè) template 節(jié)點(diǎn)到頁(yè)面中,雙擊節(jié)點(diǎn)后來(lái)配置模版內(nèi)容,使過(guò)濾完成后的數(shù)據(jù),能通過(guò)模版將數(shù)據(jù)進(jìn)行輸出。當(dāng)然也可以不需要這個(gè)步驟,直接將過(guò)濾后的數(shù)據(jù)進(jìn)行輸出。

發(fā)送經(jīng)過(guò)處理后的 MQTT 數(shù)據(jù)

完成以上對(duì)數(shù)據(jù)的處理和過(guò)濾后,最后我們?cè)賮?lái)將處理完成后的數(shù)據(jù)使用 MQTT 將其發(fā)送出去,拖拽一個(gè) MQTT out 的節(jié)點(diǎn)到頁(yè)面中,填入和 MQTT in 節(jié)點(diǎn)相同的連接信息,配置一個(gè)用戶(hù)接收數(shù)據(jù)的 Topic,最后保存完成后,再將其和 template 節(jié)點(diǎn)進(jìn)行連接,點(diǎn)擊右上角的 Deploy 按鈕,即可對(duì)當(dāng)前規(guī)則應(yīng)用進(jìn)行在線部署。

功能測(cè)試

在完成整個(gè)流數(shù)據(jù)處理的功能編排以后,我們使用 MQTT 5.0 客戶(hù)端工具 - MQTT X 來(lái)測(cè)試和驗(yàn)證該功能的可用性。我們新建一個(gè)連接,連接到剛才在 Node-RED 中配置的 MQTT 云服務(wù)地址,然后輸入 MQTT in 節(jié)點(diǎn)內(nèi)的 Topic 來(lái)發(fā)送一條消息,使 Node-RED 能夠接收到我們發(fā)送的 MQTT 數(shù)據(jù)。

然后我們?cè)僭?MQTT X 中訂閱一個(gè)在 MQTT out 節(jié)點(diǎn)內(nèi)配置的 Topic,用于接收處理過(guò)的消息數(shù)據(jù)。當(dāng)發(fā)送一條包含了溫濕度的消息數(shù)據(jù)后,我們可以接收到一條根據(jù)我們?cè)O(shè)定的消息模版發(fā)送過(guò)來(lái)的消息,再次發(fā)送就無(wú)法接收到。

因?yàn)榇藭r(shí)溫度值沒(méi)有發(fā)生變化,當(dāng)我們?cè)俅涡薷臏囟戎岛?,就?huì)發(fā)現(xiàn)我們又接收到了一條包含提醒溫度值發(fā)生變化的消息。

總結(jié)

至此,我們完成了安裝并使用 Node-RED 連接到 MQTT 云服務(wù),以及對(duì) MQTT 消息數(shù)據(jù)進(jìn)行過(guò)濾和處理,最后再將處理完成后的數(shù)據(jù)消息發(fā)送至 MQTT 服務(wù)器的全部流程。

Node-RED 的交互和使用方式,即用 UI 方式描述通用業(yè)務(wù)邏輯,可以降低非專(zhuān)業(yè)開(kāi)發(fā)人員的上手門(mén)檻,使用一個(gè)可視化工具快速地創(chuàng)建需要的復(fù)雜執(zhí)行任務(wù),可以通過(guò)簡(jiǎn)單 Node 即節(jié)點(diǎn)連接構(gòu)建出復(fù)雜的任務(wù),特別是針對(duì)一些物聯(lián)網(wǎng)的應(yīng)用場(chǎng)景,都很有幫助。

到此這篇關(guān)于使用 Node-RED 處理 MQTT 數(shù)據(jù)進(jìn)行流處理的文章就介紹到這了,更多相關(guān)Node-RED 處理 MQTT 數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • centos 上快速搭建ghost博客方法分享

    centos 上快速搭建ghost博客方法分享

    本文給大家分享的是如何在centos上快速搭建基于Node.js 構(gòu)建的開(kāi)源博客平臺(tái)ghost的方法,非常的實(shí)用,有需要的小伙伴可以參考下
    2018-05-05
  • node實(shí)現(xiàn)分片下載的示例代碼

    node實(shí)現(xiàn)分片下載的示例代碼

    這篇文章主要介紹了node實(shí)現(xiàn)分片下載的示例代碼,使用場(chǎng)景包括基于瀏覽器的流文件片段傳輸、基于客戶(hù)端的分片下載等。感興趣的小伙伴們可以參考一下
    2018-10-10
  • 關(guān)于Node.js中的JXcore打包示例

    關(guān)于Node.js中的JXcore打包示例

    這篇文章主要介紹了關(guān)于Node.js中的JXcore打包示例,JXcore 是一個(gè)支持多線程的 Node.js 發(fā)行版本,基本不需要對(duì)你現(xiàn)有的代碼做任何改動(dòng)就可以直接線程安全地以多線程運(yùn)行,需要的朋友可以參考下
    2023-05-05
  • NodeJS實(shí)現(xiàn)不可逆加密與密碼密文保存的方法

    NodeJS實(shí)現(xiàn)不可逆加密與密碼密文保存的方法

    這篇文章主要介紹了NodeJS實(shí)現(xiàn)不可逆加密與密碼密文保存的方法,簡(jiǎn)單講述了不可逆加密與密碼密文保存的原理并結(jié)合實(shí)例形式分析了nodejs相關(guān)加密操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-03-03
  • node版本切換與版本升級(jí)降級(jí)教程(win)

    node版本切換與版本升級(jí)降級(jí)教程(win)

    nvm是一個(gè)node的版本管理工具,可以簡(jiǎn)單操作node版本的切換、安裝、查看,下面這篇文章主要給大家介紹了關(guān)于node版本切換與版本升級(jí)降級(jí)教程的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • node.js中path路徑模塊的使用方法實(shí)例分析

    node.js中path路徑模塊的使用方法實(shí)例分析

    這篇文章主要介紹了node.js中path路徑模塊的使用方法,結(jié)合實(shí)例形式分析了node.js path路徑模塊的基本功能、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • node.js中的fs.open方法使用說(shuō)明

    node.js中的fs.open方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.open方法使用說(shuō)明,本文介紹了fs.open方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能

    nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能

    開(kāi)發(fā)個(gè)人網(wǎng)站時(shí),注冊(cè)頁(yè)面可以使用郵箱驗(yàn)證,于是記錄一下如何用nodejs/express服務(wù)器實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼,不僅可以在郵箱注冊(cè)時(shí)使用,還可以拓展用于各種安全驗(yàn)證,本文給大家介紹了使用nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能,需要的朋友可以參考下
    2024-07-07
  • 利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)詳解

    利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)詳解

    最近在學(xué)習(xí)node.js爬蟲(chóng),由于 nodejs 強(qiáng)大的異步特性,讓我們可以輕松以異步高并發(fā)去爬取網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • 在Mac OS下使用Node.js的簡(jiǎn)單教程

    在Mac OS下使用Node.js的簡(jiǎn)單教程

    這篇文章主要介紹了在Mac OS下使用Node.js的簡(jiǎn)單教程,Node.js是讓JavaScript應(yīng)用運(yùn)行于服務(wù)器端的框架,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

泾川县| 牙克石市| 屏东县| 富宁县| 勃利县| 长宁区| 和田市| 射洪县| 石嘴山市| 金溪县| 民县| 沅陵县| 沈丘县| 嘉禾县| 阿瓦提县| 前郭尔| 凤凰县| 临漳县| 勃利县| 揭西县| 清远市| 郯城县| 余干县| 旺苍县| 梨树县| 蚌埠市| 穆棱市| 肥西县| 红桥区| 开平市| 苏尼特右旗| 英吉沙县| 东乡县| 黑水县| 金堂县| 宁国市| 山东| 凤台县| 河北区| 麻江县| 东兰县|