OpenBlocks IoTの設定
0. はじめに
OpenBlocks IoT の設定では、OpenBlocksにてAWS IoT Device Shadowにシリアル・デバイスのステータスを送信、およびAWS IoT Device Shadowからの制御メッセージを受け取るための設定を行います。
OpenBlocks IoT の設定には、次の7つの作業があります。
また、本チュートリアルには次の機材が用いられています。
1. OpenBlocksの初期設定
- WEB-UIを使うスタートアップについてはWEB-UI接続準備をご覧下さい。
- OpenBlocksのFW(Frame Work)をLinuxコンピュータとして動作させるための必要最小限の設定については初期設定をご覧下さい。
2. IoTデータ制御パッケージのインストール
OpenBlocks では、デバイスからメッセージを受け取りクラウドに送信する一連のサービスをIoTデータ制御パッケージとして提供しています。
IoTデータ制御パッケージをインストールしていない場合は、 メンテナンス⇒機能拡張タブからインストールします。
- インストール機能ペインのプルダウンメニューでIoTデータ制御を選択します。
実行
ボタンをクリックします。- インストールが完了したら、メンテナンス⇒停止・再起動タブから OpenBlocks を再起動します。
インストール状況の確認方法など詳しくは、サービスの追加をご覧下さい。
3. Userデバイスの登録
OpenBlocks では、複数の様々なデバイスを扱うため使用するデバイスを登録し、デバイス番号(ローカル名)を割り振る必要があります。
WEB-UIで設定を行う限り、デバイス番号の割り振りはWEB-UIにより自動的に行われるため、ユーザーがその採番を意識する必要はありませんが、
データ処理のカスタマイズを行う場合などに必要となる事項です。
Dev登録⇒User登録タブにて、チュートリアルで使用するシリアル・デバイスのデバイス登録を行います。
上の黒いタブ列にDev登録タブが表示されていない場合は、サービスタブにあるデバイス登録機能のリンクをクリックして下さい。
本チュートリアルに用いるPD Handler RS-SERIALはLuaスクリプト ファイルの準備で用意する Luaスクリプトに基づき動作するため、 そのデバイス番号はユーザーが定義するデバイスとして、その枠組み(ユーザ定義デバイス)の中から採番されます。
- ユーザーメモフィールドにはユーザーがデバイスを識別するための適当な文字列を入力して下さい。
チュートリアルではSERIALとしています。 保存
ボタンをクリックします。
デバイス番号が自動的に割り振られ一覧に追加されます。
デバイス登録についての詳細は、デバイス登録機能をご覧下さい。
4. Luaスクリプト ファイルの準備
4-1. Luaスクリプト ファイルの作成
以下の Luaスクリプトをコピー・アンド・ペーストして、ファイル名test_device_shadow.luaとして保存して下さい。
test_device_shadow.lua
20行目のuserdev_0000001とUserデバイスの登録で登録したデバイス番号が異なる場合は、スクリプトを修正して下さい。
シリアル・デバイスの接続構成(クロスケーブル)についてに示す通り、 チュートリアルをOpenBlocks IoT EX1の RS232Cポート以外で試す場合は、 27行目のデバイスファイル名 /dev/ttyMFD1 を修正する必要があります。
Luaスクリプトについての詳細は、RS-SERIAL Luaをご覧下さい。
4-2. Luaスクリプト ファイルのアップロード
IoTデータ⇒SERIAL Luaタブにて作成した Luaスクリプト ファイル test_device_shadow.luaをアップロードします。
上の黒いタブ列にIoTデータタブが表示されていない場合は、サービスタブにあるIoTデータのリンクをクリックして下さい。
ファイル選択
にてtest_device_shadow.luaを選択します。アップロード
ボタンをクリックします。
アップロードが完了するとSERIAL Luaペインにtest_device_shadow.luaに追加されます。
5. モジュールの起動制御
IoTデータ⇒モジュール設定タブにて、IoTデータの送受信に用いるモジュールの起動制御を行います。
上の黒いタブ列にIoTデータタブが表示されていない場合は、サービスタブにあるIoTデータのリンクをクリックして下さい。
チュートリアルでは、シリアル・デバイスのデータをハンドリングするPD Handler RS-SERIALとクラウドとのハンドリングを行うPD Repeaterを使用するに設定します。
左上のデフォルト使用モジュール表示チェックボッククスをクリックします。
デフォルトモジュール起動制御ペインが表示されます。
5-1. デフォルトモジュール起動制御の設定
- デフォルトモジュール起動制御ペインのPD Repeaterを使用するに設定します。
- デフォルトモジュール起動制御ペインのPD Handler RS-SERIALを使用するに設定します。
5-2. モジュール起動制御の設定
- モジュール起動制御ペインのPD Repeaterを使用するに設定します。
- モジュール起動制御ペインのPD Handler RS-SERIALを使用するに設定します。
- PD Handler RS-SERIALの指定LuaファイルプルダウンメニューでLuaスクリプト ファイルのアップロードでアップロードしたtest_device_shadow.luaを選択します。
5-3. 設定の保存
設定を完了したら、画面左下の保存
ボタンをクリックし設定を保存します。
モジュールの起動制御についての詳細は、モジュール設定をご覧下さい。
6. 証明書のアップロード
証明書のダウンロードでダウンロードした次のファイルを OpenBlocks へアップロードします。
- デバイス証明書 (<32bitのハッシュコード>-certificate.pem.crt)
- プライベートキー (<32bitのハッシュコード>-private.pem.key)
- ルート CA 証明書 (AmazonRootCA1.pem)
ここで <32bitのハッシュコード>とは64文字の16進数です。(e.g. f308184f4d6216a23003b517d60a3ab439f6f3607fe4ebee4cec14677a3f5098)
ファイルのアップロードは、システム⇒ファイル管理タブにて行います。
上の黒いタブ列にファイル管理タブが表示されていない場合は、ダッシュボートタブをクリックして下さい。
6-1. アップロード先サブディレクトリの作成
チュートリアルではデバイスを1しか登録しないため意味の無い作業に思われるかも知れませんが、 複数のデバイスを接続し管理して行く上でデバイス証明書はデバイス番号毎にサブディレクトリを設け振り分けて置くことをお勧めします。
システム⇒ファイル管理タブの作成ペインにてサブディレクトリを作成します。
- 新規ディレクトリ生成フィールドに ./awsiot/userdev_0000001と入力します。
作成
ボタンをクリックします。
ここで、userdev_0000001 はUserデバイスの登録で割り振られたデバイス番号です。
6-2. ファイルのアップロード
システム⇒ファイル管理タブアップロードペインにてファイルをアップロードします。
- アップロードプレフィックスパス入力フィールドに ./awsiotと入力します。
ファイル選択
にて AmazonRootCA1.pem を選択します。アップロード
ボタンをクリックします。- アップロードプレフィックスパス入力フィールドに ./awsiot/userdev_0000001と入力します。
ファイル選択
にて <32bitのハッシュコード>-certificate.pem.crtを選択します。アップロード
ボタンをクリックします。- アップロードプレフィックスパス入力フィールドに ./awsiot/userdev_0000001と入力します。
ファイル選択
にて <32bitのハッシュコード>-private.pem.keyを選択します。アップロード
ボタンをクリックします。
アップロードが完了したらファイル管理ペインのawsiot/userdev_0000001フォルダアイコンをクリックします。 awsiot/userdev_0000001フォルダ内のファイルが表示されます。
アップロードされたファイルのOpenBlocks上のパス名は次の通りです。
- /var/webui/upload_dir/awsiot/AmazonRootCA1.pem
- /var/webui/upload_dir/awsiot/userdev_0000001/<32bitのハッシュコード>-certificate.pem.crt
- /var/webui/upload_dir/awsiot/userdev_0000001/<32bitのハッシュコード>-private.pem.key
ファイルの管理機能についての詳細は、ファイル管理をご覧下さい。
7. 送受信設定
User デバイスからデータ受け、AWS IoT Core へ送るためのパラメタの設定を行います。
チュートリアルではPD Handler RS-SERIALとPD Repeaterの2つのモジュールを用いており、PD Handler RS-SERIALがデバイス寄り、PD Repeaterがクラウド寄りの処理を行います。
ここで、PD Handler RS-SERIALに必要となる設定パラメータはデバイス単位のものだけですが、クラウドサービスの多くがデバイス単位での接続を基調としているため、PD Repeaterにはクラウド単位とデバイス単位の双方のパラメタが必要となります。
このため、OpenBlocks の WEB-UI はPD Handler RS-SERIALとPD Repeaterの双方に関わるデバイス単位のパラメータをシームレスに扱えるよう構成されており、行う作業も次の2つに大別されます。
- 送受信設定 : デバイスに依存しない送受信先クラウドの設定
- デバイス設定(ユーザー定義) : デバイスに依存した設定
但し、PD Handler RS-SERIALの設定パラメータはLuaスクリプト ファイルの準備で用意したtest_device_shadow.luaにハードコーディングされているため、 デバイス設定(ユーザー定義)にて設定されるパラメタはPD Repeaterの設定パラメタのみとなります。
7-1. 送受信設定
IoTデータ⇒送受信設定タブの送受信設定ペインにてデバイスに依存しない送受信先クラウドの設定を行います。
上の黒いタブ列にIoTデータタブが表示されていない場合は、サービスタブにあるIoTデータのリンクをクリックして下さい。
- AWS IoT(awsiot)を使用するに設定します。
設定項目が表示されます。 - 送信先ホスト入力フィールドにデバイスデータエンドポイントの取得で取得したエンドポイントを入力します。
- ルート証明書入力フィールドに証明書のアップロードでアップロードしたルート CA 証明書のパス名 /var/webui/upload_dir/awsiot/AmazonRootCA1.pemを入力します。
その他の設定項目の詳細は、AWS IoT(awsiot)をご覧下さい。
7-2. デバイス設定(ユーザー定義)
IoTデータ⇒送受信設定タブのデバイス設定(ユーザー定義)ペインにてデバイスに依存した設定を行います。
上の黒いタブ列にIoTデータタブが表示されていない場合は、サービスタブにあるIoTデータのリンクをクリックして下さい。
デバイス番号 userdev_0000001を使用するに設定します。
userdev_0000001はUserデバイスの登録で割り振られたデバイス番号です。
設定項目が表示されます。
- 受信設定ラジオボタンを有効にします。
- 送受信設定にてawsiotチェックボックスをチェックします。
AWS IoT Coreに関わる設定項目が表示されます。 - DeviceShadow使用設定(awsiot)プルダウンメニューにて使用するを選択します。
- DeviceShadowタイプ(awsiot)プルダウンメニューにてクラシックを選択します。
- モノの名前(awsiot)入力フィールドにモノのプロパティを指定で設定したモノの名前 SERIALを入力します。
- トピック(awsiot)入力フィールドにtx_serialと入力します。
本チュートリアルではトピックによる制御は行わないため受信トピックと重複しない限り適当な文字列で構いません。 - 受信トピック(awsiot)入力フィールドにrx_serialと入力します。
本チュートリアルでは受信トピックによる制御は行わないためトピックと重複しない限り適当な文字列で構いません。 - 証明書(awsiot)入力フィールドに証明書のアップロードでアップロードしたデバイス証明書のパス名 /var/webui/upload_dir/awsiot/userdev_0000001/<32bitのハッシュコード>-certificate.pem.crtを入力します。
- プライベートキー(awsiot)入力フィールドに証明書のアップロードでアップロードしたプライベートキーのパス名 /var/webui/upload_dir/awsiot/userdev_0000001/<32bitのハッシュコード>-private.pem.keyを入力します。
その他の設定項目の詳細は、デバイス設定(ユーザー定義)並びにAWS IoT(awsiot)をご覧下さい。
7-3. 設定の保存
設定を完了したら、画面左下の保存
ボタンをクリックし設定を保存します。