lab07- Node-RED 串口通信節(jié)點

一、目錄

1. 實驗?zāi)康?/h3>
  • 掌握 node-red 的串口通信節(jié)點

2.實驗原理

串口控件是一個很有用的控件,可以通過電腦或樹莓派的串口收發(fā)數(shù)據(jù)。由于我們要做一個基于 node?red 的應(yīng)用,并不是做一個只運行與電腦的純軟件,所以必然要與一定的硬件產(chǎn)生關(guān)聯(lián)。物聯(lián)網(wǎng)系統(tǒng)中的大部分硬件支持串口,所以,通過串口控件,可以把 node-red 程序控制的對象從電腦擴(kuò)展到實際的硬件中,極大提升了 node-red 的實用性。
如果有嵌入式的開發(fā)經(jīng)驗,那么對于“上位機(jī)”這個名詞一定不會陌生。把“下位機(jī)”采集到的數(shù)據(jù)通過串口發(fā)送給電腦或樹莓派,然后用 node-red 搭建一個上位機(jī)真的是很簡單的事情。如果沒有聽說過上位機(jī),也沒有關(guān)系。假設(shè)有這么一個設(shè)備,可以定時采集到一些傳感器的數(shù)據(jù),比如室內(nèi)的溫度,這些數(shù)據(jù)總得匯報給另外一個設(shè)備,以便進(jìn)行顯示和分析。負(fù)責(zé)顯示和分析的設(shè)備,就可以是上位機(jī)。

3. 實驗步驟

3.1 step1: 串口控件安裝

默認(rèn)情況下,node-red 并不會帶有串口控件。我們可以進(jìn)行手動安裝。順帶提一下,node-red 共有 1000多種各式各樣的控件,默認(rèn)情況只會安裝最常用的幾十種。所有控件的安裝過程都類似。點擊選項按鈕,找到節(jié)點管理,搜索并安裝紅框中的節(jié)點。



安裝完成后,會在網(wǎng)絡(luò)下,出現(xiàn)新的節(jié)點樣式。


3.2 step2: 安裝串口助手與虛擬串口工具

  • 串口助手軟件串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器可以把串口收到的數(shù)據(jù)顯示出來,也可以通過串口發(fā)送數(shù)據(jù),十分直觀,可以用與顯示串口控件的數(shù)據(jù),和給串口控件發(fā)送數(shù)據(jù)。但是,一般來說,同一個串口只允許一個軟件占用。例如串口控件占用了 COM10(串口 2),那么串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器就不能使用 COM10了。如果 COM10 可以與 COM11 進(jìn)行通信,而串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器使用 COM11,那么串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器就可以與串口控件通信。下載地址:sscom 串口助手下載地址
  • 虛擬串口工具 VSPD 虛擬串口工具可以把 COM10 與 COM11 連接起來,也就是借助虛擬串口工具,可以在不需要任何硬件的情況下,可以用串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器模擬真實的串口


3.3 step3: 虛擬串口工具設(shè)置

打開虛擬串口工具,文件名可能是 Configure Virtual Serial Port Driver,并添加兩個連接的端口,比如 COM10 和 COM11,添加完成后會在左邊顯示已經(jīng)添加上的端口。



完成添加以后左側(cè)的 virtual ports 顯示新添加的串口。注意,兩個串口設(shè)置為連接以后,即便關(guān)閉程序,串口的連接仍然保持,所以建議使用比較大的串口號,其它設(shè)備用不到的。如果需要解除連接,可以點擊刪除端口或是重置端口。

3.4 step4: 串口設(shè)置

  • 將兩個串口的波特率設(shè)置為 9600
  • 設(shè)置 8 個數(shù)據(jù)位、沒有校驗位、1 個停止位(8N1)
  • 設(shè)置“非 HEX 顯示”, “非 HEX 發(fā)送”

3.5 step5: 添加控件

  • 在 Node-red 中添加以下控件


  • 將串口節(jié)點設(shè)置為波特率 9600,8 數(shù)據(jù)位,無校驗位,一個停止位 (8N1)


  • 連接節(jié)點


