XBee模組通訊實驗(三):點對點連接XBee模組

「點對點(一對一)」是連接兩個XBee模組最簡單的方式。

點對點(一對一)連接兩個XBee模組

在ZigBee協定中,兩個終端不能直接相連,點對點連線的其中一端可以是終端(Endpoint),另一端則須是協調器(Coordinator)路由(Router),但Digi公司的XBee S1模組,允許兩個終端互聯。

協調器與終端點對點通訊通訊

採用一個XBee S1裝置當作協調器;另一個當作終端。先在X-CTU軟體中,替一個XBee S1模組設置底下的參數,讓它變成協調器:

參數 說明
CH (Channel) C 兩端的頻道一致
ID (PAN ID) 3332 兩端的網路ID要一致
DH 0  
DL 12 設定成終端的MY位址。
MY (Source Address) 13 16位元的自訂位址。
CE (Coordinator Enable) 1 啟用協調器
NI (Node Identification) Land of Joy 選擇性的節點名稱

CE(Coordinator Enable,協調器致能)若設置成1,此模組將擔任「協調器」;設置成0,則擔任「終端」。節點名稱(NI)可以留白,XBee的連線是以「位址」來識別彼此,而非節點名稱。

設定完畢後,按下「鉛筆」圖示鈕,將參數寫入S1模組:

將參數寫入XBee S1模組

設置終端模組參數

依照底下的參數設置另一個S1模組,重點在於,這兩個模組的頻道和網路ID要一致,DL參數設置成對方的MY位址。

參數 說明
CH (Channel) C 兩端的頻道一致
ID (PAN ID) 3332 兩端的網路ID要一致
DH 0  
DL 13 連接到協調器的位址
MY (Source Address) 12 16位元的自訂位址。
CE (Coordinator Enable) 0 設置成終端
NI (Node Identification) Zion 選擇性的節點名稱

設定完畢後,按下「鉛筆」圖示鈕寫入參數。

測試連線

S1模組參數設置完成後,它們將在通電時自動建立連線。X-CTU軟體內建終端機軟體,可直接透過序列埠與XBee連線,並且接收和傳遞序列資料。

請分別在兩個模組上,執行下圖的三道步驟,建立終端機連線:

採用X-CTU軟體內建終端機次測試序列連線

連線之後,便能直接在Console log窗格輸入與接收訊息(輸入的字元會立即被傳送出去):

在Console log窗格輸入與接收訊息

連接XBee模組與Arduino控制板

若XBee已經設定好點對點連線,那麼,對Arduino來說,XBee模組就像是一條序列線,接上就能使用。所以和連接藍牙序列模組一樣,Arduino不需要使用特別的程式庫。

假設我們使用SoftwareSerial程式庫,將Arduino控制板的8和9腳設定成序列埠,硬體的接腳如下(收、發模組都一樣)。如果XBee膜組有銜接轉接板,也能透過它的TxD和RxD腳與Arduino相連,接線方式也和下圖相同。

連接XBee模組與Arduino控制板

XBee通訊程式碼也和藍牙模組相同,請直接使用「藍牙模組補充說明(四):無線連結兩個Arduino控制板」底下的LED控制程式碼測試。

未完待續…

7 thoughts on “XBee模組通訊實驗(三):點對點連接XBee模組

  1. 老師您好
    我想請教一些問題
    如果使用的是S2模組要一對一
    fuction set 的部分 發送端是設定Coordinator device AT 接收端是設定 end divice AT 嗎??
    如果是的話 S2 連接的參數設定也是照老師上面所提到的嗎??
    麻煩老師了謝謝

  2. 您好 照您的設定 在測試階段可以連結
    可是移到arduino就不行 ,我可以用同個sketch連接hc-05&hc-06互傳。

    寫入參數完應該就燒好了? 不用再按update firmware鍵吧?

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *