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