運用Node-RED開發LoRa應用

2020-12-14 OFweek維科網

在之前的課程LoRa G-IoT模塊基礎應用中,我們已經知道如何將從LoRa得到的數值上傳伺服器,本文我們將學習撰寫Node-RED,將數據傳送到自己設計的網頁監測接口。

先來介紹一下啊Node-RED

Node-RED是IBM在2013年末開發的一個開源項目,用於構建物聯網IOT應用程式的一個強大工具。它提供基於網頁的可視化的編程環境,過拖拽已定義node到工作區並用線連接node創建數據流來實現編程

操作步驟

1.申請IBM BlueMix帳號後,進入在左邊的目錄選單選擇樣板,

接著點選「Node-RED Starter」服務,建立服務後點選產生的連結即可進入Node-RED程序頁面。

※如果在樣板那邊沒有〝Node-RED Starter〞,須將左上角有個人照片帳戶資料的下方,選擇「美國南部」,並建立新的空間﹝需命名你的新空間﹞。

2.進入Node-RED首頁後,點選「Node-REDeditor」即可看到默認的溫度感測模板。

3.進入editor頁面後,複製連結內的程序代碼,

點選editor右上角的設定選項,選擇「Import」內的「Clipboard」,將連結內的程序代碼貼進去後,即可看到我們本次課程的實作─「將LoRa的GPS數據傳送到監控端用Google Map定位」。

4.首先,我們點擊兩下紫色的「LoRaNode」,這是一個MQTT的input node,我們將先前取得的MQTT信息依序填上,完成Subscribe的動作,你也可以另外先拉一個MQTT node與payload node對接後按下右上角的deploy,可從窗口右邊的debug欄位確認是否有數據被推播進來,如果沒有就必須回去確認MQTT node是否有哪裡設定錯誤。

設定MQTT的信息

拉一個MQTT Node+Debug node,確認LoRa的資料有確實推播進來

實作用的Node-RED程序代碼,可以看到同時有ASCII跟GPS Hex兩個function node

從連結提供的流程(上圖)可以發現,中間的function node有分為ASCII與GPS Hex兩種decoder,因為LoRa推播的數據格式有這種格式供使用者選擇,因此要將相對應的function連結,如果MQTT設定無誤且debug欄位也一直有資料跑出來,我們可以在網址端輸入:

http://{你IoT服務設定的名稱}.mybluemix.net/loramap

即可看到GPS位置數據被標示在Google Map上,這個實作就算是大功告成啦!

地點被標示在地圖上

第二部分,我們要完成LoRa的監控頁面

1.一開始我們先點選主選單中的「Managepalette」,切換到窗口左邊的install欄位,在搜尋字符串中輸入「dashboard」,在出現的選單中安裝「Node-RED Dashboard」,這樣dashboard node就會出現在左手邊的node欄位了。

2.與第一個實作相同,Import本實作的flow,

※一定要先安裝dashboard node才能import flow,不然會產生錯誤信息,接下來你就可以在debug欄位附近看到dashboard欄位,使用者可以依自己的需求自由更改各種顏色與線條圖,尤其是有個像是車速儀錶板的圖表,需要特別設定它的最大值與最小值,如此一來我們的測試值就會在這兩個值之間顯示。

3.設定好了之後按下deploy就可以用瀏覽器進入「http://{你的應用程式名稱}.mybluemix.net/ui」,應該就能看到設計的圖表,並且會因為你給的數值有變化而跟著一起變化,如果都有的話,代表物聯網的監控接口就完成了,之後如果需要也可以設計符合需求的監測面板。

小結

如果要開發物聯網裝置,Node-RED會是你的好選擇,而MQTT則是和Node-RED溝通最快速的橋梁,本文簡述了如何開發Node-RED的MQTT埠以及Node-RED的監控面板,了解如何使用LoRa、Node-RED、MQTT後,你將可以開發大部分的簡易物聯網裝置。

作者:何信昱

