XBeeを設定しよう
役割を決める

新しく追加されたXBeeは、初期状態であれば「Function」の項目が「ZigBee Router AT」となっています。XBee同士が相互に通信するためには、ここが「Coordinator」となっているXBeeがネットワーク内に必ず1つだけ必要なので、片方をこの設定に変えてやります。どちらでもいいですが、左カラムにある2つのXBeeのうち1つを選択すると、情報が読み出されて右カラムに表示されます。左カラム上部の「Update」ボタンをクリックしましょう。

「Update firmware」ウインドウが出てくるので、図のように左から「XBP24BZ7」、「ZigBee Coordinator AT」、最後の項目は(Newest)と書いてあるバージョンのものを選択して「Update」をクリックします。書き換え中を示すウインドウがしばらく表示されて、正常に書き換えが終了すれば自動で閉じられます。
ネットワークの設定

次に、先ほど設定した「Coordinator」のXBeeをクリックします。このXBeeの「Function」の値が「ZigBee Coordinator AT」となっていることを確認しておきましょう。右カラムにたくさん項目が出てきますが、ここで以下の3つの操作をおこないます。
- 「Networking」内の「ID PAN ID」の値を「1」に書き換えます
- 「Addressing」内の「DH Destination Address High」の値を「13A200」に書き換えます
- 「Addressing」内の「DL Destination Address Low」の値を、「ZigBee Router AT」となっているXBeeのMACアドレス値の下位32ビット(ここでは「40A7ECE0」)に書き換えます
以上が完了したら、上部にある「Write」と書かれた鉛筆のマークをクリックすると、XBee本体に変更した設定が書き込まれます。

さらに、もうひとつの「ZigBee Router AT」となっているほうのXBeeも同様に設定をおこないます。「Addressing」内の「DL Destination Address Low」の値は、今度は「ZigBee Coordinator AT」のXBeeのMACアドレス値の下位32ビット(ここでは「40ADAF39」)に書き換えておきます。終わったら、鉛筆マークをクリックしてXBee本体に書き込みましょう。
以上で設定は完了です。
通信してみよう

それではこれら2つのXBeeで通信をしてみましょう。XCTUの右上にあるタブのうち、真ん中の「Console」をクリックします。左カラムにあるXBeeのうち、どちらでもいいのでクリックして選択状態にしたあと、右カラム上部の「Detach」をクリックしてコンソール画面を分離させます。そのまま、もう片方のXBeeも選択状態にして「Detach」をクリックし、それぞれのXBeeのコンソールウインドウが並ぶように調節します。

上図のようになったら、それぞれのウインドウにある「Open」ボタンを両方ともクリックします。次に、どちらか好きなほうのウインドウの「Console log」の下に、適当な文字を打ち込んでみましょう。

左側のウインドウに”Hello World!”と打ち込んでみると、右側のウインドウにも同じメッセージが表示されました。これは、左側のXBeeに送信した文字列が、無線で右側のXBeeに転送されているということを意味します。ここで左右交互に文字列を打ち込んでみましょう。

青くなっている文字は送信したデータ、赤くなっている文字は受信したデータを示しています。ご覧のとおり、相互にメッセージを送りあうことができました。これらは1つのパソコン上でおこなっているために実感が湧きにくいですが、実際にXBee同士が無線通信でやりとりした結果が現れています。
もしパソコンを2台お持ちであれば、それぞれにXCTUをインストールし、XBeeを接続して同様に通信してみてください。設定が間違っていなければ、それぞれのパソコン間で文字列の送受信をすることができます。これを活用すれば、P2Pで通信する「特定小電力のポケベル」のようなものを作ることも可能です。
おわりに
今回のXBeeでの無線通信は、送信側XBeeのUARTに流し込んだデータを受信側XBeeでそのまま受け取る「ATモード」というものを利用しました。これを使いこなせるだけでも、例えばArduinoとパソコンをつないで通信していたUSBケーブルが不要になります。
さらに、設定項目や必要な知識が増えますが、「APIモード」を利用すれば数万ノードもの大規模なメッシュネットワークを構築したり、XBeeに直接センサを接続してデータをリモートで取得するといったことが可能になります。
もし興味をもたれましたら、XBeeで無線化されたIoTプロトタイプの製作にもぜひ挑戦してみてくださいね。
