CodeZine(コードジン)

特集ページ一覧

IoTプロトタイプの無線化におすすめ! 無線通信規格ZigBeeに対応した小型モジュール「XBee」を使ってみよう

IoT Starter Studio 第6回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/12/01 14:00

目次

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プロトタイプの製作にもぜひ挑戦してみてくださいね。

購入はこちら



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:IoT Starter Studio

もっと読む

著者プロフィール

  • うこ(dotstudio株式会社)(ウコ)

     ハードウェアの試作からバックエンドシステム設計まで幅広く手がけるエンジニア。ヒトとテクノロジーの融和をモノづくりを通して表現することを目指し日々活動している。dotstudio株式会社で様々なエンジニアリング業務に携わりつつ、駆け出しの研究者としてヒトの知能と身体の関係を明らかにする研究にも取り組...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5