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.

(以下はMOTE - Wireless Sensor Networks参考)

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はを1に,COM<#>にはmib510が接続されているシリアルポート番号を入力してください.(下記のような形でタイプします)

(ノード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

でインストールする.これが完了した時点でノードはSurgeで通信を確立しはじめます.
[w400]

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