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/

Transcript

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

    1996-2018 SAKURA Internet Inc. さくらインターネット株式会社 IoTチーム 西田 有騎 だれもが、データを活かせる世の中へ。
  2. 2 はじめに

  3. ハンズオンを円滑に進めるために ⚫ 本資料の内容では、いくつかの外部サービスやサイトをまたいで作業します。 ⚫ そのため、本資料をローカル環境で参照しつつ、URL集を併用いただくことを推奨します。 3 sakura.io紹介資料 http://bit.ly/sakuraio-intro-01 ハンズオン資料 http://bit.ly/sakura-azure-p1

    リンク集 http://bit.ly/sakuraio01
  4. ハンズオンを円滑に進めるために 4 ココ!!

  5. 本ハンズオンの目的とお願い ⚫ 本ハンズオンは sakura.io を使用し、組込み、Web/アプリ開発、それぞれのスキルセッ トを大きく超えることなく、Internet of Things(IoT) に携わることができることをご体験 いただくものです。

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

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  7. 今回のワークショップでご提供するもの 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モジュール (アンテナ取付済み)
  8. アジェンダ 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
  9. 10 Webサービス連携

  10. Webサービス連携 ① 今回のハンズオンの流れ 11 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  11. Microsoft Azure アカウント作成 ⚫ Microsoft Azureには無料利用が可能なサービスプランや一定額の クレジットが提供されます。 ⚫ 上記URLにアクセスし、【 無料で始める

    】をクリックします。 12 https://azure.microsoft.com/ja-jp/free/
  12. Microsoft Azure アカウント作成 ⚫ 既にMicrosoftのアカウントを持っていたり、作る場合によって手順は異なります。 ⚫ 画面の案内に従いご自身にあった手順でアカウントをご用意ください。 13

  13. Microsoft Azure ログイン ⚫ 上記URLにアクセスし、自身が作成したアカウントを選択しログインします。 14 https://portal.azure.com/

  14. Microsoft Azure ログイン ⚫ ログインに成功すると以下のようなホーム画面に案内されます。 ⚫ すべてのサービスは左ペインの【 リソースの作成 】から行います。 15

  15. Microsoft Azure ログイン ⚫ 【 ダッシュボード 】をクリックすると以下のようなダッシュボード画面に案内されます。 ダッシュボードをカスタマイズすることでチームでの作業や管理性を高めることがで きます。 16

  16. Microsoft Azure ダッシュボード画面説明 ⚫ 【 新しいダッシュボード 】をクリックするとデフォルトのダッシュボードとは別に作成 することができます。 ⚫ 【

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

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① IoT Hub
  18. IoT Hub 作成 ⚫ IoT Hubを作成します。 ⚫ ダッシュボード画面から【 リソースの作成 】をクリックします。

    19
  19. IoT Hub 作成 ⚫ 新規画面が表示されます。 ⚫ 【 モノのインターネット 】から【 IoT

    Hub 】をクリックします。 20
  20. IoT Hub 作成 ⚫ IoT Hub – Basics画面では必要な設定を選択します。 ⚫ 下記設定を行い、【

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

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

    ⚫ 確認のうえ、問題なければ【 作成 】をクリックします。 23
  23. IoT Hub 作成 ⚫ デプロイ画面が表示されますが数分で完了します。 ⚫ 【 リソースに移動 】をクリックするとIoT Hub

    - 概要画面に遷移します。 24
  24. IoT Hub 共有アクセスポリシー作成 ⚫ 次にsakura.ioからアクセスするための接続文字列を生成します。 ⚫ 【 共有アクセスポリシー 】をクリックします。 25

  25. IoT Hub 共有アクセスポリシー作成 ⚫ デフォルトで作成されている共有アクセスポリシーの一覧が表示されます。 ⚫ 上部の【 追加 】をクリックします。 26

  26. IoT Hub 共有アクセスポリシー作成 ⚫ [ 共有アクセスポリシーを追加 ]画面が右部に表示されます。 ⚫ 任意の名称を記入し、アクセス許可の全てをチェックし【 作成

    】をクリックします。 27 レジストリ読み取り:登録デバイス情報の取得 レジストリ書き込み:デバイスの登録・情報変更 サービス接続:サービス向けエンドポイントへの接続 デバイス接続:デバイス向けエンドポイントへの接続 それぞれのアクセス許可の意味は以下のとおり。
  27. IoT Hub 共有アクセスポリシー作成 ⚫ しばらくすると通知欄で更新が成功した旨の表示がされます。 ⚫ 作成したポリシーをクリックし、共有アクセスキー欄にある [ 接続文字列 -

    プライマリキー ]文字列をコピーします。 ※文字列は後ほど使用します 28 メモ情報あり
  28. IoT Hub Stream Analytics 今回のハンズオンの流れ 29 ② マイコンおよび プログラムの構築 温度センサ

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Storage (BLOB)
  29. BLOBストレージ 作成 ⚫ IoT Hubで受信したデータを格納するBLOBストレージを作成します。 ⚫ ダッシュボード画面から【 リソースの作成 】をクリックします。 30

  30. BLOBストレージ 作成 ⚫ 新規画面が表示されます。 ⚫ 【 ストレージ 】から【 Storage account

    】をクリックします。 31
  31. BLOBストレージ 作成 ⚫ ストレージ アカウントの作成画面が表示されます。 ⚫ [ プロジェクトの詳細 ]から以下値を設定し、さらに下にスクロールします。 32

    サブスクリプション:※任意※ リソースグループ:※作成したもの※
  32. BLOBストレージ 作成 ⚫ [ インスタンスの詳細 ]から以下値を設定し、【 確認および作成 】を クリックします。 33

    ストレージアカウント名:※任意※ 場所:※任意※ パフォーマンス:Standard アカウントの種類:StorageV2 パフォーマンス:ローカル冗長ストレージ アクセス層:ホット
  33. BLOBストレージ 作成 ⚫ 確認および作成画面では設定した内容が検証後、一覧表示されます。 ⚫ 内容を確認し、問題なければ【 作成 】をクリックします。 34

  34. BLOBストレージ 作成 ⚫ デプロイ画面が表示されますが数分で完了します。 ⚫ 【 リソースに移動 】をクリックするとストレージアカウント–概要画面に遷移します。 35

  35. BLOBストレージ 作成 ⚫ 次に実際にデータが格納されるBLOBのコンテナを作成します。 ⚫ [ Blob service ]欄から【 BLOB

    】をクリックします。 36
  36. BLOBストレージ 作成 ⚫ 上部【 コンテナー 】をクリックします 。 ⚫ 以下値を設定し、【 OK

    】をクリックします。 37 名前:※任意※ パブリックアクセスレベル:プライベート
  37. BLOBストレージ 作成 ⚫ しばらくすると通知欄で作成が成功した旨の表示がされます。 ⚫ 概要画面で作成したコンテナが表示されていることを確認します。 38

  38. IoT Hub Storage (BLOB) 今回のハンズオンの流れ 39 ② マイコンおよび プログラムの構築 温度センサ

    sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Stream Analytics
  39. Stream Analytics Job 作成 ⚫ Stream Analyticsを作成します。 ⚫ ダッシュボード画面から【 リソースの作成

    】をクリックします。 40
  40. Stream Analytics Job 作成 ⚫ 新規画面が表示されます。 ⚫ 【 分析 】から【

    Stream Analytics job 】をクリックします。 41
  41. Stream Analytics Job 作成 ⚫ 新しい Stream Analytics ジョブ画面が表示されます。 ⚫

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

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

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

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

    保存 】をクリックします。 46 コンシューマグループ:$Default イベントシリアル化形式:JSON エンコード:UTF-8 イベントの圧縮タイプ:None
  46. Stream Analytics Job - Input 作成 ⚫ しばらくすると作成と接続テストが実施され、成功された旨通知に表示されます。 ⚫ 入力で作成した項目が増えていることを確認します

    47
  47. Stream Analytics Job - Output 作成 ⚫ 概要画面に戻り、入力が1になっていることを確認します。 ⚫ 次に出力先を指定するため【

    出力 】をクリックします。 48
  48. Stream Analytics Job - Output 作成 ⚫ 出力画面が表示されます。 ⚫ 【

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

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

    Save 】をクリックします。 51 パスパターン:※空欄※ イベントシリアル化形式:JSON エンコード:UTF-8 フォーマット:Line separated
  51. Stream Analytics Job - Output 作成 ⚫ しばらくすると作成と接続テストが実施され、成功された旨通知に表示されます。 ⚫ 出力で作成した項目が増えていることを確認します。

    52
  52. Stream Analytics Job - Output 作成 ⚫ 概要画面に戻り、出力が1になっていることを確認します。 ⚫ 次に処理内容を指定するため【

    クエリ 】をクリックします。 53
  53. Stream Analytics Job - Query 作成 ⚫ クエリ画面が表示され、このジョブで実施する処理が記載されています。 ⚫ INTOにBLOBストレージ、FROMにIoT

    Hub、各エイリアスを設定します。 54 [YourOutputAilas] -> raw [YourInputAilas] -> sakuraio
  54. Stream Analytics Job - Query 作成 ⚫ 内容を変更したら【 保存 】をクリックします。

    ⚫ 変更を行う旨確認が表示されるので【 はい 】をクリックします。 55
  55. Stream Analytics Job - Query 作成 ⚫ すぐに完了するため概要画面に戻り、変更の反映を確認します。 ⚫ 後ほどデバイス動作が確認できたら実行するため、一旦このままにしておきます。

    56
  56. 57 sakura.ioの設定

  57. Webサービス連携 ① 今回のハンズオンの流れ 58 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

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

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

    会員IDが記載されたメールが送信され ます。 会員IDおよびパスワードは重要な情報となりま すので、漏れないよう大事に保管ください。 60 Title:会員登録完了のお知らせ [XXX00000] ─────────────────────────────────── このメッセージはさくらインターネット会員登録フォームより 自動送信されています。このメールに心当たりのない場合は support@sakura.ad.jpまでご連絡ください。 ─────────────────────────────────── さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) この度は、さくらインターネットに会員登録いただきまして誠に ありがとうございます。 以下の通り会員登録を受付ましたので、ご連絡させていただきます。 ============================================ ◎ 会員登録情報 会員ID : XXX00000 ご契約者名 : さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) 電子メール : XXX@XXX.XX.XX ============================================ ~~~以下省略~~~ https://secure.sakura.ad.jp/signup3/member-register/input.html
  60. sakura.io コントロールパネル ログイン ⚫ sakura.ioコントロールパネルにログインします。上記URLにアクセスします。 ⚫ 以下の画面で会員認証を求められるので、会員ID、パスワードを利用してログインします。 ※ログイン済みのセッションがある場合、この画面は省略されます。 61 https://secure.sakura.ad.jp/iot/

  61. 約款への同意 ⚫ 初めてコントロールパネルにログインすると、各種約款への同意を求められます。 ⚫ 内容をご確認のうえ、 【 同意する 】をクリックするとコントロールパネルにアクセスできます。 62

  62. コントロールパネルへのログイン ⚫ ログインが成功すると、以下のような画面に誘導されます。 ⚫ 何も作成されていない状態になります。 63

  63. プロジェクトの作成 ⚫ 初めはプロジェクトが無いため、新規にプロジェクトを作成する必要があります。 ⚫ プロジェクトを作成するには、まず【 プロジェクト追加 】をクリックします。 64

  64. プロジェクトの作成 ⚫ プロジェクトの追加画面に遷移します。 ⚫ [ 名称 ]欄に任意の名前を入力し、【 追加 】をクリックします。 ※ハンズオンでは他の参加者と重複しないよう、名前等の判別可能な情報を入れて作成してください

    65
  65. モジュールの登録 ⚫ プロジェクトが作成されました。次にモジュールの登録を行います。 ⚫ プロジェクトの【 詳細 】から、プロジェクトの詳細画面で【 モジュール登録 】をクリックします。 ※登録されているモジュールがない場合は案内文中のリンクからも登録画面に直接遷移できます。

    66
  66. 組み上げ済みキットの取り出し ⚫ 組み上げ済みキットを箱から取り出します 67 組み上げ済みキット

  67. モジュール登録(単品) ⚫ モジュールの追加画面に遷移します。自身のプロジェクトが選択されていることを確認のうえ、 モジュール記載の登録用ID、登録用パスワードおよび任意の名称を入力して、【 追加 】 をクリックします。 ※モジュールの追加には数秒かかります。 68 モジュール上面

    白ラベル表記
  68. モジュール登録(単品) ⚫ モジュール追加に成功すると[ モジュールを追加しました ]ダイアログが表示されるので、 【 モジュール一覧へ戻る 】ボタンをクリックしてプロジェクト詳細画面に戻ります。 ※ID/PASSが正しくない、もしくは登録済モジュールを追加しようとした場合は下記ダイアログが表示されます 69

    登録が成功した場合 登録が失敗した場合 登録用ID / 登録用パスワードのいずれかに誤りがあります、再度ご確認ください 別の会員IDで登録されています、過去登録した会員IDでログインし解除ください
  69. 【参考】モジュール登録(一括) ⚫ QRコードから読み取れる文字列を入力することで複数台を一括登録することも可能です。 ⚫ 【 一括 】タブをクリックし、QRコードから読み取れる値を入力し、【 追加 】をクリックします。 ※モジュールの追加には数秒かかります。

    ※登録名はSERの値になります。 70 モジュール上面 白ラベル表記
  70. モジュール登録 ⚫ モジュールを登録しました。表示されているモジュールIDは一意のものであり、届いたデータ の送信元判別や、デバイスへのデータ送信の際に使用します。 ※モジュールIDは後ほど使いますのでメモしてください。 71 メモ情報あり

  71. 連携サービスの設定 ⚫ 最後に外部への連携サービスを設定します。プロジェクト詳細画面で【 連携サービス 】を クリックし、その後【 連携サービス追加 】をクリックします。 72

  72. 連携サービスの設定(Azure IoT Hub) ⚫ 連携サービスの選択画面に遷移します。 ⚫ 今回はIoT Hub連携を作成しますので、【 Azure IoT

    Hub 】をクリックします。 73
  73. 連携サービスの設定(Azure IoT Hub) ⚫ 以下3つの項目を設定し、【 作成 】をクリックします。 74 名前:※任意※ Shared

    Access Key(接続文字): ※作成したAzure IoT Hub参照※ Azure IoT デバイス名 プレフィックス: ※任意※
  74. 連携サービスの設定(Azure IoT Hub) ⚫ 参照するのはAzure IoT Hubで作成したポリシーの接続文字列となります。 75

  75. ⚫ 連携サービスが追加されました。 連携サービスの設定(Azure IoT Hub) 76

  76. 連携サービスの設定(WebSocket) ⚫ 再び連携サービスの選択画面に遷移します。 ⚫ 動作確認のためWebSocketを作成しますので、【 WebSocket 】をクリックします。 77

  77. 連携サービスの設定(WebSocket) ⚫ WebSocketの作成には特に設定事項はありません。 ⚫ [ 名前 ]欄に任意の名前を入力し、【 作成 】をクリックします。 78

  78. 連携サービスの設定(WebSocket) ⚫ 連携サービスが追加されました。この後で使用するWebSocketのURLを確認します。 ⚫ 作成した連携サービスの【 】をクリックします。 79

  79. 連携サービスの設定(WebSocket) ⚫ WebSocketを設定しました、これでコントロールパネルでの準備は完了です。 ※WebSocketのURLは後ほど使用しますのでメモしてください。 80

  80. 81 マイコンおよびプログラム構築

  81. Webサービス連携 ① 今回のハンズオンの流れ 82 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub
  82. 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
  83. Arduino IDEのセットアップ ⚫ 金額を選択するか(寄付する場合)、【 JUST DOWNLOAD 】からダウンロードします。 84

  84. Arduino IDEのセットアップ ⚫ インストールはデフォルト推奨、ドライバーについても全てインストールします。 ※本スライド記載の画像はWindowsの場合です。 85 約款同意 ドライバ選択 インストールフォルダ選択

  85. Grove ベースシールドの取り付け ⚫ Grove ベースシールドを取り出し、ピン位置に注意しながら組み上げ済みキットに 取り付けます。 86 組み上げ済みキット Grove ベースシールド

  86. ⚫ Arduino IDEを起動し、起動が完了したらArduino UnoにACアダプタと USBケーブルを図のように接続します。 sakura.ioモジュールの取り付け 87 コンセントへ パソコンへ (USB

    Type-A)
  87. Arduino IDEのセットアップ ⚫ 上部メニューバーからボードと、シリアルポートを設定します。 ボード:[ ツール ]→[ ボード:”XXX” ]から【 Arduino/Genuino

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

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

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

    FirmwareUpdate 】を 選択し、【 】クリックでスケッチを書き込みます。[ ツール ]→ 【 シリアルモニタ 】 もしくは【 】クリックでアップデート状況を確認します。 ⚫ 現在のバージョン情報と比較し、新しいファームウェアが提供されている場合は アップデートを実行します。 91 ※PCからの給電が不安定/不足している場合は [ Update Failure ] と表示され、アップデートに 失敗する場合があります。その場合、電源アダプタを接続し、再度スケッチを書き込みます。 新しいファームウェアが存在する場合 最新のファームウェアが適用されている場合
  91. sakura.ioモジュールの取り外し ⚫ マイコンとセンサー間を配線するため、キットから、ACアダプタとUSBケーブルを取り外します。 92

  92. ⚫ 本来、センサやLEDといったモジュールはそれぞれ繋ぐべきピンが決まっています。 ⚫ モジュール本体には一般的に各ピンに接続先が明記されています。 Groveの場合、コネクタが共通規格になっており、意識しなくとも扱うことができます。 Groveについて 93 温度センサ Variable Color

    LED ピンアサインが記載
  93. 温度センサとLEDの繋ぎ込み ⚫ 図に従い、Groveケーブルを使用して温度センサおよびLEDを配線します。 ※LED自体の外観に違いはありません 94 D7:LED(赤) D6:LED(緑) D5:LED(青) ※モジュールの貼付シールを参照 A0:温度センサ

    SIG SIG SIG Variable Color LED Variable Color LED Variable Color LED
  94. sakura.ioモジュールの取り付け ⚫ 配線が終わったら、ACアダプタとUSBケーブルを再度接続します。 ⚫ Arduino IDEを起動し、ACアダプタとUSBケーブルを図のように接続します。 95 コンセントへ パソコンへ (USB

    Type-A)
  95. 試験用プログラムの流し込み ⚫ 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 】でコピーします
  96. 試験用プログラムの流し込み ⚫ [ ファイル ]→ 【 新規ファイル 】で新しいスケッチを表示し、以下URLの内容をスケッチ にコピー&ペーストします。 【

    】をクリックし、書き込みが終わったら【 】クリックでシリアル 値、Temperature情報に加え、送信キュー情報が取得できていることを確認します。 97 ※問題があった場合、オレンジ色のエラーが表示されます。 https://github.com/sakuraio/handson-sample/blob/reform/azure/part1/arduino-azure-part1.ino
  97. デバイスから送信されたデータの確認 ⚫ sakura.ioでは連携サービスの一つであるWebSocketで、デバイスから送信された データを受信できているかを確認できます。 ⚫ プロジェクトの詳細から作成したWebSocketの【 】をクリックします。 98

  98. デバイスから送信されたデータの確認 ⚫ サービス連携の編集画面下部に、デバイスから送信したデータがリアルタイム表示されます。 ⚫ 簡易表示モードではモジュールから受け取ったデータを以下のように確認できます。 99 モジュール: データを送信した モジュールのID チャンネル:

    データが格納された チャンネル番号 時刻: データがモジュールのキューに 格納された時刻のタイムスタンプ 値: 送信された値 型: データの型式
  99. デバイスから送信されたデータの確認 ⚫ 【 詳細表示モードに切り替え 】をクリックすると詳細表示モードに遷移します。 ⚫ モジュールは同一ですが、データの内容によりタイプやペイロードが異なります。 100 チャンネルごとの最終到着データ: 各チャンネルに届いた最終の

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

  101. 今回のハンズオンの流れ 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が 停止されているため 実際には格納されない
  102. Stream Analytics Job 作成ジョブの実行 ⚫ ダッシュボード画面から、自身が作成したStream Analytics Jobのリソースを クリックします。 103

  103. Stream Analytics Job 作成ジョブの実行 ⚫ 作成したStream Analytics ジョブ - 概要画面上部の

    【 開始 】をクリックします。 104
  104. Stream Analytics Job 作成ジョブの実行 ⚫ Start job画面で起動タイミングを確認されるため、【 Now 】が選択されて いることを確認のうえ【

    Start 】をクリックします。 ⚫ 起動に成功すると通知欄にその旨が表示されます。 105
  105. Stream Analytics Job 作成ジョブの実行 ⚫ 起動が成功すると概要画面の表示が[ ジョブを実行中です ]に変化します。 ⚫ 画面下部のモニタではデータがIoT

    Hubから取り込まれ(Input)、BLOB ストレージに格納される(Output)されている状況が確認できます。 106
  106. BLOBストレージ内データの確認 ⚫ ダッシュボード画面から、自身が作成したストレージアカウントのリソースを クリックします。 107

  107. BLOBストレージ内データの確認 ⚫ [ Blob service ]欄から【 BLOB 】をクリックします。 ⚫ 作成したコンテナーをクリックします。

    108
  108. BLOBストレージ内データの確認 ⚫ 一覧から任意の行の【 ・・・ 】をクリックし、【 BLOBの表示/編集 】を クリックします。 109

  109. BLOBストレージ内データの確認 ⚫ 指定したファイルの中身を確認することができます。 ⚫ 必要に応じてダウンロードすることもできます。 110

  110. 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データ
  111. まとめ 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に連携
  112. 113 Device Explorerを使った sakura.ioとの接続確認

  113. 【参考】Device Explorerを使ったsakura.ioとの接続確認 114 ⚫ IoT Hub利用にあたり、ツールとしてDeviceExplorerが提供されています。 ⚫ 装置の登録や、装置からのメッセージ管理、装置へのメッセージ送信ができます。 https://github.com/Azure/azure-iot-sdk-csharp/releases

  114. 【参考】Device Explorerを使ったsakura.ioとの接続確認 115 ⚫ Configurationタブの[ IoT Hub Connection String ]にIoT

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

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

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

  118. 最後に ~sakura.io~ ⚫ ハンズオンに使用したsakura.ioモジュールは必要に応じて登録を解除します。 ⚫ プロジェクトの【 詳細 】から、プロジェクト詳細画面で対象のモジュールの【 】を クリックします。

    119
  119. 最後に ~sakura.io~ ⚫ モジュールの設定画面に遷移します。下部の 【 登録解除 】 ボタンをクリックします。 120

  120. 最後に ~sakura.io~ ⚫ 登録解除実行を確認されます。問題ない場合は再度 【 登録解除 】 をクリックします。 モジュールの削除には数秒かかります。 ⚫

    削除が完了すると、プロジェクトから該当モジュールの表示が消えていることを確認できます。 121
  121. 最後に ~sakura.io~ ⚫ 次は連携サービスとともにプロジェクトを削除します。 ⚫ プロジェクトの【 詳細 】から、プロジェクト詳細画面で【 削除 】をクリックします。

    122
  122. 最後に ~sakura.io~ ⚫ 削除実行を確認されます。問題ない場合は再度 【 削除 】 をクリックします。 ⚫ 削除が完了すると、コントロールパネル上から該当プロジェクトの表示が消えていることを確

    認できます。 123
  123. ⚫ ハンズオン後も課金されたり、無償利用分を消費しないよう作成したリソースを削除します。 ⚫ ダッシュボード画面から【 リソースグループ 】をクリックします。 最後に ~Microsoft Azure~ 124

  124. ⚫ リソースグループ画面で自身が使用したリソースグループの【 ・・・ 】 から、 【 リソースグループの削除 】をクリックします。 最後に ~Microsoft

    Azure~ 125
  125. ⚫ リソースグループ名を確認のため入力し、問題がなければ【 削除 】をクリックします。 最後に ~Microsoft Azure~ 126

  126. 最後に 127 以上でハンズオンにおける作業は全て終了となります。 お疲れ様でした!

  127. 最後に 128 さくらインターネットでは、「さくらクラブ」としてハンズオン等の イベントをともに開催いただける仲間(部員)を募集しています。 (テーマはIoTに限らずクラウドやVPS、スタートアップ系ネタもOK!) ご興味があれば、Come and join us &

    Feel free to contact me! 連絡先 : sakura-club@sakura.ad.jp さくらクラブ : http://www.slideshare.net/MasayaHayashi/lt20151224
  128. 129 そこに、さくら