3.6 step6: 運行調(diào)試

  • 點擊 inject 的輸入按鈕,可以在串口工具看到時間戳消息。
    在串口工具的輸入欄輸入“hello node-red”, 也可以在 node-red 的調(diào)試窗口看到此信息。

4. 實現(xiàn)

1.step1: 串口控件安裝

進(jìn)入安裝界面



找到并搜索 serial

serial

安裝




無法安裝



嘗試另外一種安裝辦法

跳轉(zhuǎn)到安裝界面

復(fù)制安裝命令

npm i node-red-node-serialport

打開cmd



粘貼安裝命令,按下回車即可安裝



完成安裝,重新啟動node-red

即可出現(xiàn)安裝的節(jié)點


2.step2: 安裝串口助手與虛擬串口工具

安裝虛擬串口工具



打開安裝程序



下一步

勾選,下一步



安裝位置,可改 可不改

下一步

往后都是下一步,直到安裝完成

安裝完成,但是都是英文

漢化
打開改文件的所在位置




把這兩個文件復(fù)制到,安裝的目錄下

替換即可

再次打開,漢化成功

3.創(chuàng)建虛擬串口

在我的電腦/此電腦,右鍵,點擊管理



打開虛擬串口工具
創(chuàng)建兩個虛擬串口,COM3,COM4


4. 在 Node-red 中添加以下控件,并連接

5. 設(shè)置串口節(jié)點參數(shù)


將串口節(jié)點設(shè)置為波特率 9600,8 數(shù)據(jù)位,無校驗位,一個停止位 (8N1)



打開串口助手工具,打開串口,并設(shè)置波特率為9600



部署,查看數(shù)據(jù),數(shù)據(jù)已成功發(fā)送到串口助手工具內(nèi)

接下來就是,通過串口助手工具,將數(shù)據(jù)發(fā)送到 串口接收節(jié)點

5. 全部代碼

[
    {
        "id": "0380f5e5c1f1a45c",
        "type": "tab",
        "label": "流程 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "345d5fa11ee064a3",
        "type": "inject",
        "z": "0380f5e5c1f1a45c",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 150,
        "y": 560,
        "wires": [
            [
                "9129ef8e9e87a107"
            ]
        ]
    },
    {
        "id": "ef90db689b7f0347",
        "type": "serial in",
        "z": "0380f5e5c1f1a45c",
        "name": "",
        "serial": "107a1107b0144652",
        "x": 150,
        "y": 660,
        "wires": [
            [
                "ad0236c52ad5e297"
            ]
        ]
    },
    {
        "id": "ad0236c52ad5e297",
        "type": "debug",
        "z": "0380f5e5c1f1a45c",
        "name": "debug 30",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 380,
        "y": 660,
        "wires": []
    },
    {
        "id": "9129ef8e9e87a107",
        "type": "serial out",
        "z": "0380f5e5c1f1a45c",
        "name": "",
        "serial": "9e8050f835428ec9",
        "x": 370,
        "y": 560,
        "wires": []
    },
    {
        "id": "107a1107b0144652",
        "type": "serial-port",
        "serialport": "COM3",
        "serialbaud": "9600",
        "databits": "8",
        "parity": "none",
        "stopbits": "1",
        "waitfor": "",
        "dtr": "none",
        "rts": "none",
        "cts": "none",
        "dsr": "none",
        "newline": "1",
        "bin": "false",
        "out": "interbyte",
        "addchar": "",
        "responsetimeout": "10000"
    },
    {
        "id": "9e8050f835428ec9",
        "type": "serial-port",
        "serialport": "COM3",
        "serialbaud": "9600",
        "databits": "8",
        "parity": "none",
        "stopbits": "1",
        "waitfor": "",
        "dtr": "none",
        "rts": "none",
        "cts": "none",
        "dsr": "none",
        "newline": "1",
        "bin": "false",
        "out": "time",
        "addchar": "",
        "responsetimeout": "10000"
    }
]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容