XBee ZigBee 基本編
センサネットワークを構築しよう
〜XBeeの設定方法〜

by ボクにもわかる地上デジタル

XBeeメインメニューへ戻る
地デジトップへ戻る

このページについて

 このページではXBee ZigBee を使ってセンサネットワークを構築する手順を説明します。さっそく、ネットワーク構築に着手してみましょう。

ハードウェアの製作

 ここではZigBeeセンサーネットワークを構成するためのハードウェア製作について説明します。下図はPCと親機XBee、子機XBeeの接続をイメージした図です。PCに接続された親機が子機のLEDの点灯を制御したり、子機のスイッチやセンサの入力をPCへ入力したりすることが出来るようになります。

製作するハードウェアの概要
製作するハードウェアの概要

 親機には前述の「基本編-ワイヤレス通信を始めよう」のようにUSBエクスプローラを使用してPCに接続します。
 子機については実験の内容に合わせて必要な回路を製作します。とはいっても通常のブレッドボードやユニバーサル基板の穴ピッチは2.54mmなのに対してXBeeは2.0mmピッチなので、直接の実装が出来ません。そこで、下図のようなXBee用ピッチ変換基板が必要になります。

スイッチサイエンス XBeeピッチ変換基板とソケットのセット
スイッチサイエンス XBeeピッチ変換基板とソケットのセット(¥411

XBeeピッチ変換基板の比較表
スイッチサイエンス XBeeピッチ変換基板とソケットのセット

 以下に代表的な子機XBeeセンサーの回路図の一例を示します。AD1〜AD3にセンサーもしくはスイッチを接続します。アナログ入力の場合は0〜1.2Vの電圧を入力します。デジタル入力の場合は0Vから電源電圧Vccまでの電圧が入力可能です。XBee内部でプルアップすることも可能なのでスイッチの場合はGNDに対して接続します。

「ZB Coordinator API」対応LEDとスイッチのXBee子機の回路図
LEDとスイッチのXBee子機の回路図(画像クリックで拡大)

「ZB Coordinator API」対応センサーの回路図

XBeeセンサーの回路図(画像クリックで拡大)
※注意:純正のXBee Smart Plugとの互換性はありません。
読み取り用のサンプルコードはsample6を参照ください。

 もしくは純正の市販品を購入することで製作の手間を省くことも出来ます。

Digi純正 XBee Sensor /L/T Digi純正 XBee Sensor /L/T Digi純正 XBee Smart Plug+
Digi純正 (1)XBee Sensor /L/T (2)XBee Wall Router ZB (3)XBee Smart Plug
※注意:Smart Plugは国内の電気安全の法規制である
電気用品安全法(PSE)に適合していないので
同法第27条により販売が禁止されています。
また、事故や火災の発生の恐れがあります。

XBeeモジュールの設定

注意:XBeeモジュールを買った状態の場合や、すでに「Coordinator AT」に設定されている場合など、多くの場合に以下の手順で「Coordinator API」に設定変更する必要があります。

 XBeeモジュールでネットワークを構築するには、少なくとも2台のXBeeモジュールが必要で、ネットワーク内には1台の「Coordinator API(親機)」が必要です。購入した時点では「Router」と呼ばれる「子機」に設定されているので、1台を「親機」に設定しなければなりません。
 XBeeモジュールを設定するために、DigiのホームページからX-CTUというソフトウェアをダウンロードします。下記のリンクで「Diagnostice, Utilities and MIBs」の項目をクリックすると「XCTU xxxx installer」が現れますので、そちらからダウンロードしてインストールします。
 Next Generation XCTUとLegacy XCTUがありますが、ここでは「Legacy XCTU(XCTU ver. 5.2.8.6)」を用いて説明します。

XCTU:http://www.digi.com/support/productdetail?pid=3352(新しいタブで開きます)

 X-CTUを起動し、「PC-Settings」タブ内でXBeeモジュールを接続したCOMポートを選択します。なお、「XBee-Fly USB」はファームウェアのアップデートには使用できないので、その他の接続手段を使用します。

X-CTU画面1 COMポート選択

 次に「Modem Configuration」のタブで「Read」をクリックしてXBeeモジュールの設定値を表示します。

X-CTU画面1 COMポート選択

 上図のファームウェアの種類「Function Set」をプルダウンして「ZIGBEE COORDINATOR API」を選択します。ここでは語尾に「API」のついたCoordinatorを選択してください。

X-CTU画面1 COMポート選択

 最後に「Write」で書き込みます。「子機」に戻したい場合は「ZIGBEE ROUTER AT」を選択して書き込みます。

 ファームウェアの種類に「AT」のつくものと「API」のつくものがあります。「AT」のつくものを使用するとX-CTUの「Terminal」からATコマンドを入力することが出来ますが、親機としては機能が不十分です。したがって、親機には「API」を使用します。
 「API」の欠点はATコマンドのように簡単には扱えない点ですが、当サイトで配布している「オリジナル XBee 管理用ライブラリ ZB Coordinator API」を使用することで親機から子機を簡単に制御するプログラムを作成できます。


親機 XBee ZigBee 管理用ライブラリ ZB Coordinator APIソフトウェア

 当サイトで配布している「XBee 管理用ライブラリ ZB Coordinator APIソフトウェア」を使用することで、「API」モードのXBeeを簡単に取り扱うことが可能になります。本ライブラリは2009年11月から開発をはじめ、2010年8月にH8 Tinyマイコン用としてリリースしました。その後、より高機能なPCやライブラリの豊富なArduinoでも動作するように開発しており、現在はH8/PC/Arduinoの3つのプラットフォームで使っていただくことが可能です。ここでは動作確認を行うのに手ごろなPCで動作させる手順を説明します。

 まずは開発環境であるCygwinをインストールします。下記から「setup.exe」をダウンロードしてとインストールします。「setup.exe」には開発環境本体ソフトウェアは含まれておりません。起動後にインストールする内容などの選択してダウンロードする必要があります。なお、詳細なインストール方法は「cygwin_install.pdf」に記載しています。

Cygwin:http://cygwin.com/install.html(新しいタブで開きます)

 「setup.exe」を起動後、下表の手順に従ってインストールします。ダウンロード元として「.jp」で終わる国内サイトを選びます。インストール内容の選択では、必ず「Devel」内の「gcc」と「make」を選択してインストールしてください。これらが含まれていないと、コンパイルが出来ません。

Cygwin インストール手順
手順 画面表示 内容 選択
1 Choose Installation Type インストール方法 from Internet
2 Choose Installation Directory インストール先 C:\cygwin
3 Select Local Packege Directory ダウンロード時の保存先 C:\Documents and Settings\xxxxx\デスクトップ
4 Select Connection Type インターネット接続方法 Direct Connection
5 Choose Download Sites ダウンロード元 ftp://xxxxx.ac.jp
6 Select Packages インストールする内容 Devel/gcc-core
Devel/make

 インストール後にCygwinを起動するとMS-DOSコマンドプロンプトに似たようなコンソール画面が表示されます。ここで「pwd」と文字を入力し、その後に「Enter」を入力すると「/home/xxxx」といった具合に現在のディレクトリが表示されます。この場合、Windowsのディレクトリ(フォルダ)は「c:\cygwin\home\xxxx」になります。
 ここに一例として「xbee」というフォルダを作成します。コンソールから「mkdir xbee」と入力すればディレクトリ(フォルダ)が作成でき、「cd xbee」入力でxbeeフォルダへ移動します。

$ boku@pc ~
$ pwd
$ /home/boku

$ boku@pc ~
$ mkdir xbee

$ boku@pc ~
$ cd xbee

$ boku@pc ~/xbee

〜ここで、xbeeフォルダへダウンロードしたファイルをコピーする〜

$ boku@pc ~/xbee
$ ls -F
cqpub/     examples_wifi/  README.txt
examples/    libs/       tools/
examples_h8/  Makefile     xbee_arduino/

$ boku@pc ~/xbee
$ make
gcc -Wall examples/sample01_led.c -o examples/sample01_led
gcc -Wall examples/sample02_sw.c -o examples/sample02_sw
gcc -Wall examples/sample03_add.c -o examples/sample03_add


$ boku@pc ~/xbee
$ examples/sample01_led 3

 次に、当サイトで配布している「XBee 管理用ライブラリ ZB Coordinator APIソフトウェア」をダウンロードして、先ほどのxbeeフォルダへZIPを展開したファイルをコピーます。コンソールでxbeeディレクトリ内で「make」と入力するとコンパイルが実行されます。例えばサンプルソフトは「examples」フォルダにツール類は「tools」フォルダに格納されます。

PC/H8/Arduino用 ZB Coordinator API:https://bokunimo.net/xbee/xbee-download.html

XBee制御サンプルプログラムの実行

 サンプルを実行するには、コンソールのxbeeディレクトリにて「examples/sample01_led 3」のように入力します。

$ examples/sample01_led 3

 最後の数字の3はCOMポート番号をあらわしており、コマンドと数字の間にはスペースが必要です。COMポートは1〜64が設定可能です。親機のXBeeモジュールがCOMポート番号65以上になってしまっている場合やCOMポートの設定方法は、「Windows シリアルへの接続とCOMポート割り当ての変更方法」を参照してください。

XBee制御のためのCOM設定
項目 設定内容
通信ポート番号 COM1〜COM64
ビット/秒(ボーレート) 9600(bps)
データビット 8(bits)
パリティ なし
ストップビット 1(bit)
フロー制御 なし

 サンプルプログラムによってはソースコード内のZigBee IEEEアドレスの書き換えなどが必要です。IEEEアドレスは一つ一つのZigBeeモジュールにつけられた16桁の16進数で、ZigBeeモジュールの背面に2行にわたって表示されています。
 サンプルプログラムには子機のIEEEアドレスを設定するプログラムと、プログラムの中でペアリングを行うものがあります。sample1_led.cは前者なので以下の部分に子機のIEEEアドレスを記述してコンパイルしなおします。このサンプルの説明は次ページ「XBee ZigBeeを使ったプログラムを作ってみよう」を参照してください。

// ↓お手持ちのXBeeモジュールのIEEEアドレスに変更する
byte dev_gpio[] = {0x00,0x13,0xA2,0x00,0x00,0x00,0x00,0x00}; // PIO デバイス

 また、プログラム内でペアリングを実施していないプログラムの場合は、実行前にペアリングを行っておく必要があります。ペアリングは親機と子機の電源を入れて、どちらか片方の参加設定(COMISSION)ボタンを押します。なかなかペアリングできない場合は、親機の電源を入れなおしてみたり、子機の参加設定ボタンを4回続けて押して子機のネットワーク設定を初期化してから再度ペアリングを試みます。


次はサンプルプログラムの説明です


XBeeメインメニューへ戻る

地デジトップへ戻る



[広告欄] クリックするとYahoo!オークションへ移動します。