欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

除 HTTP、WebScoket 等一些基礎(chǔ)的網(wǎng)絡(luò)服務(wù)應(yīng)用節(jié)點(diǎn)外,Node-RED 還提供對于 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ù)器,并對 MQTT 數(shù)據(jù)進(jìn)行過濾和處理后再將其發(fā)送至 MQTT 服務(wù)器的完整操作流程。讀者可以快速了解如何使用 Node-RED 對 MQTT 數(shù)據(jù)進(jìn)行簡單的流處理。

Node-RED 安裝

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

使用 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。

無論是使用 Docker 還是 npm 在啟動(dòng)成功后,我們只需要打開瀏覽器,輸入當(dāng)前地址加 1880 端口號(hào),即可打開 Node-RED 的瀏覽器編輯器頁面,例如在本地運(yùn)行的話,打開瀏覽器,輸入 http://127.0.0.1:1880,當(dāng)看到如下圖所示頁面后,說明 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 來處理接收到的包含溫濕度信息的 JSON 數(shù)據(jù),然后對溫度值進(jìn)行規(guī)則判斷,當(dāng)溫度發(fā)生改變的時(shí)候,就將當(dāng)前發(fā)生改變的溫度值通過 MQTT 再次發(fā)送出去的簡單使用案例。

連接 MQTT 服務(wù)器

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

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

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

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

我們配置完成格式化發(fā)送過來的消息數(shù)據(jù)后,我們就可以拖拽一個(gè) filter 節(jié)點(diǎn)到頁面中,同樣雙擊節(jié)點(diǎn)后,在配置頁面中配置規(guī)則,我們先選擇一個(gè) Mode,我們設(shè)置為 blcok unless value changes,過濾規(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 按鈕來保存數(shù)據(jù)過濾節(jié)點(diǎn)的配置,最后將該節(jié)點(diǎn)連接到上一步配置完成后的 JSON 節(jié)點(diǎn)。

使用模版

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

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

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

功能測試

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

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

因?yàn)榇藭r(shí)溫度值沒有發(fā)生變化,當(dāng)我們再次修改溫度值后,就會(huì)發(fā)現(xiàn)我們又接收到了一條包含提醒溫度值發(fā)生變化的消息。

總結(jié)

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

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

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

相關(guān)文章

  • node以及npm版本不對應(yīng)出錯(cuò)的完美解決方法

    node以及npm版本不對應(yīng)出錯(cuò)的完美解決方法

    最近項(xiàng)目用到了node和npm,查看一下當(dāng)前版本,發(fā)現(xiàn)有報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于node以及npm版本不對應(yīng)出錯(cuò)的完美解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Nodejs Express 通過log4js寫日志到Logstash(ELK)

    Nodejs Express 通過log4js寫日志到Logstash(ELK)

    這篇文章主要介紹了Nodejs Express 通過log4js寫日志到Logstash(ELK),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • NodeJs測試框架Mocha的安裝與使用

    NodeJs測試框架Mocha的安裝與使用

    本文全面介紹如何使用Mocha,讓你輕松上手。如果你以前對測試一無所知,本文也可以當(dāng)作JavaScript單元測試入門。
    2017-03-03
  • node.js不得不說的12點(diǎn)內(nèi)容

    node.js不得不說的12點(diǎn)內(nèi)容

    本文主要是分享下,個(gè)人對node.js的一些認(rèn)識(shí)和理解,希望對大家有所幫助
    2014-07-07
  • NodeJs環(huán)境安裝與配置的實(shí)現(xiàn)步驟

    NodeJs環(huán)境安裝與配置的實(shí)現(xiàn)步驟

    本文主要介紹了NodeJs環(huán)境安裝與配置,包括配置環(huán)境和配置國內(nèi)鏡像,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Node.js?與并發(fā)模型的詳細(xì)介紹

    Node.js?與并發(fā)模型的詳細(xì)介紹

    這篇文章主要介紹了Node.js?與并發(fā)模型的詳細(xì)介紹,Node.js?現(xiàn)在已成為構(gòu)建高并發(fā)網(wǎng)絡(luò)應(yīng)用服務(wù)工具箱中的一員,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的朋友可以參考一下
    2022-07-07
  • Node.js引入U(xiǎn)IBootstrap的方法示例

    Node.js引入U(xiǎn)IBootstrap的方法示例

    這篇文章主要介紹了Node.js引入U(xiǎn)IBootstrap的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js實(shí)現(xiàn)注冊郵箱激活功能的方法示例

    Node.js實(shí)現(xiàn)注冊郵箱激活功能的方法示例

    現(xiàn)在很多網(wǎng)站都需要有注冊郵箱激活的功能,本篇文章主要介紹了Node.js實(shí)現(xiàn)注冊郵箱激活功能的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nodejs實(shí)現(xiàn)短信驗(yàn)證碼功能

    Nodejs實(shí)現(xiàn)短信驗(yàn)證碼功能

    使用Nodejs的開發(fā)者愈來越多,基于Nodejs的后臺(tái)開發(fā)也多了起來,像短信驗(yàn)證碼、短信群發(fā)、國際短信這些需求,完全可以采用第三方接口來實(shí)現(xiàn),云片就提供了這樣的接口
    2017-02-02
  • Node.js API詳解之 dgram模塊用法實(shí)例分析

    Node.js API詳解之 dgram模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 dgram模塊用法,結(jié)合實(shí)例形式分析了Node.js API中dgram模塊基本功能、函數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-06-06

最新評論