dragonboard x soracom x - amazon s3€¦ · • 無料参加の方(dragonboard...

55
DragonBoard x SORACOM x Scalenicsでやってみよう!IoT!」 ハンズオン資料(rev1.8) ユーピーアール株式会社 IoT事業統括本部 IoT営業部 村澤徹 Copyright(C) 2016 UPR Inc. 1

Upload: others

Post on 01-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

「DragonBoard x SORACOM x Scalenicsでやってみよう!IoT!」 ハンズオン資料(rev1.8)

ユーピーアール株式会社

IoT事業統括本部 IoT営業部

村澤徹

Copyright(C) 2016 UPR Inc. 1

Page 2: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Agenda

1. 本ハンズオンで行うこと

2. Step1:SORACOM Airをセットアップする

3. Step2:DragonBoardとSORACOM Beamをセットアップ

4. Step3:センサをクラウドから見る・動かす

5. Step4:ScalenicsのREST APIを使う

6. まとめ

Copyright(C) 2016 UPR Inc. 2

Page 3: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

1章.本ハンズオンで行うこと

Copyright(C) 2016 UPR Inc. 3

SORACOM Air セットアップ

DragonBoard/SORACOM Beam設定

センサをクラウドで見る・動かす

ScalenicsのAPIを使う

1. SORACOM Airを使うためにコンソールからSIMを登録します。 2. Scalenicsの認証情報をSORACOM Beamに設定して、SORACOM Beam経由で

DragonBoardの認証を行えるようにします。 3. サンプルプログラムを利用して、Scalenicsへのデバイス登録・センサデータの入力・リレー/LEDの制御をMQTT経由で行います。

4. ScalenicsのREST APIを利用して、デバイス情報の取得・時系列データの取得を実際に行ってみます。

Step1 Step2 Step3 Step4

Page 4: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

(ハンズオン構成)

Copyright(C) 2016 UPR Inc. 4

DragonBoard SORACOM Scalenics

認証フロー

MQTTフロー

Beamが代行

• Device Token • User ID

Subscribe(コマンド待ち受け)

Publish(データ送信) Publish(データ送信)

Subscribe(コマンド待ち受け)

平文 暗号化(MQTTS)

閉域網(DOCOMO) インターネット

SORACOM Beam

APIクライアント

管理コンソール

• DragonBoardからデータを受信 • DragonBoardにデータを送信 • IMSI番号をデバイスIDとして

DragonBoardを管理

• Scalenicsにデータを送信 • Scalenicsからデータを受信

• DragonBoardに代わって認証を代行

• SIMのIMSI番号をデバイスIDとしてMQTTトピックに付与

IMSI:xyz…

DeviceID:xyz…

API

Page 5: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

(用意するもの)

• DragonBoard IoTスターターパック – DragonBoard410c本体・ACアダプタ・メザニンカード・センサセット・専用ケース・AK-020 3G USBドングル(SORACOM Air付属)・UPR Scalenics 3か月無償アカウント

– スターターパック購入の方はお持ち帰りいただけます。

– 無料参加の方はお貸出しいたします。

• Scalenicsアカウント – Developerアカウント(https://api.scalenics.io/signup/)

– 無料参加の方はこちら側で準備したアカウントをお使いいただきます。

– スターターパック購入の方は上記リンクよりアカウントを取得してください。

Copyright(C) 2016 UPR Inc. 5

Page 6: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

「DragonBoard IoTスターターパック」の構成

Copyright(C) 2015 UPR Corporation 6

• DragonBoard410c本体(Debian Linuxインストール済み)

• メザニンカード(GPIOカード) • センサモジュール • 専用ケース(青or透明)

• USB UART(コンソール用)

• ACアダプタ(変換プラグ付)

• AK-020 SORACOMスターターキット

Page 7: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

(注意点など)

Copyright(C) 2016 UPR Inc. 7

• 有料参加(DragonBoard IoTスターターパック購入)の方 – キット同梱のAK-020 3Gドングルに付属するSORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを作成してお使いください。(Step1で作成します)

– Scalenicsのアカウントもオンラインサインアップして新規に取得してください。(Step2で作成します)

• 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 – SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを作成してお使いください。(Step1で作成します)

– SORACOM/Scalenicsのアカウントは配布するゲストアカウントをお使いください。 • ScalenicsのUser IDおよびSORACOM Beamのグループ名は「SC000***」となります。

• 「SC000***」の3ケタの数字はお貸出し機のAK-020 3Gドングルに添付されている数字をお使いください。

Page 8: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

2章 Step1:SORACOM Airセットアップ

Copyright(C) 2016 UPR Inc. 8

• Step1-1. SORACOM アカウントの作成 • Step1-2.ユーザ確認リンクのクリック • Step1-3. ユーザコンソールにログイン • Step1-4. 支払情報の設定 • Step1-5. Air SIMの登録 • Step1-6. Air SIMの取り外し • Step1-7. Air SIMを3G USBドングルに挿入する • Step1-8. データ通信料と利用料金の確認

SORACOM Air セットアップ

DragonBoard/SORACOM Beam設定

センサをクラウドで見る・動かす

ScalenicsのAPIを使う

Step1 Step2 Step3 Step4

Page 9: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-1. SORACOM アカウントの作成

Copyright(C) 2016 UPR Inc. 9

Page 10: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-2. ユーザ確認リンクのクリック

Copyright(C) 2016 UPR Inc. 10

Page 11: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-3. ユーザコンソールにログイン

Copyright(C) 2016 UPR Inc. 11

(SORACOM ユーザコンソール) https://console.soracom.io/#/login

Page 12: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-4. 支払情報の設定(1/2)

Copyright(C) 2016 UPR Inc. 12

Page 13: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-4. 支払情報の設定(2/2)

Copyright(C) 2016 UPR Inc. 13

Page 14: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-5. Air SIMの登録(1/2)

Copyright(C) 2016 UPR Inc. 14

Page 15: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-5. Air SIMの登録(2/2)

Copyright(C) 2016 UPR Inc. 15

Page 16: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-6. Air SIMの取り外し

Copyright(C) 2016 UPR Inc. 16

Page 17: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-7. Air SIMを3G USBドングルに挿入する

Copyright(C) 2016 UPR Inc. 17

標準SIMアダプタにマイクロSIMを載せてから挿入します。

Page 18: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(1/6)

Copyright(C) 2016 UPR Inc. 18

Page 19: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(2/6)

Copyright(C) 2016 UPR Inc. 19

Page 20: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(3/6)

Copyright(C) 2016 UPR Inc. 20

Page 21: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(4/6)

Copyright(C) 2016 UPR Inc. 21

Page 22: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(5/6)

Copyright(C) 2016 UPR Inc. 22

Page 23: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step1-8. データ通信料と利用料金の確認(6/6)

Copyright(C) 2016 UPR Inc. 23

Page 24: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

3章 Step2:DragonBoard/SORACOM Beamセットアップ

Copyright(C) 2016 UPR Inc. 24

• Step2-1. Virtual COM Portドライバのインストール

• Step2-2. USB UARTコンソールでログインする

• Step2-3. AK-020 3Gドングルを挿す

• Step2-4. SORACOMに接続する

• Step2-5. Scalenics認証情報の取得

• Step2-6. SORACOMメタデータサービスの設定

• Step2-7. SORACOM Beam設定

SORACOM Air セットアップ

DragonBoard/SORACOM Beam設定

センサをクラウドで見る・動かす

ScalenicsのAPIを使う

Step1 Step2 Step3 Step4

Page 25: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-1. Virtual COM Portドライバのインストール

Copyright(C) 2016 UPR Inc. 25

(WinXP/7/10) • 以下リンクよりドライバダウンロード • http://www.ftdichip.com/Drivers/CDM/CD

M21218_Setup.zip • zipファイルに含まれる「CDM21218_Setup.exe」を実行してインストール

(MacOS X 10.9~) • 以下リンクよりドライバダウンロード • http://www.ftdichip.com/Drivers/VCP/MacO

SX/FTDIUSBSerialDriver_v2_3.dmg • dmgファイルに含まれる「FTDIUSBSerial.pkg」を実行してインストール

Page 26: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-2. USB UARTコンソールでログインする

Copyright(C) 2016 UPR Inc. 26

• DragonBoardにACアダプタを挿し電源を入れ30秒ほど待つ • DragonBoardとPCをUSBケーブルで接続する • DragonBoardにシリアルコンソールでログインする

– (WinXP/7/10) • コンパネ->デバイスマネージャでCOMポートの番号を調べる(例:COM7) • PuTTy等でVCPのCOMポートを選択してログイン • スピードは115200bpsを選択

– (Mac)ターミナルを開いて以下でログイン

以下コマンドを実行する (␣は空白文字) $ sudo␣–i ※root権限になる # ls␣–l␣/dev/cu.usb* ※ttyデバイスを確認 # cu␣-l␣/dev/cu.usbserial-********␣-s␣115200 ※上記のttyデバイスにログイン

USB UART

(デバイスマネージャ)

ここに挿す!

(例:PuTTY)

Page 27: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-3. AK-020 3Gドングルを挿す

Copyright(C) 2016 UPR Inc. 27

• AK-020 3GドングルをDragonBoardのUSBポート(どちらでもよい)に挿す。 • 以下メッセージが出きったら、ENTERキーを押してプロンプトに戻る

Page 28: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-4. SORACOMに接続する

Copyright(C) 2016 UPR Inc. 28

以下コマンドを実行する (␣は空白文字) root@linaro-alip:~# wvdial␣& ※SORACOMにダイヤルアップ(以下の初期化メッセージが流れてDNSアドレスの取得表示まで出たらENTERキーを押してプロンプトに戻る) root@linaro-alip:~# ping␣–c␣3␣8.8.8.8 ※インターネットに接続できていることを確認

(NOTE!) wvdialコマンド実行時にAK-020の初期化がまれに失敗する場合(Modem not responding..表示で止まる)があるので、Control+Cキー

で中断して、改めて実行する。

Page 29: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-5. Scalenics認証情報の取得(1/2)

Copyright(C) 2016 UPR Inc. 29

(有料参加:スターターパック購入の方) • スターターパック購入の方はhttps://api.scalenics.io/signup/からオンラインサインアップ

• 登録時のメールアドレスにログインに必要なアカウント情報が送付されていますのでこちらの情報でログインする。

(無料参加の方) • 無料参加の方はこちらでご用意したゲストアカウントをお使いください。

(Scalenics Management Consoleにアクセス) • https://api.scalenics.io/console/にアクセス • UsernameはSC000***を入力 • Passwordはオンラインサインアップ登録時のメールに記載されたもの or 無料参加者の方はこちらでご用意したアカウントのものを入力

「SC000***」を入力

Page 30: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-5. Scalenics認証情報の取得(2/2)

Copyright(C) 2016 UPR Inc. 30

User ID:SORACOM Beamに設定するために必要(MQTT認証時のUserIDで必要)

Device Token:デバイス用の認

証クレデンシャル。メタデータサービスとSORACOM Beamに設定するために必要(MQTT認

証時のパスワードとトピックの組み立てに必要)

コピー①

コピー② API Token:API用の認証クレデンシャル。6章でAPIを呼び出す時に利用。

コピー③

Page 31: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

(参考)Scalenicsの認証スキーム

Copyright(C) 2016 UPR Inc. 31

Scalenics

API

• デバイス側 – Device Tokenと呼ばれる、32bytesの認証トークンが利用される。 – MQTTの認証パスワードとトピックのアクセスリストとしても利用される。 – 今回はSORACOM Beam側にDevice Tokenを持たせるので、DragonBoard側に設定は不要

• アプリケーション(APIクライアント)側 – API Tokenと呼ばれる、32bytesの認証トークンが利用される。

アプリケーション デバイス

Device Token API Token

User ID

MQTT/HTTP HTTPS(REST)

Page 32: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-6. SORACOM メタデータサービスの設定(1/4)

Copyright(C) 2016 UPR Inc. 32

(SORACOMユーザーコンソール) https://console.soracom.io/#/login

Step1で作成したメールアドレス

Step1で作成したパスワード

Step1でSORACOMのコンソールにログインされていた方は次に進む。

ログアウトしてしまった方は再ログインする。

Page 33: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Copyright(C) 2016 UPR Inc. 33

①コンソールのメニュー「グループ」から「追加」をクリック ②グループ名を入力して、「グループ作成」をクリック

③次に、SIMをこのグループに紐づけします。 ④SIM管理画面からSIMを選択して、操作→所属グループ変更を押します

⑤SIMにグループを割り当てたら、次に進む

Step2-6. SORACOM メタデータサービスの設定(2/4)

Page 34: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-6. SORACOM メタデータサービスの設定(3/4)

Copyright(C) 2016 UPR Inc. 34

①メニューから ②「グループ」選択

③「グループ」選択 先に作成済みのグループを選択する。 ④「SORACOM Air設定」を選択

Page 35: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-6. SORACOM メタデータサービスの設定(4/4)

Copyright(C) 2016 UPR Inc. 35

⑥Scalenicsの「Device Token」をペーストする

⑤ONに

⑦左下の保存ボタンをクリック

Page 36: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-7. SORACOM Beam設定(1/2)

Copyright(C) 2016 UPR Inc. 36

MQTTエントリポイントを選択

SORACOM内部ネットワークではSORACOM Beam内のMQTTエンドポイントに転送し、BeamからScalenicsまでのインターネット区間ではMQTTSにてScalenicsのMQTTエンドポイントまで転送する。 これにより、DragonBoard側でTLS暗号化を行う必要無くMQTTブローカを利用でき、SORACOMから外部までの区間はBeamが暗号化処理を行うためデバイス側の暗号処理を省きつつ、End-to-EndでセキュアなIoT通信を実現できる。

Page 37: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step2-7. SORACOM Beam設定(2/2)

Copyright(C) 2016 UPR Inc. 37

設定名は適当に設定(例:scalenics)

ホスト名:api.scalenics.io

ポート番号:8883

ユーザ名:ScalenicsのUser ID

パスワード:ScalenicsのDevice Token

IMSI付与:ONに設定

設定したら保存を忘れずに

(NOTE!) ※Scalenicsでは<Device Token>/<Device ID>のトピックを認識するため、Device IDとしてSIMの固有IDであるIMSI番号を埋め込みます。 トピックの組み立てに必要なDevice TokenはSIM認証によりメタデータサービスから取得できます。

Page 38: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

4章 Step3.センサをクラウドから見る・動かす

Copyright(C) 2016 UPR Inc. 38

• Step3-1. 入力デバイスをつなぐ • Step3-2. サンプルプログラムを動かす • Step3-3. Scalenics – デバイス認識の確認 • Step3-4. Scalenics – チャネル作成 • Step3-5. Scalenics – デバイスにチャネル紐づけ • Step3-6. Scalenics – データ確認 • Step3-5. 出力デバイスをつなぐ • Step3-6. サンプルプログラムを動かす • Step3-7. Scalenicsから出力デバイスを動かす

SORACOM Air セットアップ

DragonBoard/SORACOM Beam設定

センサをクラウドで見る・動かす

ScalenicsのAPIを使う

Step1 Step2 Step3 Step4

Page 39: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-1.メザニンカードに入力デバイスをつなぐ

Copyright(C) 2016 UPR Inc. 39

入力デバイスとして好きなものを選択して、GPIO(D1)に接続する。 • (左)押しボタン • (右)傾斜センサ

D1(赤枠)にリボンケーブルを接続。

押すとON 傾くとON 戻るとON

※OFFはONの直後に疑似的に発生させています。

Page 40: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-2.サンプルプログラムを動かす

• 入力デバイスの情報をMQTTでScalenicsに送信するプログラムをgithubからダウンロードして実行する。

• 以下コマンド(赤文字)をコンソールから入力する。

Copyright(C) 2016 UPR Inc. 40

以下コマンドを実行する (␣は空白文字) root@linaro-alip:~# apt-get␣install␣python-pip ※「python-pip is already the newest version.」と出た場合は既にpipコマンドが入っているため無視 root@linaro-alip:~# pip␣install␣paho-mqtt ※「Requirement already satisfied..」と出た場合は既にpaho-mqttライブラリが入っているため無視 root@linaro-alip:~# git␣clone␣https://github.com/tmurasawa/db410c_soracom_din.git root@linaro-alip:~# cd␣db410c_soracom_din root@linaro-alip:~/db410c_soracom_din# python␣./db410c_soracom_din.py -- Get metadata from SORACOM... imsi:4401030******** device_token:16755F158AC56C21BBEDB8E0******** MQTT topic:16755F158AC56C21BBEDB8E0******** Push!

(NOTE!)

• プログラム起動時にSORACOMメタデータサービスにアクセスして、自身のデバイストークンを取得します。(通常、DragonBoard毎にScalenicsのデバイストークンを設定する必要が不要になる)

• MQTTパケットの転送・暗号化はSORACOM Beamが代理するため、DragonBoardの負荷が減る

押しボタンを押す度にScalenicsに状態を送信!

Page 41: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-3. Scalenics - デバイス認識の確認

Copyright(C) 2016 UPR Inc. 41

Auto Provisioningにより 自動認識されたDragonBoard

• 管理コンソールの「Device」メニューから確認します。

• 正しく設定済みのデバイスが最初に接続された時に、自動的にデバイスIDが登録されます。(今回はSIMのIMSI番号)

• この状態ではScalenicsに「登録」だけされている状態なので、データ蓄積のために次に「チャネル=センサデータのデータストア」を作成します。

Page 42: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

(参考)Scalenicsのデバイス管理フロー

Copyright(C) 2016 UPR Inc. 42

Device-A

Device-B

Device Registry Datastore(Channel)

デバイスID:44011234

デバイスID:44011235

チャネルID:10

チャネルID:11

: :

Devices MQTT Scalenics

1. MQTT認証を通過した新規デバイスは、ScalenicsのDevice Registryに自動登録される。

2. 自動登録された状態では、データを格納するチャネル(データストアの単位)が紐づいていないので、手動でチャネルを作成して紐づける。

3. チャネルが紐づいたデバイスは、以後チャネルに対してデータを蓄積していく。

4. デバイスが故障等で交換された際にデバイスIDが変わる事があるので、その際は新規のデバイスIDに既存のチャネルIDを紐づける事で、蓄積データをそのままに使い続ける事が出来る。

Device-A

Device-B

Page 43: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-4. Scalenics - チャネル作成

Copyright(C) 2016 UPR Inc. 43

新規チャネルを作成 (今回はDragonBoardのGPIO_Aへの入力をCH:0とする。)

Value1にセンサ(スイッチ)の入力値が入る。 ここに入れるのはValue1のラベルと単位なので省略してもOK。

• 今回はデジタル入力値が0=OFF/1=ONで入る。

• 同時に4点以上のデータ取得する時はValue1にMessagePack等でエンコードしたデータを入れる。

• Int/float値の場合はAPIで積算・平均・最低・最高値を算出可能。

適当に名前を付ける

Page 44: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-5. Scalenics - デバイスにチャネル紐づけ

Copyright(C) 2016 UPR Inc. 44

デバイス管理ページで自動認識されたデバイスを選択して以下を変更する。 • Description(デバイスの名前) • Enable(true:有効に変更) • Mapped_ch(CHxxに変更) Meta Dataは必要に応じて変更してください。

trueに変更

適当に名前を付ける

CH:0を設定

Page 45: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-6. Scalenics - データ確認

Copyright(C) 2016 UPR Inc. 45

1:ON / 0:OFF

「Stream」ページで生データを確認する

Page 46: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-7.メザニンカードに出力デバイスをつなぐ

Copyright(C) 2016 UPR Inc. 46

出力デバイスとして好きなものを選択して、GPIO(D1)に接続する。 • (左)LED • (右)リレー

※最初に接続した時点ではONになります。

D1(赤枠)にリボンケーブルを接続。

HIGHで点灯 LOWで消灯

HIGHで動作 LOWで解放

Page 47: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-8.サンプルプログラムを動かす

• ScalenicsのMQTTブローカからにSubscribeし、LEDまたはリレーを制御するプログラムをダウンロードして実行する。

• 以下コマンド(赤文字)をコンソールから入力する。

Copyright(C) 2016 UPR Inc. 47

Ctrl+Cキーで前のプログラムを止めてから以下コマンド(␣は空白文字)を実行する root@linaro-alip:~/db410c_soracom_din# cd root@linaro-alip:~# git␣clone␣https://github.com/tmurasawa/db410c_soracom_led.git root@linaro-alip:~# cd␣db410c_soracom_led root@linaro-alip:~/db410c_soracom_led# python␣./db410c_soracom_led.py -- Get metadata from SORACOM... imsi:4401030******** device_token:16755F158AC56C21BBEDB8E0******** MQTT topic:16755F158AC56C21BBEDB8E0********/4401030********/subscribe Connected with result code 0 16755F158AC56C21BBEDB8E0********/4401030********/subscribe led:off led:off!! 16755F158AC56C21BBEDB8E0********/4401030********/subscribe led:on led:on!!

次ページでScalenicsから MQTTメッセージを送る

Page 48: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step3-9.Scalenicsから出力デバイスを動かす

Copyright(C) 2016 UPR Inc. 48

登録されているデバイスIDを選択する

「Publish」ページでDragonBoardにMQTTメッセージを送る

DragonBoard側では赤枠のMQTTトピックを待ち受けている。 DEVICE_IDにはSIMのIMSI番号が設定される。

ペイロードにはDragonBoardへのコマンドが入る。 • 「led:off」でOFF(LOW) • 「led:on」でON(HIGH)

Page 49: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

5章.Step4:ScalenicsのREST APIを使う

• Step4-1.ChromeにPOSTMANをインストールする。

• Step4-2.REST APIでデバイス一覧を取得する。

• Step4-3.REST APIでチャネル一覧を取得する。

• Step4-4.REST APIで蓄積データを取得する。

• Step4-5.実際のIoTアプリ

Copyright(C) 2016 UPR Inc. 49

SORACOM Air セットアップ

DragonBoard/SORACOM Beam設定

センサをクラウドで見る・動かす

ScalenicsのAPIを使う

Step1 Step2 Step3 Step4

Page 50: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step4-1.ChromeにPOSTMANをインストールする。

• ScalenicsのREST APIを実際に呼び出すためにChrome上で稼働するREST APIクライアント(POSTMAN)をインストールする。

• 通常REST APIはプログラムからHTTPリクエストの形で呼び出すので、手軽に扱うためにPOSTMANというGUIツールを利用する。 – 以下手順でインストール。

1. chromeの検索窓から「postman」と入力

2. chromeウェブストアが出るので右上の「+ CHROMEに追加」ボタンを押してアプリをインストールする。

3. アプリを起動!

Copyright(C) 2016 UPR Inc. 50

Page 51: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step4-2.REST APIでデバイス一覧を取得する。

Copyright(C) 2016 UPR Inc. 51

②APIトークンをセットする。 ※P26でコピーしたものを使う

①APIエンドポイント(デバイス一覧)を指定する。 (エンドポイント:https://api.scalenics.io/v1/device)

④JSONでデバイス一覧を取得した。

③GETメソッドでAPI呼出

Page 52: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step4-3.REST APIでチャネル一覧を取得する。

Copyright(C) 2016 UPR Inc. 52

②APIトークンをセットする。 ※P26でコピーしたものを使う

①APIエンドポイント(チャネル一覧)を指定する。 (エンドポイント:https://api.scalenics.io/v1/channel)

④JSONでチャネル一覧を取得した。

③GETメソッドでAPI呼出

Page 53: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step4-4.REST APIで蓄積データを取得する。

Copyright(C) 2016 UPR Inc. 53

②APIトークンをセットする。 ※P26でコピーしたものを使う

①APIエンドポイント(ストリーム取得)を指定する。 (エンドポイント:https://api.scalenics.io/v1/stream/0)

JSONでCH:1の最新データを取得した。

③最新データを取得するためにX-ENDTIMEヘッダに「last」をセット。

④GETメソッドでAPI呼出

Page 54: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

Step4-5.実際のIoTアプリ

Copyright(C) 2016 UPR Inc. 54

• APIを使うことにより、ブラウザベースのWeb

アプリからモバイルのネイティブアプリまでIoTを活用したアプリをすぐ作成可能。

• (参考)ScalenicsのREST APIを利用したサイミックス株式会社製「お手軽IoTキット」

• (Playストア)「お手軽IoT」で検索 • (Github:)以下レポジトリからダウンロード https://github.com/simics-co/easyiotkit-demoapp-android

Page 55: DragonBoard x SORACOM x - Amazon S3€¦ · • 無料参加の方(DragonBoard IoTスターターパックレンタル)の方 –SORACOM AirのSIMカードは参加者様が新規にSORACOMのアカウントを

6章.まとめ

• 今回のハンズオンで学んだこと – SORACOM Airを管理コンソールから登録した。

• いつでもSORACOM AirのSIMを登録したり、各種設定をオンラインで変更できる!

– SORACOM Beamとメタサービスを活用して、ScalenicsとDragonBoard間の認証をオフロードしDragonBoardに認証情報を埋め込む事なくScalenics側で認証・登録ができる事を確認した。 • SORACOMとScalenicsを使う事でデバイスが1台から数百台でもデバイス固有の設定作業が不要になり盗難によるトークン流出対策にもなる!

– ScalenicsのMQTTブローカを経由してセンサデータ収集と制御を行った。 • MQTTによる効率的なセンサデータ収集とデバイスへのメッセージ配信が簡単にできる!

– REST APIでScalenicsの機能を外部から利用出来る事を確認した。 • IoTアプリを作る際に、デバイス管理などの機能を実装することなくアプリ本来の機能作成に集中できる!

Copyright(C) 2016 UPR Inc. 55