概要
前回 2 台の XBee に初期設定を行いました
今回は実際に 2 台の XBee 上でデータのやり取りを行ってみました
環境
- XCTU v. 6.3.1
- MacOS X 10.11.4
- XBee USB アダプター(リセットスイッチ付き)
- XBee ZB(S2C) / ワイヤアンテナ型 x 2
- Arduino ワイヤレスプロトシールド
事前準備
前回の記事を参考に XBee の ROOTER と COODINATOR の設定は行っておいてください
また今回は Arduino の XBee シールド (ワイヤレスプロトシールド) を使います
自分が購入した シールド はピンヘッダが 別売り でハンダされていないので、事前に Arduino に乗せるためにピンヘッダのハンダ付けを行ってください
今回の構成
今回やることは以下の通りです
2 台の XBee を無線で通信させます
電源確保は今回 PC を使っています
送信側は Arduino のスケッチを使ってシリアルで送信します
受け取り側は今回特に何もせず受け取った情報を PC 上のシリアルモニタで確認したいと思います
また、どちらでもいいのですが今回は送信側を ROOTER, 受信側を COODINATOR という構成で進めていきます
送信側の Arduino スケッチ
5 秒おきにシリアルにデータを送信するだけの簡単なスケッチです
/* ROOTER側 */
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.write('C');
delay(5000);
}
できたら Arduino IDE を使って UNO に書き込んでください
送信側配線
送信側 の XBee は Arduino 上に配線します
と言ってもシールドを接続してその上に XBee を配置するだけです
- Arduino -> XBee Shield -> XBee
という順番で上に乗せていきましょう
一点注意が必要なのはシールド上のショートピンを RX, TX 側に寄せてください
そうしないとシリアリでうまくデータを送信してくれません
配線できたら USB ケーブルを使って PC と接続して電源の確保を行ってください
受信側配線
受信側は特にやることはありません
XBee USB アダプターに乗せて、USB で電源供給すれば OK です
今回はこちらでデータを受信して PC のシリアルモニタで受信したデータを確認します
動作確認
今回の場合は 2 台の XBee を接続した瞬間に通信が開始されます
通信が成功しているとシールドおよび USB アダプター上の赤色の LED が点滅すると思います
点滅している間、データの送信が行われています
念のため受信側のシリアルモニタでも確認してみましょう
X-CTU を開いてください
X-CTU にシリアルモニタの機能があるのでそれを使ってみます
X-CTU で XBee を認識したら右上にある「コンソール (Switch to Consoles working mode) 」ボタンを押しましょう
そしたら「コネクト (Open) 」ボタンがあるのでクリックします
すると XBee が受信した C という文字列がシリアルモニタ上に 5 秒おきに表示されているのが確認できると思います
最後に
紹介は以上です
あとは受信した側でそのデータを Arduino とかで Serial.read してそれに応じて GPIO を制御する感じだと思います
X-CTU を見ると「I/O Settings」という項目があり D0 や P0 というピンの動作を設定する項目があったので XBee だけでも頑張ればできそうな気がしましたが、Arduino 等のマイコンを使っておくのが無難かと思います
あと通信距離の測定も適当に引き離して行ってみたのですが、20m くらいは余裕で到達できました
調べてみると 40m - 60m くらいまでは室内であればいけるみたいです
この辺は確かに BLE よりも優れている点かもしれないですね
とりあえず動かし方はだいたいわかったので、あとはやっぱり大量に購入してメッシュを組んでみたりピン制御をしてみたいかなと思います
0 件のコメント:
コメントを投稿