<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Node-RED 是一個視覺化的程式設計工具,可以創新和有趣的方式將硬體裝置、API 和線上服務等連線起來。它提供了一個基於瀏覽器的編輯器,通過調色盤中廣泛的節點將流程輕鬆連線起來,而這些節點只需通過一次點選即可部署到其執行時。
除 HTTP、WebScoket 等一些基礎的網路服務應用節點外,Node-RED 還提供對於 MQTT 協定的連線支援。目前同時提供了一個 MQTT 的訂閱節點和 MQTT 的釋出節點,訂閱節點用於資料的輸入,而釋出節點可以用於資料的輸出。
本文將介紹使用 Node-RED 連線到 MQTT 伺服器,並對 MQTT 資料進行過濾和處理後再將其傳送至 MQTT 伺服器的完整操作流程。讀者可以快速瞭解如何使用 Node-RED 對 MQTT 資料進行簡單的流處理。
Node-RED 無論是在你原生的電腦上,還是樹莓派等裝置,亦或是雲端伺服器,都可以快速安裝和使用,下面將使用兩種比較常見的安裝方式:
使用 npm
進行全域性安裝:
1npm install -g --unsafe-perm node-red
使用 Docker
進行安裝:
1docker run -it -p 1880:1880 --name mynodered nodered/node-red
如果使用的是 npm 進行的全域性安裝,那麼在提示安裝成功後,只需要在全域性執行 node-red
命令就可以立即啟動 Node-RED。
無論是使用 Docker
還是 npm
在啟動成功後,我們只需要開啟瀏覽器,輸入當前地址加 1880 埠號,即可開啟 Node-RED 的瀏覽器編輯器頁面,例如在本地執行的話,開啟瀏覽器,輸入 http://127.0.0.1:1880,當看到如下圖所示頁面後,說明 Node-RED 已經成功啟動:
本文將使用 EMQ 提供的 免費公共 MQTT 伺服器,該服務基於 MQTT 物聯網雲平臺 - EMQX Cloud 建立,伺服器接入資訊如下:
在下面的功能演示中,我們將提供一個使用 Node-RED 來處理接收到的包含溫溼度資訊的 JSON 資料,然後對溫度值進行規則判斷,當溫度發生改變的時候,就將當前發生改變的溫度值通過 MQTT 再次傳送出去的簡單使用案例。
我們首先在左側選單欄中,拖拽一個 MQTT in 的節點到頁面中,雙擊節點後,右側出現一個編輯 MQTT 節點的設定頁面,我們根據內容提示,新建一個連線資訊後,再填入 MQTT 的其它連線資訊後,點選 Done 按鈕後,即可儲存該節點資訊。
接入資料:我們拖拽一個 JSON 節點到頁面中,可以在 JSON 節點的設定頁面中,設定一個 Action,我們設定為 Always convert to JavasScript Object
,因為我們無法確定傳送過來的資料是一個 JSON 格式的資料還是一個 JSON 字串,因此第一步都將接收到的訊息進行一個 JSON 轉換。設定完成後,我們將該節點與 MQTT in 節點進行連線。
過濾資料
我們設定完成格式化傳送過來的訊息資料後,我們就可以拖拽一個 filter 節點到頁面中,同樣雙擊節點後,在設定頁面中設定規則,我們先選擇一個 Mode,我們設定為 blcok unless value changes
,過濾規則為需要當前接收到資料的值發生改變,因為目前資料為 JSON 格式,我們判斷的是 JSON 資料內的某一個值,因此我們需要在 Property 這裡設定值為 msg.payload.temperature
設定完成後我們點選 Done 按鈕來儲存資料過濾節點的設定,最後將該節點連線到上一步設定完成後的 JSON 節點。
使用模版
當過濾完資料後,同樣拖拽一個 template 節點到頁面中,雙擊節點後來設定模版內容,使過濾完成後的資料,能通過模版將資料進行輸出。當然也可以不需要這個步驟,直接將過濾後的資料進行輸出。
完成以上對資料的處理和過濾後,最後我們再來將處理完成後的資料使用 MQTT 將其傳送出去,拖拽一個 MQTT out 的節點到頁面中,填入和 MQTT in 節點相同的連線資訊,設定一個使用者接收資料的 Topic,最後儲存完成後,再將其和 template 節點進行連線,點選右上角的 Deploy 按鈕,即可對當前規則應用進行線上部署。
在完成整個流資料處理的功能編排以後,我們使用 MQTT 5.0 使用者端工具 - MQTT X 來測試和驗證該功能的可用性。我們新建一個連線,連線到剛才在 Node-RED 中設定的 MQTT 雲服務地址,然後輸入 MQTT in 節點內的 Topic 來傳送一條訊息,使 Node-RED 能夠接收到我們傳送的 MQTT 資料。
然後我們再在 MQTT X 中訂閱一個在 MQTT out 節點內設定的 Topic,用於接收處理過的訊息資料。當傳送一條包含了溫溼度的訊息資料後,我們可以接收到一條根據我們設定的訊息模版傳送過來的訊息,再次傳送就無法接收到。
因為此時溫度值沒有發生變化,當我們再次修改溫度值後,就會發現我們又接收到了一條包含提醒溫度值發生變化的訊息。
至此,我們完成了安裝並使用 Node-RED 連線到 MQTT 雲服務,以及對 MQTT 訊息資料進行過濾和處理,最後再將處理完成後的資料訊息傳送至 MQTT 伺服器的全部流程。
Node-RED 的互動和使用方式,即用 UI 方式描述通用業務邏輯,可以降低非專業開發人員的上手門檻,使用一個視覺化工具快速地建立需要的複雜執行任務,可以通過簡單 Node 即節點連線構建出複雜的任務,特別是針對一些物聯網的應用場景,都很有幫助。
到此這篇關於使用 Node-RED 處理 MQTT 資料進行流處理的文章就介紹到這了,更多相關Node-RED 處理 MQTT 資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45