Arduino接口與Node-RED監(jiān)測(cè)網(wǎng)頁(yè)上的溫度和濕度
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Node-RED是一個(gè)非程序員使用物聯(lián)網(wǎng)的可視化工具,它可以用來(lái)更快地構(gòu)建應(yīng)用程序,減少物聯(lián)網(wǎng)產(chǎn)品的“上市”時(shí)間。Node-RED可以以新穎有趣的方式輕松地將硬件設(shè)備、api和其他在線服務(wù)連接在一起。Node-RED是一個(gè)開源物聯(lián)網(wǎng)工具,由IBM新興技術(shù)組織實(shí)施。它是用JavaScript編寫的,在NodeJS平臺(tái)上工作。
Node-RED以基于模塊的方式運(yùn)行,其中預(yù)定義的模塊以圖形方式連接以執(zhí)行Node-RED上的操作序列,或者換句話說(shuō),它直接訪問(wèn)來(lái)自Arduino,樹莓派等微控制器板的數(shù)據(jù),使用預(yù)定義的端口號(hào)。或銷。在本教程中,我們將使用Arduino將DHT11傳感器讀數(shù)發(fā)送到Node-RED儀表板。同樣,我們也將Arduino與ThingSpeak連接起來(lái),設(shè)計(jì)了一個(gè)氣象站。
在本教程中,我們將只關(guān)注Arduino和Node-RED。在本教程中,我們將介紹如何在windows上安裝和設(shè)置Node-RED。然后,我們還將在Node-RED上設(shè)計(jì)一個(gè)儀表板,并使用不同的輸入、輸出和功能節(jié)點(diǎn)來(lái)創(chuàng)建流。
組件的要求
硬件組件
?Arduino Uno
?DHT11傳感器
?跳線
軟件應(yīng)用程序和在線服務(wù)
?Arduino IDE
?node . js
?Node-RED
線路圖
DHT11傳感器與Arduino接口的電路圖如下所示,原理圖是使用Fritzing軟件繪制的。
DHT11是一款流行的3針傳感器,可以測(cè)量溫度和濕度。該傳感器采用單線協(xié)議,易于與Arduino等開發(fā)板一起使用。DHT11的Vcc引腳與Arduino的3.3v引腳連接,GND引腳與Arduino的GND引腳連接。而數(shù)據(jù)引腳與Arduino的2號(hào)引腳連接。連接完成后,我的硬件是這樣的。
正如你所看到的,我已經(jīng)使用了簡(jiǎn)單的雌性到雄性的連接線來(lái)進(jìn)行連接。完整的設(shè)置是由連接到我的電腦的USB端口供電。我們之前將DHT11與Arduino連接,構(gòu)建物聯(lián)網(wǎng)氣象站。
代碼的解釋
Arduino Node-RED的完整程序可以在本教程的末尾找到。為這個(gè)項(xiàng)目編程Arduino UNO不需要太多的努力,因?yàn)樗皇褂靡粋€(gè)DHT傳感器庫(kù)。Arduino板必須測(cè)量來(lái)自DHT11傳感器的溫度和濕度值,并使用COM端口串行發(fā)送。該串行信息隨后將由Node-RED進(jìn)行處理。
因此,通過(guò)初始化所需的庫(kù)、Arduino引腳和變量來(lái)開始編程。
string函數(shù)用于將float變量轉(zhuǎn)換為字符串。這里可變的溫度和濕度被轉(zhuǎn)換成字符串。
在void loop()中,dht11傳感器計(jì)算溫度和濕度值并分別存儲(chǔ)為temp和hum變量。串行打印用于在串行監(jiān)視器上打印溫度和濕度值。
將Arduino與筆記本電腦連接,正確選擇主板和端口,然后點(diǎn)擊Upload按鈕。上傳代碼后,打開串口監(jiān)視器。設(shè)置串口顯示器的波特率為9600。
設(shè)置Node-RED
1. 安裝node . js
從Node.js官方主頁(yè)下載最新版本的Node.js。在撰寫本教程時(shí),可用的版本是10.16.0。下載完成后,運(yùn)行下載的MSI文件,在默認(rèn)路徑下安裝Node.js。
安裝完成后,打開命令提示符并運(yùn)行以下命令,以確保Node.js和npm已正確安裝。
您應(yīng)該會(huì)收到包含我們的包的版本號(hào)的返回輸出。我的是這樣的。
2. 安裝Node-RED
要在系統(tǒng)上安裝Node-RED,請(qǐng)?jiān)诿钐崾痉逻\(yùn)行以下命令:
Node-RED沒(méi)有預(yù)先安裝Arduino、Serial Port和Dashboard的節(jié)點(diǎn)。因此,使用以下命令安裝這些節(jié)點(diǎn):
?安裝Arduino節(jié)點(diǎn)
?安裝串口節(jié)點(diǎn)
?安裝Dashboard節(jié)點(diǎn)
3. 運(yùn)行Node-RED
安裝完成后,在命令提示符中使用以下命令運(yùn)行node-red:
將本地服務(wù)器鏈接復(fù)制到您的瀏覽器以訪問(wèn)Node-RED。您應(yīng)該看到如下所示的窗口,在桌面上顯示節(jié)點(diǎn)紅色啟動(dòng)。
?節(jié)點(diǎn)庫(kù)是節(jié)點(diǎn)的列表,這些節(jié)點(diǎn)代表與設(shè)備相關(guān)的硬件、協(xié)議和軟件特性
?電流流或流是節(jié)點(diǎn)連接在一起以創(chuàng)建程序的地方
?調(diào)試控制臺(tái)就像Arduino串行監(jiān)視器一樣,可以提供值
?部署按鈕用于將流上傳到目標(biāo)硬件
?信息控制臺(tái)提供關(guān)于突出顯示/選定對(duì)象的信息
在Node-RED中創(chuàng)建流
要開始,請(qǐng)將輸入Serial節(jié)點(diǎn)拖到流部分中
現(xiàn)在編輯,雙擊節(jié)點(diǎn),彈出窗口將打開。在該窗口中,輸入連接Arduino的串口,在波特率部分選擇9600。
在此之后,向下滾動(dòng)節(jié)點(diǎn)調(diào)色板并將兩個(gè)Function節(jié)點(diǎn)拖到流部分,一個(gè)用于溫度,另一個(gè)用于濕度。
雙擊第一個(gè)函數(shù),輸入它的名稱和程序。
這個(gè)函數(shù)的Java代碼如下:
Node-RED從串行監(jiān)視器接收ASCII碼格式的濕度和溫度值。要在Node-RED Dashboard上顯示這些值,我們需要將ASCII代碼轉(zhuǎn)換為實(shí)際值。因此,要做到這一點(diǎn),上面使用java程序。在這個(gè)程序中,除小數(shù)點(diǎn)和逗號(hào)外,每個(gè)ASCII碼都減去48。
在Temp函數(shù)之后,現(xiàn)在雙擊第二個(gè)函數(shù):
該函數(shù)的Java代碼如下:
如上所述,該程序用于將濕度值從ASCII碼格式更改為實(shí)際值。完成溫度和濕度功能后,向下滾動(dòng)并將兩個(gè)Debug節(jié)點(diǎn)拖到流程部分。
要設(shè)計(jì)Dashboard,請(qǐng)向下滾動(dòng)節(jié)點(diǎn)調(diào)色板到Dashboard,并將兩個(gè)Gauge拖到Temperature和humidity的flow部分。
最后的流程是這樣的
通過(guò)將以下代碼導(dǎo)入到Node-RED服務(wù)器,您可以直接在Node-RED服務(wù)器上創(chuàng)建此流。
為此,單擊菜單按鈕,然后單擊Import ->剪貼板。在剪貼板窗口中,粘貼下面給出的代碼。
Node-RED代碼
現(xiàn)在可以部署流了。我們可以使用deploy按鈕在Node-RED上部署流。
要訪問(wèn)Node-RED儀表板,請(qǐng)?jiān)跒g覽器中復(fù)制鏈接。Node-RED儀表盤看起來(lái)像這樣:
通過(guò)在你的路由器轉(zhuǎn)發(fā)端口,這個(gè)網(wǎng)頁(yè)可以從互聯(lián)網(wǎng)上的任何地方訪問(wèn)。這就是Node-RED如何用于圖形化編程和構(gòu)建基于物聯(lián)網(wǎng)的應(yīng)用程序。
本文編譯自iotdesignpro