XBee ZigBee End Device 用 人感センサーの製作方法

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

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


XBee人感センサーの製作例
XBee用 人感センサーの製作例

このページについて

 このページでは乾電池で動作する XBee ZigBee END DEVICE 用 人感センサー(焦電型赤外線センサー)の製作方法と CYCLIC SLEEP with Pin-Wakeを使用した設定に関する情報を掲載しています。
 低消費電力で動作させるためにEND DEVICEとして動作させています。END DEVICEの説明や設定が分かりにくい場合はZIGBEE ROUTERで動作させて確認してみてください。(XBeeを購入した状態ではRouterになっていますので、X-CTUでのファームウェアを書き込まなければ、Routerとして動作します。)

使用する人感センサ

 まずは秋月電子通商で販売されている「焦電型赤外線センサモジュール SE-10」を用いて製作します。このモジュールは5V動作となっていますが、レギュレータをジャンプすることで3.3Vで動かすことが出来ます。また、最小2.6V(実力値)あたりから動作するので乾電池2本の直列3VでXBee ZBモジュールとともに動かすことで省電力化が図れます。
 ただし、本モジュールの消費電流が1.2〜1.6mA程度あるので、使用状況によりますが約2カ月ごとに電池交換が必要です。

人感センサーの例
使用する人感センサーの製作例(焦電型赤外線センサモジュール SE-10)

 価格は850円とやや高価です。例えば、他の候補として「Intelligent LEDライト」であればLEDや照度センサ、電池までついて600円、しかも検出時のホールド機能(感知中に信号レベルを一定に保つ機能)が含まれている点も使いやすいです。


製作方法@レギュレータのジャンプ

 ここではブレッドボードを使用して製作します。実際にセンサーとして長期間使用する場合は、同じ秋月で売られている「片面ガラス・ユニバーサル基板(ブレッドボード配線パターンタイプ)」で製作します。
 ブレッドボードを使用する場合であっても多少のハンダ付けが必要です。一つはXBee ピッチ変換基板の組み立て、もう一つは前述の「レギュレータをジャンプ」の部分です。下図にレギュレータの位置とジャンパーの例を示します。

人感センサーの例
レギュレータの位置(左図)とジャンパー(右図)の例

 この例ではレギュレータICをはずしていますが、外さずにジャンパーを半田付けしても良いです。また、半田付けするときは表面のプラスチック製のフレネルレンズを取り外した状態で行ったほうが良いでしょう。

製作方法Aブレッドボードの製作

 次にブレッドボードへXBeeおよび人感センサー以外の部品を実装します。ここで使用する電子部品は、電解コンデンサ100uF、セラミックコンデンサ0.1uF、抵抗10kΩ及び2.2kΩ、タクトスイッチ、ピンヘッダ3ピン、単3直列2本の電池ボックスと電池、ジャンパーワイヤーです。

人感センサーの製作例
人感センサーのブレッドボード製作例

 そして、XBeeモジュールと、人感センサー(焦電型赤外線センサモジュール SE-10)を実装します。XBeeモジュールはPROではないXBee ZB(XBee Series 2やXBee S2)を用います。また、XBeeモジュールをブレッドボードに実装するにはXBeeピンピッチ変換基板の組み立てが必要です。詳しくは「Switch Science ピッチ変換基板/秋月ピッチ変換基板を製作する」を参照してください。さらにXBeeモジュールのファームウェアの変更と設定が必要です。詳しくは後述します。

人感センサーの製作例
人感センサーのブレッドボード製作例

 この製作例ではXBeeのSLEEP_RQ端子(XBee_pin 9)を利用したZigBee End Deviceによる低消費電力動作に対応しています。ZigBee Routerとして動作しているときは信号が無視されるだけなのでSLEEP_RQ端子へ接続していても接続していなくても問題ありません。
 2.2kΩの抵抗とと0.1uFのコンデンサは検出信号に対する簡易的な遅延回路です。SLEEP_RQ端子(XBee_pin 9)でスリープを解除してから、DIN3(XBee_pin 17)に信号を伝えます。この遅延回路が無くても動作しますが、取りこぼし防止を考慮しました。
 中央のピンヘッダは人感センサモジュールへの接続用です。左から電源、GND、検出信号です。検出信号は普段はHレベルで動きを検出すると動きに合わせてLレベルとHレベルを行き来します。一定期間信号を出力する検出ホールド機能はついていません。
 写真中のプッシュスイッチはコミッション用の参加設定スイッチです。ペアリング時に1回だけ押下します。また4回連続で押下するとネットワーク設定をリセットすることができます。どうしてもペアリングできないときに必要です。

