Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
センサネットワークのセンサ端末群を
インターネット上のWikiページで制御するIoTシステムの試作
山之上卓 羅 牧野
福山大学 鹿児島大学
IPSJ IOT36, 3/3, 2017@カルチャーリゾート フェストーネ, 沖縄県宜野湾
1. はじめに
• Wiki
… friendly to People
• Wiki also must be
… friendly to Machines
• Wiki
for People and Machines
• Confirm
1.はじめに
• Wikiをデータベースとして使ったIoT(M2M)システム開発中
– インターネット上のWiki + LANに接続されたBot群
• Bot群
– Wikiに書かれたプログラムやコマンドで制御
• 一度設置したIoT端末(Bot)
– できる限り、再度設置場所に行って、保守・管理・設定変更したくな
い。
1.はじめに
1. はじめに
1. はじめに
• 今回
– Wiki の記述でゲートウェイ(Bot)の先にある無線センサネットワーク
(WSN)の無線センサ端末の設定/設定変更を行う
• Bot :Raspberry Pi +無線センサネットワーク+無線センサ端末
– 無線センサ端末… IEEE802.15.4準拠 TWE-Lite
1. はじめに
2. IoTシステム全体の概要
2. IoTシステム全体の概要
2. IoTシステム全体の概要
3. コマンドで端末の設定変更を
可能とするWSN
3. コマンドで端末の設定変更を
可能とするWSN
• TWE-Lite SDK サンプルの UARTを利用・追加・修正
– サンプル: メッセージを Broadcast
• コマンドをWSN内で broadcast
• 自分宛のコマンドを解釈実行
3. コマンドで端末の設定変更を
可能とするWSN
• get <id> port <analog/digital_input_port>
– <id> = * | a32=<hex> | id=<number> | handle=<str_const>
– 例: get id=1 port DI
– 返答: return a32=<送信端末識別子>, from=<自端末識別子>,
port=<analog/digital_input_port>, v=<value>, event=get
• set <id> sendif <analog/digital_input_port>
interval <time-msec>
– 返答: return a32=<送信端末識別子>, from=<自端末識別子>,
port=<analog/digital_input_port>, v=<value>, event=interval
3. コマンドで端末の設定変更を
可能とするWSN
• set <id> sendif <analog/digital_input_port>
changed <value>
– 返答: return a32=<送信端末識別子>, from=<自端末識別子>,
port=<analog/digital_input_port>, v=<value>, event=changed
– もし, digital_input_port かつ mode=1 (通常モード),
• High<->Low 反転で送信。
– もし, digital_input_port かつ mode=2 (積算モード),
• 定期的に値を見て、Highの回数が <value> を超えたとき、その値を送信。
送信後、積算値をクリア。
3. コマンドで端末の設定変更を
可能とするWSN
– もし, analog_input_port かつ mode=1 (通常モード),
• port の analog値の値が, もとの値とくらべて <value>を超えて変化したとき、
この値を送信。送信後、積算値をクリア。
– もし, analog_input_port かつ mode=2 (積算モード),
• 定期的に portの値を積算し、その値が元の積算値から<value>を超えたと
き、その値を送信。送信後、積算値を元の積算値として保存し、積算値を
クリア。
3. コマンドで端末の設定変更を
可能とするWSN
• set <id> sendif <analog/digital_input_port>
overTheLavel <value>
– 返答: return a32=<送信端末識別子>, from=<自端末識別子>,
port=<analog/digital_input_port>, v=<value>, event=overTheLevel
– もし, digital_input_port かつ mode=1 (通常モード),
• 何もしない。
– もし, digital_input_port かつ mode=2 (積算モード),
• 定期的に値を見て、Highの回数が <value> を超えたとき、その値を送信。
送信後、積算値をクリア。
3. コマンドで端末の設定変更を
可能とするWSN
– もし, analog_input_port かつ mode=1 (通常モード),
• port の analog値の値が, もとの値とくらべて <value>を超えたとき、この値
を送信。送信後、積算値をクリア。
– もし, analog_input_port かつ mode=2 (積算モード),
• 定期的に portの値を積算し、その値が元の積算値を超えたとき、その値を
送信。送信後、積算値を元の積算値として保存し、積算値をクリア。
3. コマンドで端末の設定変更を
可能とするWSN
• set <id> sendif <analog/digital_input_port>
underTheLevel <value>
– 返答: return a32=<送信端末識別子>, from=<自端末識別子>,
port=<analog/digital_input_port>, v=<value>, event=underTheLevel
– もし, digital_input_port の場合、なにもしない。
3. コマンドで端末の設定変更を
可能とするWSN
– もし, analog_input_port かつ mode=1 (通常モード), port の analog
値の値が, <value>を下回ったとき、その値を送信。
– もし, analog_input_port かつ mode=2 (積算モード), なにもしない。
3. コマンドで端末の設定変更を
可能とするWSN
• set <id> sendif <analog/digital_input_port>
setmode <mode>
– mode=1 通常
– mode=2 の時は値を定期的に加算。
3. コマンドで端末の設定変更を
可能とするWSN
• set <id> i2c <address 0x**> <register 0x**>
<data-size> <value 0x**>
• get <id> i2c <address 0x**> <register 0x**>
4. Bot/Gateway の開発
• Hardware…
– MoNoSTICK + Raspberry Pi 3
• Software
4. Bot/Gatewayの開発
Hardware
4. Bot/Gatewayの開発
Software
4. Bot/Gatewayの開発
• Wiki -> Bot/Gateway -> WSN端末
– ex(“pi4j”,”serial send ”<センサ端末が実行するコマンド>”.”)
– Bot/Gateway の pi4j モジュールが
serial send “コマンド” を解釈実行
– serial send “コマンド” を受け取ったら, “コマンド”をWSNに
broadcast
4. Bot/Gatewayの開発
• WSN -> Bot/Gateway
– WSN端末が
return a32=<MoNoStickアドレス>, from <WSNアドレス>,
port=<analog/digital_input_port>, v=<value>,event=<event>
を broadcast.
– <MoNoStickアドレス>のMoNoStickが自分宛の return コマンドを
受信。
– Serial line で Bot/Gateway に受信した return コマンドを引き渡し
4. Bot/Gatewayの開発
• WSN -> Bot/Gateway-> Wiki
– Bot/Gateway は return を
“device=sensorNetwork, Date=<受信時刻>, ”に書き換え。
– device=sensorNetwork, Date=<受信時刻>,
a32=<MoNoStickアドレス>, from <WSNアドレス>,
port=<analog/digital_input_port>, v=<value>,event=<event>
– 上を Wiki に追加。
5. 本IoTシステムの利用方法
• 5.1 Wiki サーバの設置と Wikiソフトウェアの導入
– PukiWiki
• 5.2 Bot/Gateway の設置
• 5.3 無線センサネットワークの構築
• 5.4 センサ端末の設定を行うコマンドとプログラムの書き込み
5. 本IoTシステムの利用方法
5. 本IoTシステムの利用方法
• 5.5 Bot/Gatewayの起動と実行ループの開始
5. 本IoTシステムの利用方法
6. 関連研究
• Galaxy Wiki
– Wiki にプログラム記述可能。Botが実行するわけではない。
• Xively
– API はXively専用
• Twitter API
– 本システムでも利用可
• TinySCADA
– Google App Engine を利用。
7. おわりに
• Wiki+Bot IoT
– Bot -> Bot/Gateway
– Gatewayの先にWSN
• WSN 端末の設定を Wiki で行う。
– Dynamic な設定変更可能
7. おわりに
• 問題点
– WSN通信に信頼性がない … 冗長性を持たせるなどで緩和
– セキュリティ … Bot/Gateway を NAT内で稼働, Wiki のBasic 認証,
その他のセキュリティ強化を検討中
謝辞
• JSPS科研費 JP16K00197, JP15H03055

More Related Content

Iot2017 0304-センサネットワークのセンサ端末群をインターネット上のWikiページで制御する IoTシステムの試作