Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsoft Azure&sakura.io 体験ハンズオン(Part1)/sakuraio handson azure part1

Microsoft Azure&sakura.io 体験ハンズオン(Part1)/sakuraio handson azure part1

※2019/03/25修正

各地で開催されているさくらインターネットが提供するIoTプラットフォーム「sakura.io」のハンズオンでの資料となります。

本資料では様々なサービスを提供するMicrosoft Azureと連携し、「Arduino+sakura.ioモジュールを用いたマイコンおよびプログラムの構築」から「Azure IoT Hubでのデータ受信およびBLOBストレージへの格納」までの手順をスライドでご覧いただけます。

サービス詳細は以下をご確認ください。
Microsoft Azure https://azure.microsoft.com/ja-jp/
sakura.io https://sakura.io/

More Decks by さくらインターネット(IoTプラットフォーム事業)

Other Decks in Technology

Transcript

  1. sakura.io体験ハンズオン IoT ALGYAN(あるじゃん)共催 Part1 Azure IoT Hubと繋げてみよう 2019/3/25 (C) Copyright

    1996-2018 SAKURA Internet Inc. さくらインターネット株式会社 IoTチーム 西田 有騎 だれもが、データを活かせる世の中へ。
  2. 本ハンズオンの目的とお願い ⚫ 本ハンズオンは sakura.io を使用し、組込み、Web/アプリ開発、それぞれのスキルセッ トを大きく超えることなく、Internet of Things(IoT) に携わることができることをご体験 いただくものです。

    ⚫ そのため、組み込み系またはWeb/アプリ系のどちらか、または両方わからないという方に もご参加いただくことができます。 ⚫ 今回は1人に1つのキットをご用意しています。もしもご自身の知識分野で、近くの方の フォローができそうだなと思われましたら、積極的にサポートしあって進めていただければと 思います。 ⚫ 本ハンズオンの内容は一部有償サービスが含まれます。検証される場合はその点を ご了承のうえ実施いただき、使用後は停止させる等のご対応をお願いします。 5
  3. Webサービス連携 ① 今回のハンズオンの流れ 7 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  4. 今回のワークショップでご提供するもの 8 組み上げ済みキット USB2.0 ケーブル(A-B) 12W級 9V-1.3A ACアダプタ Grove Temperature

    Sensor Grove Variable Color LED x 3個 Grove Cable x 4本 下記3つの組み合わせ Arduino Uno Rev3 sakura.io シールド for Arduino Grove ベースシールド sakura.ioモジュール (アンテナ取付済み)
  5. アジェンダ 1. Webサービス連携(Microsoft Azure) ₋ IoT Hubの作成 ₋ BLOBストレージの作成 ₋

    Stream Analytics Jobの作成 2. sakura.ioの設定 ₋ プロジェクトの作成 ₋ sakura.ioモジュールの登録 ₋ 連携サービスの追加 3. マイコンおよびプログラムの構築 ₋ マイコン(Arduino)による開発環境の準備 ₋ 温度センサおよびsakura.ioモジュールの繋ぎ込み ₋ 試験用プログラムの流し込み ₋ デバイスから送信されたデータの確認 4. 動作確認 ₋ Stream Analytics Jobの起動 ₋ BLOBストレージ内データの確認 5. 参考:Device Explorerを使ったsakura.ioとの接続確認 9
  6. Webサービス連携 ① 今回のハンズオンの流れ 11 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  7. Microsoft Azure ダッシュボード画面説明 ⚫ 【 新しいダッシュボード 】をクリックするとデフォルトのダッシュボードとは別に作成 することができます。 ⚫ 【

    すべてのリソース 】タイルを追加したり、作成したサービスをダッシュボードにピン 留めしておくと、すぐに作成したリソースにアクセスできます。 17
  8. Stream Analytics Storage (BLOB) 今回のハンズオンの流れ 18 ② マイコンおよび プログラムの構築 温度センサ

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① IoT Hub
  9. IoT Hub 作成 ⚫ IoT Hub – Basics画面では必要な設定を選択します。 ⚫ 下記設定を行い、【

    次へ: サイズとスケール 】をクリックします。 21 Subscription:※任意※ Resource Group:※新規作成※ Region:※任意※ IoT Hub Name:※任意※
  10. IoT Hub 作成 ⚫ IoT Hub – Size and scale画面では使用するプランを選択します。

    ⚫ 下記設定を行い、【 確認および作成 】をクリックします。 22 価格とスケールティア: F1:Freeレベル ※ F1は1個だけしか作れません。 既に使用済みの場合は別のティア を選択ください。 ※ Basicの場合、Cloud-to-Device コマンドを利用できません。
  11. IoT Hub 作成 ⚫ IoT Hub – Review + create画面では選択内容が表示されます。

    ⚫ 確認のうえ、問題なければ【 作成 】をクリックします。 23
  12. IoT Hub 共有アクセスポリシー作成 ⚫ [ 共有アクセスポリシーを追加 ]画面が右部に表示されます。 ⚫ 任意の名称を記入し、アクセス許可の全てをチェックし【 作成

    】をクリックします。 27 レジストリ読み取り:登録デバイス情報の取得 レジストリ書き込み:デバイスの登録・情報変更 サービス接続:サービス向けエンドポイントへの接続 デバイス接続:デバイス向けエンドポイントへの接続 それぞれのアクセス許可の意味は以下のとおり。
  13. IoT Hub Stream Analytics 今回のハンズオンの流れ 29 ② マイコンおよび プログラムの構築 温度センサ

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Storage (BLOB)
  14. BLOBストレージ 作成 ⚫ [ インスタンスの詳細 ]から以下値を設定し、【 確認および作成 】を クリックします。 33

    ストレージアカウント名:※任意※ 場所:※任意※ パフォーマンス:Standard アカウントの種類:StorageV2 パフォーマンス:ローカル冗長ストレージ アクセス層:ホット
  15. BLOBストレージ 作成 ⚫ 上部【 コンテナー 】をクリックします 。 ⚫ 以下値を設定し、【 OK

    】をクリックします。 37 名前:※任意※ パブリックアクセスレベル:プライベート
  16. IoT Hub Storage (BLOB) 今回のハンズオンの流れ 39 ② マイコンおよび プログラムの構築 温度センサ

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Stream Analytics
  17. Stream Analytics Job 作成 ⚫ 新しい Stream Analytics ジョブ画面が表示されます。 ⚫

    以下の値を設定し【 作成 】をクリックします。 42 ジョブ名:※任意※ サブスクリプション:※任意※ リソースグループ:※作ったもの※ 場所:※任意※ ホスティング環境:クラウド ストリーミングユニット:1
  18. Stream Analytics Job - Input 作成 ⚫ ジョブが作成された旨通知欄に表示されたら【 リソースに移動 】をクリックします。

    ⚫ 入力元を指定するため[ ジョブトポロジ ]から【 入力 】をクリックします。 43
  19. Stream Analytics Job - Input 作成 ⚫ 入力画面が表示されます。 ⚫ 【

    ストリーム入力の追加 】から【 IoT Hub 】をクリックします。 44
  20. Stream Analytics Job - Input 作成 ⚫ IoT Hub -

    新規入力画面が表示されます。 ⚫ 以下値を設定し、さらに下にスクロールします。 45 入力のエイリアス:sakuraio ラジオボタン:サブスクリプションからIoT Hubを選択する サブスクリプション:※任意※ IoT Hub:※作成したもの※ エンドポイント:メッセージング 共有アクセスポリシー名: ※作成したもの※
  21. Stream Analytics Job - Input 作成 ⚫ さらに以下値を設定します。 ⚫ 設定が完了したら【

    保存 】をクリックします。 46 コンシューマグループ:$Default イベントシリアル化形式:JSON エンコード:UTF-8 イベントの圧縮タイプ:None
  22. Stream Analytics Job - Output 作成 ⚫ 出力画面が表示されます。 ⚫ 【

    追加 】から【 Blobストレージ 】をクリックします。 49
  23. Stream Analytics Job - Output 作成 ⚫ Blobストレージ - 新規出力画面が表示されます。

    ⚫ 以下値を設定し、さらに下にスクロールします。 50 出力エイリアス:raw ラジオボタン: サブスクリプションからBlob Storageを選択する サブスクリプション:※任意※ ストレージアカウント:※作成したもの※ コンテナー(ラジオボタン):既存のものを使用 コンテナー:※作成したもの※
  24. Stream Analytics Job - Output 作成 ⚫ さらに以下値を設定します。 ⚫ 設定が完了したら【

    Save 】をクリックします。 51 パスパターン:※空欄※ イベントシリアル化形式:JSON エンコード:UTF-8 フォーマット:Line separated
  25. Stream Analytics Job - Query 作成 ⚫ 内容を変更したら【 保存 】をクリックします。

    ⚫ 変更を行う旨確認が表示されるので【 はい 】をクリックします。 55
  26. Webサービス連携 ① 今回のハンズオンの流れ 58 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  27. sakura.io コントロールパネルの考え方 59 プロジェクトC プロジェクトB プロジェクト モジュール3 ☑ データストアプラン 有償版/無償版

    ☑ 簡易位置情報提供 利用する/しない ☑ ファイル配信 ファイル1、ファイル2... 連携サービス3 モジュール / 連携サービス プロジェクトに対して複数登録可能 オプションサービス プロジェクトに対して1つ/1セット設定可能 モジュール2 連携サービス2 モジュール1 uAAAAAAAAAA 連携サービス1 WebSocket ⚫ sakura.ioは【 プロジェクト 】という単位で管理します。 ⚫ プロジェクトには【 モジュール 】【 連携サービス 】を複数紐付けることができます。 ⚫ 各種【 オプションサービス 】はプロジェクトに対して1つもしくは1セット設定できます。
  28. さくらインターネット 会員ID作成 ⚫ 会員IDをお持ちでない場合、さくらイン ターネット会員登録から作成します。 ⚫ 登録が完了すると、指定したメールアド レスに [email protected] より

    会員IDが記載されたメールが送信され ます。 会員IDおよびパスワードは重要な情報となりま すので、漏れないよう大事に保管ください。 60 Title:会員登録完了のお知らせ [XXX00000] ─────────────────────────────────── このメッセージはさくらインターネット会員登録フォームより 自動送信されています。このメールに心当たりのない場合は [email protected]までご連絡ください。 ─────────────────────────────────── さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) この度は、さくらインターネットに会員登録いただきまして誠に ありがとうございます。 以下の通り会員登録を受付ましたので、ご連絡させていただきます。 ============================================ ◎ 会員登録情報 会員ID : XXX00000 ご契約者名 : さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) 電子メール : [email protected] ============================================ ~~~以下省略~~~ https://secure.sakura.ad.jp/signup3/member-register/input.html
  29. 連携サービスの設定(Azure IoT Hub) ⚫ 以下3つの項目を設定し、【 作成 】をクリックします。 74 名前:※任意※ Shared

    Access Key(接続文字): ※作成したAzure IoT Hub参照※ Azure IoT デバイス名 プレフィックス: ※任意※
  30. Webサービス連携 ① 今回のハンズオンの流れ 82 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  31. Arduino IDEのセットアップ ⚫ Webサイトから開発環境(Arduino IDE)を入手します。 2018/6/4時点の最新バージョンは[ 1.8.7 ]です。 ⚫ 環境がWindowsの場合は【

    Windows Installer, for Windows XP and up 】 Macの場合は【 Mac OS X 10.8 Mountain Lion or newer 】を選択します。 83 https://www.arduino.cc/en/Main/Software
  32. Arduino IDEのセットアップ ⚫ 上部メニューバーからボードと、シリアルポートを設定します。 ボード:[ ツール ]→[ ボード:”XXX” ]から【 Arduino/Genuino

    Uno 】を選択 シリアルポート:[ ツール ]→[ シリアルポート ]から【 COMx (Arduino/Genuino Uno) 】を選択 ※Mac環境の場合はCOMポートではなく、【 /dev/… (Arduino/Genuino Uno) 】を選択ください ※うまく認識しない場合は、USBを挿し直し、Arduino IDEを再起動を試してください 88 ボードの選択 シリアルポートの選択
  33. マイコン(Arduino)の準備 ⚫ [ ファイル ]→[ スケッチ例 ]→[ 01.Basics ]→ 【

    Blink 】を選択し、 Blinkスケッチを表示します。 ⚫ 【 】をクリックしてスケッチを書き込み、該当のLEDが点滅状態になることを確認します。 何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。 89
  34. ライブラリの取得(SakuraIO) ⚫ [ スケッチ ]→[ ライブラリをインクルード ]→ 【 ライブラリを管理... 】をクリックし、

    右上検索窓から【 sakuraio 】を検索すると、[ SakuraIO by SAKURA Internet Inc. ]がヒットします。 ⚫ 最新のVer.を選択のうえ【 インストール 】をクリックすると該当ライブラリが取り込まれ、 [ INSTALLED ]が表示されます。 90
  35. FirmwareUpdate.ino ⚫ [ ファイル ]→[ スケッチ例 ]→[ SakuraIO ]→ 【

    FirmwareUpdate 】を 選択し、【 】クリックでスケッチを書き込みます。[ ツール ]→ 【 シリアルモニタ 】 もしくは【 】クリックでアップデート状況を確認します。 ⚫ 現在のバージョン情報と比較し、新しいファームウェアが提供されている場合は アップデートを実行します。 91 ※PCからの給電が不安定/不足している場合は [ Update Failure ] と表示され、アップデートに 失敗する場合があります。その場合、電源アダプタを接続し、再度スケッチを書き込みます。 新しいファームウェアが存在する場合 最新のファームウェアが適用されている場合
  36. 試験用プログラムの流し込み ⚫ Githubの該当サンプルスケッチページで【 Raw 】をクリックし、キーボードで【 Ctrl + A 】 ですべてを選択して、【

    Ctrl +C 】でコピーします。 96 https://github.com/sakuraio/handson-sample/blob/reform/azure/part1/arduino-azure-part1.ino // ヘッダファイル指定 Including header files #include <SakuraIO.h> // LEDの定義 Definition of LED #define LED_1 7 #define LED_2 6 #define LED_3 5 // 変数の定義 Definition of variables SakuraIO_I2C sakuraio; const int B = 4250; // B value of the thermistor const int R0 = 100000; // R0 = 100k const int pinTempSensor = A0; // Grove - Temperature Sensor connect to A0 uint32_t cnt = 0; // 起動時に1回だけ実行 Run once at startup void setup() { Serial.begin(9600); Serial.print("Waiting to come online"); for (;;) { キーボードで【 Ctrl + A 】ですべてを選択 →【 Ctrl +C 】でコピーします
  37. 試験用プログラムの流し込み ⚫ [ ファイル ]→ 【 新規ファイル 】で新しいスケッチを表示し、以下URLの内容をスケッチ にコピー&ペーストします。 【

    】をクリックし、書き込みが終わったら【 】クリックでシリアル 値、Temperature情報に加え、送信キュー情報が取得できていることを確認します。 97 ※問題があった場合、オレンジ色のエラーが表示されます。 https://github.com/sakuraio/handson-sample/blob/reform/azure/part1/arduino-azure-part1.ino
  38. デバイスから送信されたデータの確認 ⚫ 【 詳細表示モードに切り替え 】をクリックすると詳細表示モードに遷移します。 ⚫ モジュールは同一ですが、データの内容によりタイプやペイロードが異なります。 100 チャンネルごとの最終到着データ: 各チャンネルに届いた最終の

    Valueを表示 クリックでログ出力を 開始/停止 タイプ: プラットフォームからの内容に応じて、 いくつかの種類に分かれる ・channels :モジュールからのデータ ・connection :接続の開始/終了 ・location :簡易位置情報 ・keepalive :WebSocketセッション確認 ペイロード: 受け取ったデータのpayload部 が表示 時刻: 詳細表示モードではプラットフォーム で該当のメッセージを受け取ったタイ ムスタンプ
  39. 今回のハンズオンの流れ 102 温度センサ sakura.io モジュール Arduino Uno ハンズオン キット WebSocket

    連携 サービス モジュール プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub ⚫ 現時点でデータはIoT Hubに到達していますが、BLOBに格納されていません。 ⚫ Stream Analyticsで作成したジョブを実行すると蓄積されるようになります。 一定間隔で温度と湿度 カウント値データを送信 IoT Hub連携により、 リアルタイムで連携 IoT Hubで受信、指定の Stream Analyticsに連携 Stream Analyticsが 停止されているため 実際には格納されない
  40. Stream Analytics Job 作成ジョブの実行 ⚫ 起動が成功すると概要画面の表示が[ ジョブを実行中です ]に変化します。 ⚫ 画面下部のモニタではデータがIoT

    Hubから取り込まれ(Input)、BLOB ストレージに格納される(Output)されている状況が確認できます。 106
  41. BLOBストレージ内データの確認 ⚫ ファイルに格納されている1行のデータの内訳は以下のとおりです。 111 { "id": "372413869152708608", "module": "uXXXXXXXXXXXX", "type":

    "channels", "datetime": "2018-10-24T06:59:45.517324594Z", "payload": { "channels": [{ "channel": 0, "type": "I", "value": 374, "datetime": "2018-10-24T06:59:45.474325301Z" }, { "channel": 1, "type": "f", "value": 27.268341, "datetime": "2018-10-24T06:59:45.496325301Z" }] }, "EventProcessedUtcTime": "2018-10-24T06:59:45.6649241Z", "PartitionId": 0, "EventEnqueuedUtcTime": "2018-10-24T06:59:45.5280000Z", "IoTHub": { "MessageId": null, "CorrelationId": null, "ConnectionDeviceId": "sakuraio- uXXXXXXXXXXXX ", "ConnectionDeviceGenerationId": "636759606134963568", "EnqueuedTime": "2018-10-24T06:59:45.5320000Z", "StreamId": null } } sakura.ioから送られた データを含むJSONデータ IoT Hubが受信時に 自動付与したJSONデータ
  42. まとめ 112 温度センサ sakura.io モジュール Arduino Uno ハンズオン キット WebSocket

    連携 サービス モジュール プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub ⚫ 今回はデバイスからのデータが格納できるまででしたが、Stream Analytics からさらに他サービスへの連携を定義することで、様々な機能として実装すること が可能になります。 一定間隔で温度と湿度 カウント値データを送信 IoT Hub連携により、 リアルタイムで連携 Stream Analyticsから 指定したBLOBストレージに .jsonファイルとして格納 .json ファイル IoT Hubで受信、指定の Stream Analyticsに連携
  43. 【参考】Device Explorerを使ったsakura.ioとの接続確認 115 ⚫ Configurationタブの[ IoT Hub Connection String ]にIoT

    Hubで 生成した接続文字列を入力し、【 Update 】をクリックします。 ⚫ 接続が成功された旨のメッセージが表示され、該当のIoT Hubと接続されます。
  44. 【参考】Device Explorerを使ったsakura.ioとの接続確認 116 ⚫ Dataタブの[ Device ID ]で状況を確認したいデバイスを選択し、 【 Monitor

    】をクリックします。 ⚫ sakura.ioからIoT Hubに送られてきたデータをリアルタイムで確認できます。
  45. 【参考】Device Explorerを使ったsakura.ioとの接続確認 117 ⚫ Message to Deviceタブの[ Device ID ]でデータを送信したいデバイス

    を選択し、[ Message ]に送信したいJSONデータを入力のうえ【 Send 】 をクリックすると、Web環境を構築することなくデバイス動作のテストが可能です。