TinyOS+MICAzを使う Surge_Reliable編
センサノードを使った遊び(実験)について忘れないようにメモします.
Surge_Reliable編では用語・使い方の説明をします.
Surge_Reliableとは
SurgeというTinyOS標準のセンサノード間で通信をするためのメッシュネットワーキングアプリケーションが入っています(マルチホップ通信なんかもしてくれる).
センサノードから,センサノードにつけることのできるセンサ基盤(MTS310)で取得したデータをPCに集めることができます.
これをCrossbowがMICA-Mote用にしたのがSurge_Reliableです.
- MTS310
- MICA 用 センサ付基板(音/光/温度/2 軸加速度/2 軸磁気センサ及びピエゾスピーカー付)
環境
- CygwinとTinyOSとJAVAが既にインストールされて設定も完了している環境(実験室).
- RS-232Cポートに接続したシリアルケーブル(COM1)にMICAzを接続できるようになっている.つまりmib510などの機器がCOM1に付いている.
- 3つ以上のセンサノード(MICAz)を用意する.一つはmib510に取り付け,Base(ノード番号0)として利用します.残りの二つにはセンサ基盤を取り付けて,周辺の環境をセンシングしてもらいます.
- Crossbow(Memsic製品(取扱終了) -- 住精産業 Sumisei Sangyo)の”無線センサネットワーク MOTE”の箱の中に入っているTinyOS サポートツールCDROM.
Surge-Viewをインストール
TinyOS サポートツールCDROMをCDROM ドライブに挿入します。
Surge-View フォルダをC:\Program Fileディレクトリにコピーします。
Surge_Reliableをインストール
cd /opt/tinyos-1.x/contrib/xbow/apps/Surge_Reliable
以下にあるMakefileの中身をMICAz用に編集する.
COMPONENT=Surge SENSORBOARD=micasb #TINYSEC=true # For MICA2 and MICA2DOT # PFLAGS+= -I../../tos/platform/mica2 -I../../tos/CC1000RadioAck -I../../tos/lib/ReliableRoute -I%T/lib/Queue -I%T/lib/Broadcast -I%T/lib/Attributes //コメントアウトする # For MICAZ # PFLAGS+= -I../../beta/tos/lib/CC2420RadioAck -I../../beta/tos/platform/micazack -I../../tos/lib/ReliableRoute -I%T/lib/Queue -I%T/lib/Broadcast -I%T/lib/Attributes //コメントアウトを取り除く include ../MakeXbowlocal include ${TOSROOT}/tools/make/Makerules
指定した箇所を編集して保存します.できましたらコンパイルします.
make micaz
それでは,このアプリケーションをMICAzにインストールします.各MICAzをmib510に取り付けて,以下のコマンドをタイプしてください.
make micaz reinstall,<nodeid> mib510,COM<#>
といった形でインストールします.
ノードID1となるMICAzは
(ノードIDを1に設定したいMICAzを取り付ける) make micaz reinstall,1 mib510,COM1 //ノード1 (同様) make micaz reinstall,2 mib510,COM1 //ノード2
このときnodeidが衝突(重複)しないように気をつけて設定しましょう.(エラーも何も吐いてくれません.「何だか良くわからないけど通信できないぞ?」という状態になります.)
一つだけノードを残して(このノードはBaseにします),Surge_Reliableをノードにインストールします.インストールできたノードはセンサ基盤をつけて電池を入れて,電源をONにします.
Base(基地局)となる(Surge_Reliableの入っているノードからデータを収集する)ノードには
/opt/tinyos-1.x/contrib/xbow/apps/
にある,TOSBaseをインストールします.
cd /opt/tinyos-1.x/contrib/xbow/apps/TOSBase/
に移動して
make micaz
でコンパイルして,mib510にBaseとなるMICAzに
make micaz reinstall,0 mib510,COM1
Xlistenで計測してみる
MDA300 シングルホップデータ収集簡単マニュアル
TinyOSにはXlistenというアプリケーションがあり,これでノードの通信状況を簡易的にみることができます.
“Xlisten”実行準備
Cygwin シェル内で何処からでも実行できるように下記設定を行います。
(1) デスクトップ上の“Cygwin”ショートカットをダブルクリックしCygwin を起動します。
(2)『cd /usr/local/bin』を入力し、”Enter”キーを押します。
(3)『ln -s /opt/tinyos-1.x/contrib./xbow/tools/src/xlisten/xlisten.exe xlisten』を入力し、“Enter”キーを押します。
これでcygwin上でxlistenというコマンドがどこでも使える様になります.
$ xlisten xlisten Ver:$Id: xlisten.c,v 1.17 2004/11/18 04:45:10 mturon Exp $ Using params: /dev/ttyS0 input stream opened 7e42ffff117d5d16030003000100ff000000ffff01000022db005263837c379e [32] mep500 id=03 parent=00 vref=00ff therm=0000 temperature=01ff humidity=ff00 mep500 [sensor data converted to engineering units]: health: node id=3 parent=0 seq=1 battery: =1204 mv thermistor: resistance=0 ohms, tempurature=-273.15 C temperature: =-33.39 degC humidity: =-9597.8%
こんな感じで結果が返ってこれば成功です。これは親(parent)にid=0のノードがあることを示しています。
SerialForwarder GUI の開始
- ウィンドウズのエクスプローラでProgram Files の下のSurge-Viewフォルダを開きます。
- SerialForwarder.exe をダブルクリックします。
- SerialForwarder のウィンドウが開きましたら、“Stop Server”をクリックします。
- “Mote Communication”でCOM ポート番号とシリアルポートのスピードを設定します。(例)serial@COM1:57600
- “Start Server”をクリックします。
Surge GUI の開始
cd ..\..\Program Files\Surge-View
- Surge 125 と入力する。(“125”はデフォルトのグループID です。)
これでSurge-View GUI が起動されます。
結果の表示
- ネットワークトポロジと統計のウィンドウが表示されます。
- 数分でリモートノードが表示されます。
関連記事
TinyOS+MICAzを使う 基本編 - WebLab.ota
TinyOS+MICAzを使う Surge_Reliable編 - WebLab.ota
TinyOS + MICAz を使う MoteView編 - WebLab.ota
TinyOS + MICAz を使う TinyDB編 - WebLab.ota