End Deviceの設定方法について

 XBeeを低消費電力で動作させるためには、購入時のZigBee Routerの状態からZigBee End Deviceに変更する必要があります。(Routerのままでも動作はします。)
 End Deviceへの変更するにはX-CTUを使用してファームウェアを書き換えます。X-CTUの「Function Set」のファームウェアの種類の部分で「ZIGBEE END DEVICE AT」を選択します。X-CTUの使い方やファームウェアの変更方法「XBee ZigBee 基本編 ワイヤレス通信を始めよう」を参照してください。
 一度、End Deviceに設定すると、XBeeはCYCLIC SLEEPモードで動作するようになりますので、以降はX-CTUとXBeeとの通信を行う直前にXBeeのリセットを押して、すばやくX-CTUを操作する必要があります。CYCLIC SLEEPモードではXBeeの電源がOFF状態になる期間が発生するためです。また、XBeeをリセットすることで一定の時間だけXBeeを強制的に起動させることが出来ます。

End DeviceのCYCLIC SLEEP with Pin-Wakeについて

 ZigBee End Deviceが低消費電力で動作するための動作モードです。CYCLIC SLEEPはEND DEVICE が定期的に起動して省電力に動作するモードです。SYCLIC SLEEPの詳しい説明は「XBee ZigBee スリープ方法 CYCLIC SLEEP」を参照してください。
 ZigBeeボタンではCYCLIC SLEEPモードに加えてSLEEP_RQ端子から起動する機能を併せ持ったモードであるCYCLIC SLEEP with Pin-Wakeモードを使用します。
 設定にはX-CTUを用います。X-CTU の Sleep Modes (SM)を0x05(Cyclic Sleep Pin-Wake)に設定することで、このモードに設定できます。
 また、ボタン入力のIOポートの設定やIC(I/O Change Detection)も設定しておきます。具体的な基本設定例を下表に示します。

ZigBee End Device ボタン用 X-CTUの基本設定
AT name 初期 説明
SM Sleep Mode 0x04
Cyclic
0x05
Cyclic+Pin
No Sleep(00)/Pin Hibernate(01)/Cyclic Sleep(04)/Cyclic Sleep Pin-Wake(05)の切り換え。Cyclic Sleep wakes on timer expiration.
ST Time before Sleep 0x1388
5000[ms]
0x01F4
500[ms]
シリアルやRFの通信終了後、省電力モードに移行するまでの待ち時間[ms]。
SP Sleep Period 0x0020
32x10[ms]
0x07D0
20秒
ZigBeeデータ通信のための省電力モードの持続時間x10[ms]。RouterとCoordinatorは情報の最大保持期間。設定範囲は0020(320ms)〜0AF0(28sec)。
SN Sleep Number 0x0001
毎回起動
0x0001
毎回起動
外部CPUを起動するまでの起動カウンタ。SP後に通信データが無い場合は省電力モードになり、それがSN回続くと外部On/Sleep pinへON信号(H)を出力する。(SP×SNの間隔で起動)
SO Sleep Options 0x00
オフ
0x00
オフ
0x02 - Wake for ST time on each cyclic wake (after sleeping for SP*SN)
0x04 - Enable extended cyclic sleep (SP毎にポーリングしない)
DH Destination Address High 0x00000000 0x00000000 宛先の上位アドレスを指定する
DL Destination Address Low 0x0000FFFF 0x00000000 宛先の下位アドレスを指定する
D3 AD3/DIO3 Config. 0x00 0x03 DIGITAL INPUT
PR Pull-up Resistor 0x1FFF 0x1FFF プルアップ有効
IC I/O Change Detection 0x0000 0x0008 port 3を検出に設定(port1〜3を検出にする場合は0x000Eを設定)

 なお、END DEVICEをX-CTUで読み込み/書き込みするには、前述のようにCYCLIC SLEEPを一時的に解除するために頻繁にリセットボタンを押す必要があります。このとき、XBeeモジュールがソフトウェア的に壊れることもあります。XBeeモジュールのソフトウェアが壊れてしまった場合は、「Always Update Firmware」をチェックしてFirmwareの書き込みを行うことで初期状態に戻すことが出来ます。Firmwareの書き込みにはFTDI製のUSB変換ICを使用します。また、書き込み後にチェックを外すのを忘れないようにします。

ソフトウェア

 当サイトで公開している「XBee 管理用ライブラリ ZB Coordinator API」を親機側のXBeeに使用することができます。
 動作確認の段階では、PC用のtoolsフォルダ内の「xbee_test」を使用してください。親機となるxbee_testをCygwin上で起動してから、XBee 人感センサ子機の電源を入れ、コミッショニングボタンでネットワークに参加させます。参加後は人感センサが人の動きを検出するたびに親機側に信号が送られ、コンソールに信号の内容が表示されます。


XBeeメインメニューへ戻る

地デジトップへ戻る