Robofun 機器人論壇

標題: XBee無線模組搭配感測器的資料傳輸問題 [打印本頁]

作者: iiaann81    時間: 2016-11-16 21:04
標題: XBee無線模組搭配感測器的資料傳輸問題
各位好

我先來描述一下我要做的實驗

大家都知道XBee無線通訊至少要有兩個模組來連線

一端為協調端(使用者端),以下簡稱A端
一端為路由or終端,以下簡稱B端

我想在B端連結arduino板與感測器(ex溫感)擷取量測data

利用B端的XBee模組以無線傳輸方式傳回A端XBee接收

A端XBee連結另一arduino板以及PC

想請問

1.不知道以上這樣可不可行?我應該是在B端arduino板上撰寫感測器指令,那那些data怎麼命令以XBee傳輸?

2.若可行,B端多接一些別的感測器,在傳輸與接收方面會不會有所衝突?

3.有沒有類似的XBee參考資料或實驗可供參考?

不好意思Arduino剛摸不久,若問題太淺請見諒
作者: ates1687    時間: 2016-11-17 16:18
本帖最後由 ates1687 於 2016-11-17 16:22 編輯

Q1.我應該是在B端arduino板上撰寫感測器指令,那那些data怎麼命令以XBee傳輸?

Ans:命令方式有兩種,一個是B端用XCTU去把AD打開,A端XBee自己會去讀值
另外一個是用XBee TX/RX 接 Arduino TX/RX,

另外在拆兩種↓

AT模式跟API模式(關鍵字:TCP,UDP)

AT:模式語法是Serial.write("想丟出去的字");

API模式:
(上面打MAC)
Serial.write("0x想");
Serial.write("0x丟");
Serial.write("0x出");
Serial.write("0x去");
Serial.write("0x的");
Serial.write("0x字");
(下面打檢查碼)

這邊還要轉換hex轉換,比方說B端如果我要丟1個話,我必須打0x31,A端才會收到1(關鍵字:ASCII字碼表)

Q2.若可行,B端多接一些別的感測器,在傳輸與接收方面會不會有所衝突?

Ans:簡單的P2P點對點傳輸不會有衝突,但是當你要做2個以上,也就是star星狀or叢狀網路時,
問題就一大堆,而且絕對多到你無法想像!!!

Q3.有沒有類似的XBee參考資料或實驗可供參考?

Ans:你只做簡單的A跟B傳輸沒問題,但是當你要做star星狀or叢狀網路就真的需要參考資料
作者: iiaann81    時間: 2016-11-18 21:17
回復 2# ates1687

您好~謝謝您詳細的回覆我的問題
   
我單單只做A與B的傳輸

只是B端的感測器會有複數個

聽您說起來感覺問題應該不太大

只是最後還有個問題

若我在B端使用X.Y.Z三種感測器

三種data都順利傳回A端

但是A端在辨識data的時候

可否分得出來哪些是X的.哪些是Y的.哪些是Z的?

PS.我的A端會利用LabVIEW的Arduino插件去讀取及控制
作者: ates1687    時間: 2016-11-18 22:51
= =我不太確定這樣行不行,是問會寫程式的大概怎麼解

你把讀到的值前面加個英文字母,比方說我讀到的值是100,那我就打X100

在接收端那邊,打

if(Serial.available() >= 4); //接收完4個字
  
if(Serial.read() >= X); // 確認第一個字是否X

    for(int i; i=3; i++){ //是之後,在另外讀取後面3個字
   
    val = Serial.read();
   
    Serial.println(val); //將其顯示
}




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2