TinyOS + MICAz を使う MoteView編

センサノードを使った遊び(実験)について忘れないようにメモします.
MoteView編では用語・使い方の説明をします.

MoteView


http://www.xbow.jp/moteview12.html

Crossbowで開発された無線センサーネットワークMICA MOTE用のアプリケーション.
無数にばら撒かれているセンサノードのセンサ基盤で取得されたデータを収集してPostgreSQLに格納してくれます.
センサネットワークのトポロジも勝手に適切に変化してくれます.

MoteView はユーザと構築される無線センサネットワークとの間のインターフェース(クライアント層)となるように設計されています。MoteView にはユーザにとってネットワークの構築と監視を簡略化するためのツールが備わっています。さらに、データベースとの接続、分析、センサ値のグラフ化などの機能もあります。
MoteView ユーザマニュアル

MoteView使って超がんばってるところを→(Wireless Sensing at Camalie Vineyards

環境

  • CygwinとTinyOSとJAVAが既にインストールされて設定も完了している環境(実験室).
  • RS-232Cポートに接続したシリアルケーブル(COM1)にMICAzを接続できるようになっている.つまりmib510などの機器がCOM1に付いている.
  • 3つ以上のセンサノード(MICAz)を用意する.一つはmib510に取り付け,Base(ノード番号0)として利用します.残りの二つにはセンサ基盤を取り付けて,周辺の環境をセンシングしてもらいます.
  • MoteViewがインストールされている環境(上記マニュアルやMoteviewのインストール手順なんかを参考にするとインストールできそうです)
  • 今回使用する機器はmib510,MTS310(センサ基盤),MICAzです.

HP(ハイパワー)モードをインストールする

HPとは省電力をあまり考慮していないものです.しかしSurgeと比べるとトポロジなんかは綺麗に構成してくれるし,マルチホップさせて遊ぶことも簡単です.

  • MoteViewを起動させてください(アイコンをダブルクリック)

  • 図の左上にある雷のようなアイコンをクリック

  • MIB510/MIB520 を使用するときは、Serial Port: COM に正しいポート番号が設定され、ボーレートが 57600 に設定されていることを確認します。(Settingsから行くことができます)

  • Mote がプログラムされているアプリケーションと一致する XMesh アプリケーションを選択します。(今回使用しているセンサ基盤はMTS310なのでXMTS310__・・・XMTS310_2420_hp.exeになります.)Select→XMTS310のフォルダを選択してください.

  • MOTEをmib510に取り付けて,XMTS310_2420_hp.exeを選択して,ノードIDを指定し,”Program”をクリック.これでノードにXMTS310_2420_hp.exeがインストールされます.

  • Base(基地局)となるMOTEをmib510に取り付けて,XMeshBase_2420_hp.exeをインストールします.

  • 図の左上にある青い丸いアイコンをクリックして,以下の図のように設定されてあるかを確認します.


図database

  • ”Done”をクリックしたら,計測が始まります.
Id	Sample #	Time	parent	voltage [V]	temp [C]	light	accel_x [g]	accel_y [g]	mag_x [mgauss]	mag_y [mgauss]	mic
2		2007/8/29 17:45	0	2.6036		25.852		710	0.16		0.86		29.44		29.44		430
1		2007/8/29 17:45	0	2.7892		26.435		789	-0.32		-0.28		27.279		27.279		439
2		2007/8/29 17:45	0	2.5982		25.852		711	0.16		0.86		29.575		29.44		439
1		2007/8/29 17:45	0	2.7892		26.435		790	-0.34		-0.28		27.279		27.279		448
2		2007/8/29 17:45	0	2.5929		25.852		713	0.16		0.86		29.575		29.575		459
1		2007/8/29 17:45	0	2.7892		26.435		789	-0.32		-0.28		27.279		27.279		458
2		2007/8/29 17:45	0	2.5875		25.852		714	0.18		0.84		29.575		29.575		434
1		2007/8/29 17:45	0	2.7954		26.435		790	-0.34		-0.28		27.279		27.279		437
2		2007/8/29 17:45	0	2.5822		25.852		713	0.18		0.86		29.71		29.575		438
1		2007/8/29 17:45	0	2.7892		26.435		789	-0.32		-0.28		27.279		27.279		438

LP(ロウパワー)モード

MoteViewにはLPモードという通信がありますが,これは2日間つけっぱなしで放置しても20分ぐらいしか通信してくれませんでした.(短時間で遊ぶものではない)
しかし省電力性はすごいです.1年間ぐらいは動くんではないでしょうか?もしかしたらもっと動くかも…

PostgreSQL

センサノードから取得したデータはMoteViewによって,PostgreSQLに入力されています.
コマンドプロンプトで,MoteViewのインストールされているフォルダの下にある”psql.exe”にアクセスします.

cd C:\Program Files\Crossbow\MoteView
psql task

でアクセスできます.アクセスできたら,ユーザ名とパスワードを入力します.(ここでの”task”,ユーザ名,パスワードは図databaseにあるDatabase名,ユーザ名,パスワードを入力してください)

User name: tele
Password:
Welcom to psql 8.0.0rc1. the PostgreSQL interactive terminal.

ここでテーブルの一覧を表示させると

とこんな感じになります.今回使用したのはmst310_results,mst310_results_i,mts310_results_lです.

task=# select * from mts310_results;       result_time       | epoch | nodeid | parent | voltage | temp | light | accel_x | accel_y | mag_x | mag_y | mic
-------------------------+-------+--------+--------+---------+------+-------+---------+---------+-------+-------+-----
2007-08-29 17:46:40.796 |       |      1 |      0 |     449 |  527 |   801 | 434 |     436 |   202 |   202 | 438
2007-08-29 17:46:41.328 |       |      2 |      0 |     512 |  521 |   731 | 459 |     492 |   231 |   231 | 432
2007-08-29 17:46:42.593 |       |      1 |      0 |     450 |  527 |   801 | 434 |     436 |   202 |   202 | 441
2007-08-29 17:46:43.14  |       |      2 |      0 |     513 |  521 |   731 | 460 |     492 |   232 |   231 | 433
2007-08-29 17:46:44.39  |       |      1 |      0 |     450 |  527 |   801 | 434 |     436 |   202 |   202 | 438
2007-08-29 17:46:44.937 |       |      2 |      0 |     515 |  521 |   730 | 460 |     492 |   232 |   232 | 433
2007-08-29 17:46:46.203 |       |      1 |      0 |     450 |  527 |   800 | 434 |     436 |   202 |   202 | 440
2007-08-29 17:46:46.781 |       |      2 |      0 |     516 |  521 |   729 | 460 |     492 |   233 |   233 | 446
2007-08-29 17:46:48     |       |      1 |      0 |     450 |  527 |   798 | 433 |     436 |   203 |   202 | 439
・・・・

task=# select * from mts310_results_i;
 nodeid | x_coord | y_coord | z_coord | mote_name | calib | board_id
--------+---------+---------+---------+-----------+-------+----------
(0 rows)

task=# select * from mts310_results_l;
       result_time       | epoch | nodeid | parent | voltage | temp | light | accel_x | accel_y | mag_x | mag_y | mic
-------------------------+-------+--------+--------+---------+------+-------+---------+---------+-------+-------+-----
 2007-08-29 17:58:49.562 |       |      2 |      0 |     580 |    0 |   733 |65533 |       6 |   181 |   181 | 211
 2007-08-29 18:09:53.796 |       |      1 |      0 |     457 |  524 |   645 |  467 |     476 |   205 |   205 | 489
(2 rows)

といったデータが入っています.



ftp://ftp.tik.ee.ethz.ch/pub/students/2006-So/MA-2006-20.pdf (Controlling Wireless Sensor Networks)
MOTE-VIEW 1.2 User’s Manual
MoteView Users Manual
XServe Users Manual
関連記事
TinyOS+MICAzを使う 基本編 - WebLab.ota
TinyOS+MICAzを使う Surge_Reliable編 - WebLab.ota
TinyOS + MICAz を使う MoteView編 - WebLab.ota
TinyOS + MICAz を使う TinyDB編 - WebLab.ota