相關焦點

  • 學習筆記:node後臺開發總結
    這是我來到北昌教育學習軟體開發的第五個月,我學的是全棧開發專業,全棧開發要求前端+後端都要掌握,在這個月裡黃賢存老師帶我們深入學習了mysql資料庫的操作以及node,最後我們用所學的知識開發出一個完整的管理後臺,我把本月的知識用簡短的文章進行總結。
  • JavaScript之 Node 中開發web項目的框架 - express
    node.js創建web應用的常用核心API模塊 ,在前幾篇文章已經介紹過fs文件系統 和path路徑操作 ,以及http模塊的核心API模塊 ,通過這些API模塊我們已經了解了運用node原生API如何來創建伺服器但是Node 中開發web項目的框架express提供了更加方便友好的創建web伺服器的方式方法
  • 10 個最適合 Web 和 APP 開發的 NodeJS 框架
    Node.js Express 對於一個已經在使用 node.js 的開發人員來說,Express 或者」node.js express」並不是一個新鮮事。Express 框架提供了對 node.js 原生 API 的比較好的封裝,從而使開發者更加容易地使用node.js。 Express 框架提供了用來開發強壯的 web/移動應用,以及 API 的所有功能。
  • 前端頁面開發之Node JS初學者指南
    【IT168技術】目前,Node.js是在前端頁面開發中十分受歡迎的,它是一套用來編寫高性能網絡伺服器的JavaScript工具包,在本文中,將帶領各位初學者介紹Node JS的基本知識,要求本文的閱讀對象為有一定Javascript和其他開發語言基礎的讀者。
  • Node.js與Ruby on Rails:二者哪個最適合Web開發?
    它類似於node . js的npm。所有Rails應用程式都有一個gem文件,您可以在其中指定gem。然後您可以運行一個bundler命令來安裝所有的程序,類似於npm安裝node . js。關於Ruby on Rails的另一件偉大的事情是它已經存在了一段時間,它有一個非常受人尊敬的智能社區。維護Ruby on Rails的開發人員非常聰明,對框架非常熱情。
  • 3D可視化應用開發 WebGL 方向怎麼實現?
    可視化應用已經實際滲透到各行各業中,包括IT運維、智慧校園、智慧倉儲、智慧城市、智慧電力、消防預案、智能建築等等,作為開發工程師的你是不是覺得很搶手呢,哈哈,有技術的人走到哪裡都是香餑餑,這個一點不假。不過你還需要再歷練,因為thingjs平臺已經實現低門檻快速開發啦!
  • Node.js為何在後端開發中不受重視?
    語言只是一個工具,對高手來講Java、golang、python、Javascript都可以完成複雜的後端開發工作,這些語言最大的區別是生態。Java無疑是所有後端開發語言中的佼佼者,它的生態完善度超乎你的想像,這也是Java在後端開發領域無法撼動的根本。其他幾種語言我覺得沒有根本性的區別,論生態完善度,都是半斤八兩,論高並發,golang當之無愧,論語言友好度,Node.js可以排到首位。
  • 我開始討厭node.js了
    冰山一角直到我接觸到java,我才想明白我為什麼感覺node零散。java的語法和c#的語法簡直一模一樣,但是並不像.net體系那樣過度封裝,寫起來雖然沒有那种放蕩不羈愛自由的感覺,但是整體好像規矩了很多。這領我對node一統天下的想法感覺到一絲遲疑。node好像只是冰山一角,世界這麼大,我想去看看。
  • node.js、MongoDB下一代的LAMP
    node.js、MongoDB下一代的LAMP 我們大部分人在做網站時,都用的是LAMP,殊不知LAMP已成過去式,新一代的小生:nix、node.js、MongoDB誕生了,讓我們走進他們,知道他們的故事!
  • 10+ 最佳的 Node.js 教程結合實例
    (點擊尾部閱讀原文前往)原文:noeticforce.com/best-nodejs-tutorial-with-examples如果你正在找Node.js的學習資料及指南,那麼請繼續(閱讀),我們的教程將會覆蓋即時聊天應用、API服務編寫、投票問卷應用、人物投票APP、社交授權、 Node.js on Raspberry
  • centos7編程實踐:安裝nodejs
    2、node.js的優勢2.1、Nodejs語法完全是js語法,只要你懂js基礎就可以學會Nodejs後端開發Node打破了過去JavaScript只能在瀏覽器中運行的局面。前後端編程環境統一,可以大大降低開發成本。2.2、NodeJs超強的高並發能力NodeJs的首要目標是提供一種簡單的、用於創建高性能伺服器及可在該伺服器中運行的各種應用程式的開發工具。首先讓我們來看一下現在的伺服器端語言中存在著什麼問題。
  • LoRaWAN網絡協議與LoRa私有協議相比有哪些優勢
    物聯網很多應用現在都普遍用了LoRa技術的晶片,然而沒有使用LoRaWan網絡協議。經過調查發現,沒有使用LoRaWAN網絡協議的原因有:應用點數少、規模小,有的是因為LoRaWAN成本高,技術要求高,短時間內無法掌握,所以只能用lora技術。
  • 「Power平臺」Power應用和傳統應用開發方法的區別
    與傳統的app開發相比,Power Apps項目在兩個關鍵領域有所不同: 組織的不同成員如何一起工作來創建解決方案 開發方法 不同的人開發了應用程式 Power Apps是一個同時惠及
  • Deno VS Node:Javascript開發人員更喜歡前者的五大原因
    在了解其優點之後,筆者更清晰地明白了為什麼說Deno正是年後端Javascript開發人員所需要的。相較Node而言,一起看看JavaScript開發人員使用Deno體驗更流暢和更現代的五大原因。1.Modern Javascript —ES 模塊如果你也是個React開發人員,那麼應該已經注意到了,在使用NodeJS時導入包的語法是不同的。這是因為Node是在2009年開發的,從那時起,針對Javascript進行了很多更新和改進。
  • Node.js 學習資料和教程(值得收藏)
    百萬級並發 Node.js也能行高性能Node.js:來自LinkedIn Mobile的10條優化建議Kraken:改變PayPal開發文化的Node.js框架Groupon拋棄Rails,轉向中文入門指引手冊Connect架構初探 for 新手使用 Express + Socket.IO 搭建多人聊天室  國人開源web框架rrestjsHomePage  實時應用
  • 數據結構-PHP 紅黑樹(Red Black Tree)平衡原理
    $stack->isEmpty()) { //出棧 $node = $stack->pop(); if ($node != null) { //若出棧的當前節點不是空 echo $node->e .
  • 使用Chrome DevTools有效調試Node.js
    為什麼console.log不是最好的選擇使用console.log來調試你的代碼通常會讓你陷入停止你的應用程式的無限循環,添加一個console.log,並重新啟動你的應用程式。除了減慢應用程式的開發速度之外,它還會讓你的文字變得骯髒,並且會產生不必要的代碼。
  • nodejs windows環境下搭建
    目前,Node.js是在前端開發中十分受歡迎,它是一套用來編寫高性能網絡伺服器的JavaScript工具包,官網中介紹:Node.js 是一個基於Chrome JavaScript 運行時建立的一個平臺, 用來方便地搭建快速的 易於擴展的網絡應用; Node.js 藉助事件驅動, 非阻塞I
  • 《近匠》WRTnode創始人羅未:OpenWrt,下一個時代的Android
    2013年他帶領團隊開發了基於OpenWrt的開源硬體開發平臺WRTnode。剛聊到OpenWrt,羅未的話匣子一下打開了。在接觸OpenWrt多年的羅未眼中,國內與國外的OpenWrt圈子有很大不同。國內外的OpenWrt圈子「從某種意義上來說,OpenWrt可能是下一個時代的Android。
  • 復盤node項目中遇到的13+常見問題和解決方案
    執行npm install發生node-gyp報錯的問題在項目開發過程中有時候拉取新的node項目代碼後執行npm install, 會報如下錯誤: node-gyp就是在node環境中使用的生成不同平臺不同編譯器的項目文件, 如果你遇到了相同的問題, 我們可以採用如下方案: