Slide 1

Slide 1 text

sakura.io体験ハンズオン IoT ALGYAN(あるじゃん)共催 Part1 Azure IoT Hubと繋げてみよう 2019/3/25 (C) Copyright 1996-2018 SAKURA Internet Inc. さくらインターネット株式会社 IoTチーム 西田 有騎 だれもが、データを活かせる世の中へ。

Slide 2

Slide 2 text

2 はじめに

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

ハンズオンを円滑に進めるために 4 ココ!!

Slide 5

Slide 5 text

本ハンズオンの目的とお願い ⚫ 本ハンズオンは sakura.io を使用し、組込み、Web/アプリ開発、それぞれのスキルセッ トを大きく超えることなく、Internet of Things(IoT) に携わることができることをご体験 いただくものです。 ⚫ そのため、組み込み系またはWeb/アプリ系のどちらか、または両方わからないという方に もご参加いただくことができます。 ⚫ 今回は1人に1つのキットをご用意しています。もしもご自身の知識分野で、近くの方の フォローができそうだなと思われましたら、積極的にサポートしあって進めていただければと 思います。 ⚫ 本ハンズオンの内容は一部有償サービスが含まれます。検証される場合はその点を ご了承のうえ実施いただき、使用後は停止させる等のご対応をお願いします。 5

Slide 6

Slide 6 text

Webサービス連携 ① 今回のハンズオンの流れ 7 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub

Slide 7

Slide 7 text

今回のワークショップでご提供するもの 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モジュール (アンテナ取付済み)

Slide 8

Slide 8 text

アジェンダ 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

Slide 9

Slide 9 text

10 Webサービス連携

Slide 10

Slide 10 text

Webサービス連携 ① 今回のハンズオンの流れ 11 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub

Slide 11

Slide 11 text

Microsoft Azure アカウント作成 ⚫ Microsoft Azureには無料利用が可能なサービスプランや一定額の クレジットが提供されます。 ⚫ 上記URLにアクセスし、【 無料で始める 】をクリックします。 12 https://azure.microsoft.com/ja-jp/free/

Slide 12

Slide 12 text

Microsoft Azure アカウント作成 ⚫ 既にMicrosoftのアカウントを持っていたり、作る場合によって手順は異なります。 ⚫ 画面の案内に従いご自身にあった手順でアカウントをご用意ください。 13

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Microsoft Azure ダッシュボード画面説明 ⚫ 【 新しいダッシュボード 】をクリックするとデフォルトのダッシュボードとは別に作成 することができます。 ⚫ 【 すべてのリソース 】タイルを追加したり、作成したサービスをダッシュボードにピン 留めしておくと、すぐに作成したリソースにアクセスできます。 17

Slide 17

Slide 17 text

Stream Analytics Storage (BLOB) 今回のハンズオンの流れ 18 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① IoT Hub

Slide 18

Slide 18 text

IoT Hub 作成 ⚫ IoT Hubを作成します。 ⚫ ダッシュボード画面から【 リソースの作成 】をクリックします。 19

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

IoT Hub 作成 ⚫ IoT Hub – Basics画面では必要な設定を選択します。 ⚫ 下記設定を行い、【 次へ: サイズとスケール 】をクリックします。 21 Subscription:※任意※ Resource Group:※新規作成※ Region:※任意※ IoT Hub Name:※任意※

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

IoT Hub 作成 ⚫ IoT Hub – Review + create画面では選択内容が表示されます。 ⚫ 確認のうえ、問題なければ【 作成 】をクリックします。 23

Slide 23

Slide 23 text

IoT Hub 作成 ⚫ デプロイ画面が表示されますが数分で完了します。 ⚫ 【 リソースに移動 】をクリックするとIoT Hub - 概要画面に遷移します。 24

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

IoT Hub 共有アクセスポリシー作成 ⚫ [ 共有アクセスポリシーを追加 ]画面が右部に表示されます。 ⚫ 任意の名称を記入し、アクセス許可の全てをチェックし【 作成 】をクリックします。 27 レジストリ読み取り:登録デバイス情報の取得 レジストリ書き込み:デバイスの登録・情報変更 サービス接続:サービス向けエンドポイントへの接続 デバイス接続:デバイス向けエンドポイントへの接続 それぞれのアクセス許可の意味は以下のとおり。

Slide 27

Slide 27 text

IoT Hub 共有アクセスポリシー作成 ⚫ しばらくすると通知欄で更新が成功した旨の表示がされます。 ⚫ 作成したポリシーをクリックし、共有アクセスキー欄にある [ 接続文字列 - プライマリキー ]文字列をコピーします。 ※文字列は後ほど使用します 28 メモ情報あり

Slide 28

Slide 28 text

IoT Hub Stream Analytics 今回のハンズオンの流れ 29 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Storage (BLOB)

Slide 29

Slide 29 text

BLOBストレージ 作成 ⚫ IoT Hubで受信したデータを格納するBLOBストレージを作成します。 ⚫ ダッシュボード画面から【 リソースの作成 】をクリックします。 30

Slide 30

Slide 30 text

BLOBストレージ 作成 ⚫ 新規画面が表示されます。 ⚫ 【 ストレージ 】から【 Storage account 】をクリックします。 31

Slide 31

Slide 31 text

BLOBストレージ 作成 ⚫ ストレージ アカウントの作成画面が表示されます。 ⚫ [ プロジェクトの詳細 ]から以下値を設定し、さらに下にスクロールします。 32 サブスクリプション:※任意※ リソースグループ:※作成したもの※

Slide 32

Slide 32 text

BLOBストレージ 作成 ⚫ [ インスタンスの詳細 ]から以下値を設定し、【 確認および作成 】を クリックします。 33 ストレージアカウント名:※任意※ 場所:※任意※ パフォーマンス:Standard アカウントの種類:StorageV2 パフォーマンス:ローカル冗長ストレージ アクセス層:ホット

Slide 33

Slide 33 text

BLOBストレージ 作成 ⚫ 確認および作成画面では設定した内容が検証後、一覧表示されます。 ⚫ 内容を確認し、問題なければ【 作成 】をクリックします。 34

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

BLOBストレージ 作成 ⚫ 上部【 コンテナー 】をクリックします 。 ⚫ 以下値を設定し、【 OK 】をクリックします。 37 名前:※任意※ パブリックアクセスレベル:プライベート

Slide 37

Slide 37 text

BLOBストレージ 作成 ⚫ しばらくすると通知欄で作成が成功した旨の表示がされます。 ⚫ 概要画面で作成したコンテナが表示されていることを確認します。 38

Slide 38

Slide 38 text

IoT Hub Storage (BLOB) 今回のハンズオンの流れ 39 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Azure IoT Hub Webサービス連携 ① Stream Analytics

Slide 39

Slide 39 text

Stream Analytics Job 作成 ⚫ Stream Analyticsを作成します。 ⚫ ダッシュボード画面から【 リソースの作成 】をクリックします。 40

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

Stream Analytics Job - Input 作成 ⚫ ジョブが作成された旨通知欄に表示されたら【 リソースに移動 】をクリックします。 ⚫ 入力元を指定するため[ ジョブトポロジ ]から【 入力 】をクリックします。 43

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Stream Analytics Job - Input 作成 ⚫ さらに以下値を設定します。 ⚫ 設定が完了したら【 保存 】をクリックします。 46 コンシューマグループ:$Default イベントシリアル化形式:JSON エンコード:UTF-8 イベントの圧縮タイプ:None

Slide 46

Slide 46 text

Stream Analytics Job - Input 作成 ⚫ しばらくすると作成と接続テストが実施され、成功された旨通知に表示されます。 ⚫ 入力で作成した項目が増えていることを確認します 47

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

Stream Analytics Job - Output 作成 ⚫ さらに以下値を設定します。 ⚫ 設定が完了したら【 Save 】をクリックします。 51 パスパターン:※空欄※ イベントシリアル化形式:JSON エンコード:UTF-8 フォーマット:Line separated

Slide 51

Slide 51 text

Stream Analytics Job - Output 作成 ⚫ しばらくすると作成と接続テストが実施され、成功された旨通知に表示されます。 ⚫ 出力で作成した項目が増えていることを確認します。 52

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

Stream Analytics Job - Query 作成 ⚫ クエリ画面が表示され、このジョブで実施する処理が記載されています。 ⚫ INTOにBLOBストレージ、FROMにIoT Hub、各エイリアスを設定します。 54 [YourOutputAilas] -> raw [YourInputAilas] -> sakuraio

Slide 54

Slide 54 text

Stream Analytics Job - Query 作成 ⚫ 内容を変更したら【 保存 】をクリックします。 ⚫ 変更を行う旨確認が表示されるので【 はい 】をクリックします。 55

Slide 55

Slide 55 text

Stream Analytics Job - Query 作成 ⚫ すぐに完了するため概要画面に戻り、変更の反映を確認します。 ⚫ 後ほどデバイス動作が確認できたら実行するため、一旦このままにしておきます。 56

Slide 56

Slide 56 text

57 sakura.ioの設定

Slide 57

Slide 57 text

Webサービス連携 ① 今回のハンズオンの流れ 58 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub

Slide 58

Slide 58 text

sakura.io コントロールパネルの考え方 59 プロジェクトC プロジェクトB プロジェクト モジュール3 ☑ データストアプラン 有償版/無償版 ☑ 簡易位置情報提供 利用する/しない ☑ ファイル配信 ファイル1、ファイル2... 連携サービス3 モジュール / 連携サービス プロジェクトに対して複数登録可能 オプションサービス プロジェクトに対して1つ/1セット設定可能 モジュール2 連携サービス2 モジュール1 uAAAAAAAAAA 連携サービス1 WebSocket ⚫ sakura.ioは【 プロジェクト 】という単位で管理します。 ⚫ プロジェクトには【 モジュール 】【 連携サービス 】を複数紐付けることができます。 ⚫ 各種【 オプションサービス 】はプロジェクトに対して1つもしくは1セット設定できます。

Slide 59

Slide 59 text

さくらインターネット 会員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

Slide 60

Slide 60 text

sakura.io コントロールパネル ログイン ⚫ sakura.ioコントロールパネルにログインします。上記URLにアクセスします。 ⚫ 以下の画面で会員認証を求められるので、会員ID、パスワードを利用してログインします。 ※ログイン済みのセッションがある場合、この画面は省略されます。 61 https://secure.sakura.ad.jp/iot/

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

モジュール登録(単品) ⚫ モジュール追加に成功すると[ モジュールを追加しました ]ダイアログが表示されるので、 【 モジュール一覧へ戻る 】ボタンをクリックしてプロジェクト詳細画面に戻ります。 ※ID/PASSが正しくない、もしくは登録済モジュールを追加しようとした場合は下記ダイアログが表示されます 69 登録が成功した場合 登録が失敗した場合 登録用ID / 登録用パスワードのいずれかに誤りがあります、再度ご確認ください 別の会員IDで登録されています、過去登録した会員IDでログインし解除ください

Slide 69

Slide 69 text

【参考】モジュール登録(一括) ⚫ QRコードから読み取れる文字列を入力することで複数台を一括登録することも可能です。 ⚫ 【 一括 】タブをクリックし、QRコードから読み取れる値を入力し、【 追加 】をクリックします。 ※モジュールの追加には数秒かかります。 ※登録名はSERの値になります。 70 モジュール上面 白ラベル表記

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

連携サービスの設定(Azure IoT Hub) ⚫ 以下3つの項目を設定し、【 作成 】をクリックします。 74 名前:※任意※ Shared Access Key(接続文字): ※作成したAzure IoT Hub参照※ Azure IoT デバイス名 プレフィックス: ※任意※

Slide 74

Slide 74 text

連携サービスの設定(Azure IoT Hub) ⚫ 参照するのはAzure IoT Hubで作成したポリシーの接続文字列となります。 75

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

Webサービス連携 ① 今回のハンズオンの流れ 82 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED IoT Hub Stream Analytics Storage (BLOB) Azure IoT Hub

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

Arduino IDEのセットアップ ⚫ 金額を選択するか(寄付する場合)、【 JUST DOWNLOAD 】からダウンロードします。 84

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

Arduino IDEのセットアップ ⚫ 上部メニューバーからボードと、シリアルポートを設定します。 ボード:[ ツール ]→[ ボード:”XXX” ]から【 Arduino/Genuino Uno 】を選択 シリアルポート:[ ツール ]→[ シリアルポート ]から【 COMx (Arduino/Genuino Uno) 】を選択 ※Mac環境の場合はCOMポートではなく、【 /dev/… (Arduino/Genuino Uno) 】を選択ください ※うまく認識しない場合は、USBを挿し直し、Arduino IDEを再起動を試してください 88 ボードの選択 シリアルポートの選択

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

sakura.ioモジュールの取り外し ⚫ マイコンとセンサー間を配線するため、キットから、ACアダプタとUSBケーブルを取り外します。 92

Slide 92

Slide 92 text

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

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

試験用プログラムの流し込み ⚫ 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 // 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 】でコピーします

Slide 96

Slide 96 text

試験用プログラムの流し込み ⚫ [ ファイル ]→ 【 新規ファイル 】で新しいスケッチを表示し、以下URLの内容をスケッチ にコピー&ペーストします。 【 】をクリックし、書き込みが終わったら【 】クリックでシリアル 値、Temperature情報に加え、送信キュー情報が取得できていることを確認します。 97 ※問題があった場合、オレンジ色のエラーが表示されます。 https://github.com/sakuraio/handson-sample/blob/reform/azure/part1/arduino-azure-part1.ino

Slide 97

Slide 97 text

デバイスから送信されたデータの確認 ⚫ sakura.ioでは連携サービスの一つであるWebSocketで、デバイスから送信された データを受信できているかを確認できます。 ⚫ プロジェクトの詳細から作成したWebSocketの【 】をクリックします。 98

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

デバイスから送信されたデータの確認 ⚫ 【 詳細表示モードに切り替え 】をクリックすると詳細表示モードに遷移します。 ⚫ モジュールは同一ですが、データの内容によりタイプやペイロードが異なります。 100 チャンネルごとの最終到着データ: 各チャンネルに届いた最終の Valueを表示 クリックでログ出力を 開始/停止 タイプ: プラットフォームからの内容に応じて、 いくつかの種類に分かれる ・channels :モジュールからのデータ ・connection :接続の開始/終了 ・location :簡易位置情報 ・keepalive :WebSocketセッション確認 ペイロード: 受け取ったデータのpayload部 が表示 時刻: 詳細表示モードではプラットフォーム で該当のメッセージを受け取ったタイ ムスタンプ

Slide 100

Slide 100 text

101 動作確認

Slide 101

Slide 101 text

今回のハンズオンの流れ 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が 停止されているため 実際には格納されない

Slide 102

Slide 102 text

Stream Analytics Job 作成ジョブの実行 ⚫ ダッシュボード画面から、自身が作成したStream Analytics Jobのリソースを クリックします。 103

Slide 103

Slide 103 text

Stream Analytics Job 作成ジョブの実行 ⚫ 作成したStream Analytics ジョブ - 概要画面上部の 【 開始 】をクリックします。 104

Slide 104

Slide 104 text

Stream Analytics Job 作成ジョブの実行 ⚫ Start job画面で起動タイミングを確認されるため、【 Now 】が選択されて いることを確認のうえ【 Start 】をクリックします。 ⚫ 起動に成功すると通知欄にその旨が表示されます。 105

Slide 105

Slide 105 text

Stream Analytics Job 作成ジョブの実行 ⚫ 起動が成功すると概要画面の表示が[ ジョブを実行中です ]に変化します。 ⚫ 画面下部のモニタではデータがIoT Hubから取り込まれ(Input)、BLOB ストレージに格納される(Output)されている状況が確認できます。 106

Slide 106

Slide 106 text

BLOBストレージ内データの確認 ⚫ ダッシュボード画面から、自身が作成したストレージアカウントのリソースを クリックします。 107

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

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

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

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データ

Slide 111

Slide 111 text

まとめ 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に連携

Slide 112

Slide 112 text

113 Device Explorerを使った sakura.ioとの接続確認

Slide 113

Slide 113 text

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

Slide 114

Slide 114 text

【参考】Device Explorerを使ったsakura.ioとの接続確認 115 ⚫ Configurationタブの[ IoT Hub Connection String ]にIoT Hubで 生成した接続文字列を入力し、【 Update 】をクリックします。 ⚫ 接続が成功された旨のメッセージが表示され、該当のIoT Hubと接続されます。

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

【参考】Device Explorerを使ったsakura.ioとの接続確認 117 ⚫ Message to Deviceタブの[ Device ID ]でデータを送信したいデバイス を選択し、[ Message ]に送信したいJSONデータを入力のうえ【 Send 】 をクリックすると、Web環境を構築することなくデバイス動作のテストが可能です。

Slide 117

Slide 117 text

118 最後に

Slide 118

Slide 118 text

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

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

最後に ~sakura.io~ ⚫ 登録解除実行を確認されます。問題ない場合は再度 【 登録解除 】 をクリックします。 モジュールの削除には数秒かかります。 ⚫ 削除が完了すると、プロジェクトから該当モジュールの表示が消えていることを確認できます。 121

Slide 121

Slide 121 text

最後に ~sakura.io~ ⚫ 次は連携サービスとともにプロジェクトを削除します。 ⚫ プロジェクトの【 詳細 】から、プロジェクト詳細画面で【 削除 】をクリックします。 122

Slide 122

Slide 122 text

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

Slide 123

Slide 123 text

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

Slide 124

Slide 124 text

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

Slide 125

Slide 125 text

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

Slide 126

Slide 126 text

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

Slide 127

Slide 127 text

最後に 128 さくらインターネットでは、「さくらクラブ」としてハンズオン等の イベントをともに開催いただける仲間(部員)を募集しています。 (テーマはIoTに限らずクラウドやVPS、スタートアップ系ネタもOK!) ご興味があれば、Come and join us & Feel free to contact me! 連絡先 : [email protected] さくらクラブ : http://www.slideshare.net/MasayaHayashi/lt20151224

Slide 128

Slide 128 text

129 そこに、さくら