English

チュートリアル - STEP2: センサ情報収集アプリの実行

目次

1. 概要
2. システム全体構成
3. 作業の流れ
3.1 バックエンド側の作業(その1)
3.2 Android端末側の作業
3.3 観測用PC側の作業
3.4 バックエンド側の作業(その2)
4. 制約事項
5. うまくいかないときは
5.1 Androidアプリケーションの設定内容を初期化したい
5.2 AndroidアプリケーションがBrokerと接続できない
5.3 Androidアプリケーション実行中にエラー発生する
5.4 観測用PCのウェブ画面でセンサー読取値がグラフ表示されない

1. 概要

Android版のSINETStreamライブラリを使うサンプルプログラム第二弾として、 少し複雑な構成を例示します。

一般的なAndroid端末は加速度計や照度計などのセンサーデバイスを実装しており、 ネットワークへの接続手段も備えています。 そこで、Android端末で測定したセンサー読取値を周期的にクラウドに上げて蓄積し、 可視化するようなシステムを構築します。

2. システム全体構成

この例ではReader機能は使いません。

下図左側がWriter機能を示しており、 Android端末で計測したセンサー値を収集してSINETStream経由でBrokerに送信します。 下図右側がBroker機能および背後のバックエンドシステムを示しており、 後者が可視化処理を担当します。

構成

本チュートリアルの見通しを良くするため、以降は

という機能要素ごとに細分化して記述します。 内容に沿って作業を進めてください。

一通り環境構築を済ませ、 Android端末のセンサー情報収集アプリを実際に動かす前に、 対向Brokerとの接続情報を設定する箇所があります。 お手元のネットワーク構成に合わせて調整してください。

3. 作業の流れ

3.1 バックエンド側の作業 (その1)

商用クラウドサービスあるいは手元機材上に仮想マシンを用意し、 その上でサーバプログラム群の導入と設定、操作方法などの手順に関して記述します。

ホスト機材において、まずは動作基盤Docker Engineを導入してください。 次にdocker runコマンドによりSTEP2用のコンテナイメージを導入し、 続けて所用のサーバ群の一括起動を実施してください。

これらの具体的な手順は、別紙 チュートリアル DOCKER-CONTAINER を参照ください。

     % sudo docker run -d --name broker -p 1883:1883 -p 80:80 harbor.vcloud.nii.ac.jp/sinetstream/android-tutorial:latest

このdocker runコマンド実行により、 バックエンド側の導入とサーバ群の起動が自動的に実施されます。

なお、バックエンド側のシステム的な詳細に関しては、別紙 SINETStream Androidのチュートリアル用コンテナイメージ を参照ください。

3.2 Android端末側の作業

お手元のAndroid端末へのセンサー情報収集アプリの導入と設定、 操作方法などの手順に関して記述します。

詳細は別紙 Android端末側の作業 を参照ください。

3.3 観測用PC側の作業

前述のバックエンド側のシステムが起動すると、 グラフ表示サービス用のウェブサーバが接続待ち状態となります。 観測用PCのウェブブラウザから以下のURLに接続してください。

    http://<server_address>/chart.html

上記URLのサーバアドレス部分は、 バックエンドシステム用のコンテナイメージが稼動するホスト機材を指定します。 ポート番号は標準の80番を使いますが、 変更する場合は上記docker runの引数「-p」で調整してください。

グラフ表示画面の構成や表示対象の編集など、詳細に関しては別紙 チュートリアル - センサーデータ可視化用のウェブインタフェース を参照ください。

3.4 バックエンド側の作業 (その2)

一通り動作の確認が終わったら、計算機資源の解放が必要です。 以下のコマンドにより、 チュートリアル用コンテナイメージの停止と削除を実施してください。

もしAndroid端末側のアプリケーションが起動中の場合、Broker停止を 契機に接続が切られるためAndroidアプリケーションに「EOF例外」エラー メッセージが表示されます。

     % sudo docker stop broker
     % sudo docker rm broker

詳細は別紙 チュートリアル DOCKER-CONTAINER を参照ください。

4. 制約事項

システム動作を体験していただくチュートリアルという性質上、 Android版SINETStreamライブラリの提供する全ての機能を網羅しているわけではありません。

ここで示したチュートリアル用のBrokerを用いる場合、 以下のような機能制限があることにご留意ください。

ノルム計算に関する注記: ベクトルのノルム計算方法として以下の3種類がある。

ここではユークリッド(二次元)ノルムで計算する。

5. うまくいかないときは

5.1 Androidアプリケーションの設定内容を初期化したい

    Settings
    --> Apps & notifications
      --> App info
        --> Sensor
          [FORCE STOP]
          --> Storage & cache
            --> Clear storage (or CLEAR DATA)

5.2 AndroidアプリケーションがBrokerと接続できない

5.3 Androidアプリケーション実行中にエラー発生する

5.4 観測用PCのウェブ画面でセンサー読取値がグラフ表示されない