SlideShare a Scribd company logo
sakura.io ハンズオン
2017/6/28
(C) Copyright 1996-2017 SAKURA Internet Inc
さくらインターネット株式会社 IoT Platform Team
4
はじめに
本ワークショップの目的
5
1. 本ハンズオンはsakura.ioを使用し、組込み系エンジニアおよび
Web/アプリ開発系のエンジニアがご自身のスキルセットを
大きく超えることなく、Internet of Things(IoT)に挑戦できることを
体験いただくものです。
2. そのため各章内で技術的な詳細は極力省略しております。
3. 今回は1人1つワークショップキットをご用意しておりますが、
組込みやWeb/アプリ開発に詳しい方がいらっしゃいましたら、
ご不明点を積極的にフォローしあって進めていただければと思います。
今回のハンズオンの流れ
228
マイコンおよび
プログラムの構築
Webサービス連携
(Microsoft Azure)
温湿度センサ
(HDC1000)
sakura.ioの設定
さくらの通信
モジュール
IoT Hub
マイコン(Arduino Uno)
Stream
Analytics
BLOB
PowerBI
※参考
Agenda
229
1. マイコンおよびプログラムの構築
₋ マイコン(Arduino)による開発環境の準備
₋ 温湿度センサおよびさくらの通信モジュールの繋ぎ込み
₋ 試験用プログラムの流し込み
2. sakura.ioの設定
₋ プロジェクトの作成
₋ さくらの通信モジュールの登録
3. Webへのデータ連携(Microsoft Azure)
₋ Azure IoT Hubリソース&セキュリティポリシー作成
₋ sakura.io連携サービスの設定
₋ ストレージアカウント&Blobコンテナー作成
₋ Stream Analyticsリソース&クエリ作成
230
マイコンおよび
プログラムの構築
今回のハンズオンの流れ
231
マイコンおよび
プログラムの構築
Webサービス連携
(Microsoft Azure)
温湿度センサ
(HDC1000)
sakura.ioの設定
さくらの通信
モジュール
IoT Hub
マイコン(Arduino Uno)
Stream
Analytics
BLOB
PowerBI
※参考
今回のワークショップでご提供するもの
232
ジャンパーコードさくらの通信モジュール(アンテナ付)
+Arduino用シールド&Arduino Uno Rev3
USB2.0
ケーブル(A-B)
12W級 9V-1.3A
DCアダプタ
ブレッドボード
人感センサ
(SB412A)
照度センサ
(GL5537-2)
温湿度センサ
(HDC1000 or SHT31)
各種抵抗
※必要に応じてご提供
タクトスイッチ
※必要に応じてご提供
抵抗入りLED
※必要に応じてご提供
本日は使用しません
Arduino IDEのセットアップ
233
https://www.arduino.cc/en/Main/Software から開発環境(Arduino IDE)を入手します。
2017/6/8時点での最新版は【1.8.3】となります。
Windowsは【Windows Installer】、Macは【 Mac OS X 10.7 Lion or newer】を選択します。
Arduino IDEのセットアップ
234
該当の金額を選択するか(寄付する場合)、もしくは【JUST DOWNLOAD】にてダウンロードします。
Arduino IDEのセットアップ
235
インストールはデフォルト推奨、ドライバーについても全てインストールします。
#本スライド記載の画像はWindowsの場合になります。
Arduino IDEのセットアップ
236
Arduino IDEが起動したら、Arduino本体をPCに接続します。 上部メニューバーから以下2つを設定します。
ボード:[ツール]→[ボード:”XXX”]から【 Arduino/Genuino Uno 】を選択します。
シリアルポート:[ツール]→[シリアルポート]から【~~~(Arduino/Genuino Uno)】となるものを選択します。
ボードの選択 シリアルポートの選択
マイコン(Arduino)の準備
237
[ファイル]→[スケッチ例]→[01.Basics]→[Blink]を選択し、Blinkスケッチを表示します。
【→】をクリックしてスケッチをマイコンに書き込み、該当箇所のLEDが点滅状態になることを確認します。
何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。
さくらの通信モジュールの取り付け
238
ArduinoをPCから外し、図に示すようにシールドとArduinoのピン穴と合致するようにはめ込みます。
ライブラリの取得(温湿度センサ-HDC1000)
239
[ファイル]→ [スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、
右上検索窓から【hdc1000】を検索すると、[HDC1000 by Yuichi Tateno]がヒットします。
インストールをクリックすると該当ライブラリが取り込まれ、[INSTALLED]が表示されます。
ライブラリの取得(SakuraIO)
241
[ファイル]→ [スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、
右上検索窓から【sakuraio】を検索すると、[SakuraIO by SAKURA Internet Inc.]がヒットします。
最新のVer.を選択のうえインストールをクリックすると該当ライブラリが取り込まれ、[INSTALLED]が表示されます。
FirmwareUpdate.ino
242
[ファイル]→ [スケッチ例]→[SakuraIO]→[FirmwareUpdate]を選択し、FirmwareUpdateスケッチを表示します。
【→】をクリックし、[ツール]→[シリアルモニタ]より通信モジュールのファームウェアアップデート状況を確認します。
現在のVersion情報と比較し、新しいファームウェアが提供されている場合にはアップデートを実行します。
新しいファームウェアが存在する場合 最新のファームウェアが適用されている場合
ブレッドボードについて
243
ブレッドボードは場所によって接続されている場所が異なります。
下記の繋がっている部分を意識して配線を行ってください。
温湿度センサ(HDC1000/SHT31)の繋ぎ込み
244
図に従い、温湿度センサの向きに注意しながら配線します。(実際にはArduinoシールドに対して配線します)
ブレッドボード側は色で明示された位置であれば、自由に接続しても問題ありません。
温湿度センサ側のRDY/ADRピンは今回は使用しないため、何も配線しません。
GND
SDA
SCL
3.3V
<凡例>
GND
SCL
SDA
3.3V
温湿度センサの動作確認
245
[ファイル]→[スケッチ例]→[HDC1000]→[hdc1000]を選択し、hdc1000スケッチを表示します。
【→】をクリックし、[ツール]→[シリアルモニタ]よりTemperature&Humidity情報が取得できることを確認します。
何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。
試験用プログラムの流し込み
246
[ファイル]→ [スケッチ例]→[SakuraIO]→[HDC1000]を選択し、HDC1000スケッチを表示します。
【→】をクリックし、[ツール]→[シリアルモニタ]より「Waiting to come online」表記の後、
カウント値、Temperature、Humidityに加え、Available(キューイング可能なチャンネル数)と
Queued(キューで送信待ちになっているチャンネル数)が表示されることを確認します。
247
sakura.ioの設定
今回のハンズオンの流れ
248
マイコンおよび
プログラムの構築
Webサービス連携
(Microsoft Azure)
温湿度センサ
(HDC1000)
sakura.ioの設定
さくらの通信
モジュール
IoT Hub
マイコン(Arduino Uno)
Stream
Analytics
BLOB
PowerBI
※参考
sakura.io コントロールパネル ログイン
249
sakura.io コントロールパネル(https://secure.sakura.ad.jp/iot/)にログインします。
Googleにて「さくらインターネット iot 開発者」を検索し、開発者向けページの下記ボタンからもアクセスします。
コントロールパネルへのログイン
250
既にログイン済みのセッションがない場合、以下画面にて会員認証を求められます。
会員ID、パスワードを利用してログインします。
プロジェクトC
プロジェクトB
sakura.ioコントロールパネルにおける考え方
252
sakura.ioでは【プロジェクト】という単位で大枠を構成し、プロジェクト内に複数の【通信モジュール】、
【連携サービス】を紐付けていきます。 【データストア】や簡易位置情報、ファイル配信といった
【オプションサービス】はプロジェクトに対して一つもしくは1セット設定することができます。
プロジェクトA
通信モジュール1
uAAAAAAAAAA
通信モジュール2
uBBBBBBBBBB
通信モジュール3
uCCCCCCCCCC
データストア
Light/Standard/…
簡易位置情報
ON/OFF
連携サービス1
WebSocket
連携サービス2
Outgoing Webhook
ファイル配信
File1/File2/…
連携サービス3
AWS IoT
プロジェクトに対して
複数紐付け可能
プロジェクトに対して
単一(1セット)設定可能
プロジェクトに対して
複数紐付け可能
約款への同意
253
初めてコントロールパネルにログインした場合、各種約款への同意を求められます。
内容をご確認いただいたうえで、[✓同意する]をクリックするとコントロールパネルにアクセスできます。
プロジェクトの作成
254
初めはプロジェクトが無いため、新規にプロジェクトを作成する必要があります。
まずプロジェクトを作成するため、[+新規プロジェクト]をクリックします。
プロジェクトの作成
255
新規プロジェクトの作成画面に遷移します。
[名称]欄に任意の名前を入力し、[追加]をクリックします。
通信モジュールの登録
256
プロジェクトが作成されました。次に通信モジュールの登録を行います。
[モジュール登録]のボタンをクリックします。
通信モジュールの登録
257
モジュールの追加画面に遷移します。指定したプロジェクトが選択されていることを確認のうえ、
登録用ID、登録用パスワード、および任意の名称を入力して、[追加]ボタンをクリックします。
通信モジュールの登録
258
モジュールの追加に成功すると[モジュールを追加しました]というダイアログが表示されます。
ID/PASSが正しくない、もしくは既に登録されている通信モジュールを追加しようとした場合は
内容とともに[モジュールの追加に失敗しました]というダイアログが表示されます。
登録が成功した場合 登録が失敗した場合
登録用ID / 登録用パスワードのいずれかに誤りがあります、再度ご確認ください
別の会員IDに登録されています、過去登録した会員IDにログインし、解除ください
連携サービスの設定
259
通信モジュールが登録されました。最後に外部への連携サービスを設定します。
[+サービス追加]のボタンをクリックします。
連携サービスの設定(Azure IoT Hub)
260
追加サービスの選択画面に遷移します。
今回はAzure IoT Hubを作成しますので、[Azure IoT Hub]をクリックします。
連携サービスの設定(Azure IoT Hub)
261
[名前]および[Azure IoT デバイス名]については任意の名前を入力します。
[Shared Access Key(接続文字)]についてはまだ作成されていないため、この画面のままで次のステップに進みます。
270
Webへのデータ連携
(Microsoft Azure)
今回のハンズオンの流れ
271
マイコンおよび
プログラムの構築
Webサービス連携
(Microsoft Azure)
温湿度センサ
(HDC1000)
sakura.ioの設定
さくらの通信
モジュール
IoT Hub
マイコン(Arduino Uno)
Stream
Analytics
BLOB
PowerBI
※参考
ハンズオンで行う作業
272
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
Storage Account
RawData
DemoData
blob
クエリ
IoT Hub
IoT Hub の設定 出力用ストレージの作成分析クエリの作成
本ハンズオンにおいては、IoT Hubに加えて、Stream Analitics ServiceやBlob Storageを利用して動作環境を構築します。
順番としては大まかにIoT Hubでデータの受け口を作成した後、Blobストレージを作成し、最後にStream Analiticsの
クエリを用意し、稼働させます。
Azure IoT Hub 概要 – IoT デバイスのゲートウェイ/HUB
273
Devices
RTOS,Linux,Windows,Android,iOS
Field
Gateway
IoT Hub
• 双方向通信
• 1千万台以上のデバイス
• 遠隔測定入力
• コマンドと制御
• デバイス登録とアイデンティティ
• デバイス接続管理
• HTTP/AMQP/MqTT
Cloud
Protocol
Gateway
組込み機器向けSDK
• C#
• C/C++
• Java
• JavaScript
Azure IoT Hub は、何百万もの IoT デバイスとソリューションバックエンドとの間に入り、信頼性のある保護された
双方向通信を確立できるサービスです。 デバイスから大量のテレメトリを受信し、ストリームイベントプロセッサへの
ルーティング、クラウドからデバイスへのメッセージ送信などができるようになります。
Azure Stream Analytics 概要 – リアル タイム データ処理
274
大量データをリアルタイム
に処理するクエリ エンジン
Point of
Service Devices
Self Checkout
Stations
Kiosks
Smart
Phones
Slates/
Tablets
PCs/
Laptops
Servers
Digital
Signs
Diagnostic
EquipmentRemote Medical
Monitors
Logic
Controllers
Specialized
DevicesThin
Clients
Handhelds
Security
POS
Terminals
Automation
Devices
Vending
Machines
Kinect
ATM
センサーデータのリアルタイム分析
データフォーマット変換
受信データへのアクションルール設定
Azure Stream Analytics は、デバイス、センサー、Web サイト、ソーシャル メディア、アプリケーション、
インフラストラクチャ システムなどのデータ ストリーミングのリアルタイム分析の計算を簡単に設定できます。
SQL ライクなクエリで、断続的に流れてくるデータを処理し、結果は永続的なストア、ダッシュボード、あるいは、
再度 Event Hubs に対して出力することができます。
ストレージアカウント 概要
275
持続性、可用性、スケーラビリティで顧客の
ニーズにこたえる最新のアプリケーション
のためのクラウドストレージソリューション
数百テラバイトのデータを保存、処理可能
トラフィック量に応じてデータを均等に負荷分散
世界中どこからでも、あらゆる種類の
アプリケーションからアクセス可能
テーブルストレージ:
構造型データセットを格納
NoSQLキー属性データストア
ブロブストレージ:
非構造化オブジェクトデータを格納
ドキュメントや画像ファイルなど
※本ハンズオンで使用
キューストレージ:
ワークフロー処理やコンポーネント間通信の
ための、信頼性の高いメッセージング機能
ハンズオンで行う作業
276
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
Storage Account
RawData
DemoData
blob
クエリ
IoT Hub
IoT Hub の設定 出力用ストレージの作成分析クエリの作成
このステップではIoT Hubのリソースを作成し、sakura.ioで収集したJSONデータを受け渡す設定を行います。
Azure IoT Hub リソース作成
277
Microsoft Azureポータルにログインしたら、[リソースの作成]をクリックします。
Azure IoT Hub リソース作成
278
検索もしくはMARKETPLACEの[モノのインターネット(IoT)]から[IoT Hub]をクリックします。
Azure IoT Hub リソース作成
279
[名前][価格とスケールティア][サブスクリプション][リソースグループ][場所]を選び、
作成をクリックするとIoT Hubの作成が開始されます。通知欄に「デプロイメントが成功しました」と表示されたら
通知欄の該当項目をクリックするとリソース画面に遷移します。
Azure IoT Hub リソース作成
280
作成したIoT Hubリソースとsakura.ioを接続するために共有アクセスポリシーを設定します。
[共有アクセスポリシー]で[追加]をクリックし、全てのアクセス許可を持ったポリシーを作成します。
Azure IoT Hub リソース作成
281
設定すると該当リソースのアップデートが開始されます。
アップデートが完了したら再度通知欄の該当項目をクリックします。
Azure IoT Hub リソース作成
282
追加された共有アクセスポリシーを選択すると4種類の共有アクセスキーが生成されていることを確認できます。
その中の[接続文字列-プライマリキー]をsakura.ioの接続に使用しますのでコピーします。
連携サービスの設定(Azure IoT Hub) ※アクセスポリシー生成後
283
Azure IoT Hubで生成した[接続文字列-プライマリキー]を[Shared Access Key(接続文字)]にペーストします。
その後[作成]ボタンをクリックします。
連携サービスの設定(Azure IoT Hub) ※アクセスポリシー生成後
284
設定が成功してもはじめは[接続ステータス]は[unknown]表記となりますが、数十秒が経過すると
[success]に遷移します。以上で設定は完了です。
連携サービスの設定(Azure IoT Hub) ※アクセスポリシー生成後
285
Azure IoT Hub との連携サービス設定が完了すると、設定の際入力した Azure IoT デバイス名 と同名のデバイスが
Azure IoT Hub 側にも表示されます。[Device Explorer]を選択すると [デバイス ID]に表示されます。
ハンズオンで行う作業
286
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
Storage Account
RawData
DemoData
blob
クエリ
IoT Hub
IoT Hub の設定 出力用ストレージの作成分析クエリの作成
このステップではStorageAccountに2つのBlobストレージを作成します。
データを加工しない生データをRawDataに、加工したデータをDemoDataにそれぞれ格納します。
ストレージアカウントの作成
287
検索もしくはMARKETPLACEの[Storage]から[Storage account – blob, file, table, queue]をクリックします。
ストレージアカウントの作成
288
[名前][レプリケーション][サブスクリプション][リソースグループ][場所]を選び、作成をクリックすると
ストレージアカウントの作成が開始されます。通知欄に「デプロイメントが成功しました」と表示されたら
通知欄の該当項目をクリックするとリソース画面に遷移します。
blob コンテナの作成
289
作成されたストレージアカウントの [概要]を選択し、 [サービス - BLOB]をクリックします。
blob コンテナの作成
290
Blob service の [+コンテナー]をクリックし、 [名前]を選び [OK]をクリックします。
今回は、raw と demo の名前でコンテナを 2 つ作成します。
ハンズオンで行う作業
291
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
Storage Account
RawData
DemoData
blob
クエリ
IoT Hub
IoT Hub の設定 出力用ストレージの作成分析クエリの作成
このステップではStream Analyticsを用いて、IoT Hubを入力元、2つのBlobストレージを出力先とした
クエリを作成し、実際にデータのリアルタイム処理を実施します。
Azure Stream Analytics の作成
292
検索もしくはMARKETPLACEの[Data + Analytics]から[Stream Analytics job]をクリックします。
Azure Stream Analytics の作成
293
[ジョブ名][サブスクリプション][リソースグループ][場所]を選び、
作成をクリックすると Stream Analytics Job の作成が開始されます。通知欄に「デプロイメントが成功しました」と表示さ
れたら通知欄の該当項目をクリックするとリソース画面に遷移します。
Azure Stream Analytics クエリの作成 (入力)
294
ジョブトポロジの [入力]、[出力]、[クエリ]の順番で作成します。[入力]をクリックします。
[入力]の作成
295
[+追加]をクリックし 、[入力のエイリアス][ソースタイプ][ソース][インポートオプション][IoT Hub][エンドポイント]
[共有アクセスポリシー名][コンシューマーグループ]を選び、作成をクリックします。今回は[入力のエイリアス]
iothub を入力し、作成した IoT Hub をソースとして割り当てます。
Azure Stream Analytics クエリの作成 (出力)
296
ジョブトポロジの [入力]、[出力]、[クエリ]の順番で作成します。[出力]をクリックします。
[出力]の作成
297
[+追加]をクリックし 、[出力エイリアス][シンク][インポートオプション][ストレージアカウント][コンテナー]を
選び、作成をクリックします。今回は、 [出力エイリアス]demo に[コンテナー ]demo を、 [出力エイリアス]bloblog に
[コンテナー ]raw を選び、出力を 2 つ作成します。
Azure Stream Analytics クエリの作成 (クエリ)
298
ジョブトポロジの [入力]、[出力]、[クエリ]の順番で作成します。[クエリ]をクリックします。
[クエリ]の作成
299
右ペインにコードを記述し、[保存]をクリックします。
今回のコード (2つのクエリ)
300
WITH Tmps AS (
SELECT
e.iothub.ConnectionDeviceId as ConnectionDeviceId, e.module as module,
chs.ArrayValue.channel, chs.ArrayValue.type, chs.ArrayValue.value as temp,
chs.ArrayValue.datetime
FROM iothub AS e
CROSS APPLY GetElements (e.payload.channels) as chs
WHERE chs.ArrayValue.channel = 0
)
Select avg(Tmps.temp)
Into demo
From Tmps
GROUP BY TumblingWindow(second, 10);
SELECT * INTO bloblog FROM iothub;
Iothub からの入力をすべて
BLOBストレージ(bloblog)へ出力
IoT Hub(iothub) からの入力で、
payload.channels.channel = 0 の
ものを抜き出し、Tmpsに保持
Tmps からのデータを10秒ごとに集計、
平均温度をBLOBストレージ(demo)へ出力
Azure Stream Analytics を開始する
301
[開始]をクリックします。ジョブの開始画面で開始時刻を確認されますので、
[現在]が選択されていることを確認し、[開始]をクリックします。
出力結果を確認する
302
[すべてのリソース]→ [作成したストレージアカウント]→ [BLOB]から任意のコンテナを選択し、
対象のJSONファイルをクリックした後、右ペインの[ダウンロード]ボタンをクリックします。
出力ログ例 (raw コンテナ)
303
{"module":“abcdefghijkl","type":"connection","datetime":"2017-06-
23T08:17:16.124375459Z","token":"30000003-4aa4-4009-8008-
0abcdefgh0abc","payload":{"is_online":1},"EventProcessedUtcTime":"2017-06-
23T08:18:58.9089367Z","PartitionId":1,"EventEnqueuedUtcTime":"2017-06-
23T08:17:16.2550000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"device
0001","ConnectionDeviceGenerationId":" 123456789012345678 ","EnqueuedTime":"2017-06-
23T08:17:14.5610000Z","StreamId":null}}
{"module":“abcdefghijkl","type":"channels","datetime":"2017-06-
23T08:17:17.0253936Z","token":"30000003-4aa4-4009-8008-0abcdefgh0abc","payload":{"channels":
[{"channel":0,"type":"f","value":31.23,"datetime":"2017-06-
23T08:17:16.990394464Z"},{"channel":1,"type":"f","value":30.2,"datetime":"2017-06-
23T08:17:17.002394464Z"},{"channel":2,"type":"I","value":1,"datetime":"2017-06-
23T08:17:17.014394464Z"}]},"EventProcessedUtcTime":"2017-06-
23T08:18:58.9089367Z","PartitionId":1,"EventEnqueuedUtcTime":"2017-06-
23T08:17:17.1310000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"device
0001","ConnectionDeviceGenerationId":“123456789012345678","EnqueuedTime":"2017-06-
23T08:17:15.4380000Z","StreamId":null}}
IoT Hub のメタデータ
IoT Hub 受信データ
出力ログ例 (demo コンテナ)
304
Stream Analytics のクエリによ
り集計されたデータ
{"avg":31.23}
{"avg":31.24}
{"avg":31.24}
{"avg":31.22}
{"avg":31.23}
{"avg":31.23}
{"avg":31.24}
{"avg":31.22}
{"avg":31.23}
{"avg":31.23}
{"avg":31.24}
…
[参考]Power BI によるデータ可視化
305
Power BI は、最も重要なビジネス データに関する単一のビューを提供するクラウド ベースのビジネス分析サービスで
す。さまざまなデータソースに接続し可視化できます。Web ブラウザ、デスクトップアプリ、モバイルアプリで提供して
います。
※ 「職場アカウントまたは学校アカウント」 (Office 365 や Azure AD)が必要なた
め、本ハンズオンでは実作業を行いません。 「参考」 情報として記載しています。
[参考]Power BI によるデータ可視化
306
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
Storage Account
RawData
DemoData
blob
クエリ
IoT Hub
Power BI
※参考
PBIOutput
(1)
(2)(1) 保存された静的データを表示する
(2) リアルタイムのストリームデータを表示する
[参考]Power BI によるデータ可視化 – リアルタイムのデータ表示
307
Stream Analytics
入力 出力
RawOutput
DemoOutput
DevcieInput
クエリ
IoT Hub
PBIOutput
Power BI
1) Stream Analytics の出力の作成
2) クエリの作成
3) Power BI のダッシュボード作成
[参考]Power BI によるデータ可視化 - [出力]の作成
308
[+追加]をクリックし 、[出力エイリアス]を入力し[シンク]Power BI を選択します。
[承認する]をクリックし、認証画面で Power BI で使用している 「職場アカウントまたは学校アカウント」 を入力します。
[参考]Power BI によるデータ可視化 - [出力]の作成
309
[グループワークスペース][データセット名][テーブル名]を入力し[作成]をクリックします。
[参考]Power BI によるデータ可視化 -[クエリ]の作成
310
Stream Analytics ジョブが実行中の場合は、ジョブを停止します。
右ペインにコードを記述し、[保存]をクリックします。
[参考]Power BI によるデータ可視化 – [クエリ]の作成
311
WITH Tmps AS (
SELECT
e.iothub.ConnectionDeviceId as ConnectionDeviceId, e.module as module,
chs.ArrayValue.channel, chs.ArrayValue.type, chs.ArrayValue.value as temp,
chs.ArrayValue.datetime
FROM iothub AS e
CROSS APPLY GetElements (e.payload.channels) as chs
WHERE chs.ArrayValue.channel = 0
)
Select
avg(Tmps.temp), System.Timestamp AS windowEnd
Into PowerBIView
From Tmps
GROUP BY TumblingWindow(second, 10);
IoT Hub(iothub) からの入力で、
payload.channels.channel = 0 の
ものを抜き出し、Tmpsに保持
Tmps からのデータを10秒ごとに集計、
平均温度とタイムスタンプを Power BI へ
出力
[参考]Power BI によるデータ可視化 – [クエリ]の作成
312
Stream Analytics ジョブを開始します。[開始]をクリックします。ジョブの開始画面で開始時刻を確認されますので、
[現在]が選択されていることを確認し、[開始]をクリックします。
[参考]Power BI によるデータ可視化 - Power BI のダッシュボード作成
313
https://powerbi.com にアクセスして、職場または学校のアカウントでサインインします。
[+作成]をクリックして新規ダッシュボードを作成します。
[参考]Power BI によるデータ可視化 - Power BI のダッシュボード作成
314
[+タイルの追加]をクリックし、カスタムストリーミングデータを選択し、[次へ]をクリックします。
[参考]Power BI によるデータ可視化 - Power BI のダッシュボード作成
315
データセットを選択し、[次へ]をクリック。[視覚化タイプ]折れ線グラフ、[軸]、[値]を選択し[次へ]をクリック。
[タイトル]を入力し [適用]をクリックします。
[参考]Power BI によるデータ可視化 - Power BI のダッシュボード作成
316
データセットを選択し、[次へ]をクリック。[視覚化タイプ]カード、[フィールド]を選択し[次へ]をクリック。
[タイトル]を入力し [適用]をクリックします。
[参考]Power BI によるデータ可視化 - Power BI のダッシュボード作成
317
平均気温のカウンター形式とグラフ形式でのリアルタイム表示ができました。
320
そこに、さくら
321
質疑応答
322
最後に
最後に ~sakura.io~
323
ハンズオンに使用したさくらの通信モジュールは必要に応じて登録を解除します。
接続ステータス横の歯車マークをクリックします。
最後に ~sakura.io~
324
モジュールの設定画面に遷移します。下部の[登録解除]ボタンをクリックします。
最後に ~sakura.io~
325
通信モジュールの登録を解除してよいか確認されます。
問題ない場合は再度[登録解除]ボタンをクリックします。
最後に ~sakura.io~
326
モジュールの登録が解除され、表示から削除されました。
次は連携サービスとともにプロジェクトを削除します。
プロジェクト右上の[削除]マークをクリックします。
最後に ~sakura.io~
327
プロジェクトを削除してよいか確認されます。
問題ない場合は再度[削除]ボタンをクリックします。
最後に ~Microsoft Azure~
333
ハンズオンに使用した Azure の各種リソースは必要に応じて削除します。
今回作成したリソースグループを開き、[削除]をクリックします。
最後に ~Microsoft Azure~
334
[リソースグループ名を入力してください]に削除対象のリソースグループを入力し、[削除]をクリックします。
リソースグループが消えていれば、削除完了です。
最後に ~Microsoft Azure~
340
最後に
341
以上でハンズオンにおける作業は全て終了となります。
お疲れ様でした!
最後に
342
さくらインターネットでは、「さくらクラブ」としてハンズオン等の
イベントをともに開催いただける仲間(部員)を募集しています。
(テーマはIoTに限らず、クラウドやVPS、スタートアップ系ネタでもOK!)
ご興味があれば、Come and join us & Feel free to contact me!
連絡先 :sakura-club@sakura.ad.jp
さくらクラブ :http://www.slideshare.net/MasayaHayashi/lt20151224
343
参考
サンプルスケッチ
【参考】AlphaCompat.ino
344
さくらのIoT Platform α にて提供していたスケッチ(SakuraAlpha_I2C.ino)を置き換えた
プログラムです。一定間隔でカウント値を0,1,2のチャンネルに書き込み、送信します。
【参考】Shell.ino
345
シリアルモニタからのコマンド操作を提供します。改行を[CRのみ]とした後、
提供されているコマンドを手入力で確認することができます。
【参考】Shell.ino
346
構文
【version】現在のファームウェアバージョンを表示する
出力結果
version
>version
v1.0.0-161109-c566dba
備考
【参考】Shell.ino
347
構文
【serial】通信モジュールのシリアル番号を表示する
出力結果
serial
>serial
16A0100134
備考
【参考】Shell.ino
348
構文
【status】通信モジュールの通信状態を確認する
出力結果
status
>status
Online
Last Error Code: 0
備考
【参考】Shell.ino
349
構文
【sqi】通信モジュールの電波強度を確認する
出力結果
sqi
>sqi
5
備考
電波強度は5を最大として強度に伴い数値が下がり、0は圏外であることを示します。
【参考】Shell.ino
350
構文
【unixtime】UTC形式の現在時刻を表示する
出力結果
unixtime
>unixtime
1480497574
備考
【参考】Shell.ino
351
構文
【update】ファームウェアのアップデートを実行する
出力結果
update
>update
Current Version: v1.0.0-161109-c566dba
Unlock
Starting update
Waiting for update
.
備考
【参考】Shell.ino
352
構文
【reset】通信モジュールのソフトウェアリセットを実行する
出力結果
reset
>reset
>
備考
シリアルモニタに実行結果は表示されません。
ソフトウェアリセットを実行すると通信モジュールが再起動を行います。
モデムの起動、および通信確立までにおおよそ1分程度を要します。
【参考】Shell.ino
353
構文
【enqueue】送信キューにデータを格納する
出力結果
enqueue <ch> <type> <value>
>enqueue 0 i 123
>
備考
シリアルモニタに実行結果は表示されません。
enqueueコマンドを実行すると登録したデータは送信キューに貯められます。
送信キューは最大で32個まで蓄積され、超過したキューは貯められず破棄されます。
【参考】Shell.ino
354
構文
【send】送信キューに貯められたデータを送信する
出力結果
send
>send
>
備考
シリアルモニタに実行結果は表示されません。
sendコマンドを実行すると、貯められたデータは16個分を1つのRMとして送信します。
送信キューが17個以上存在する場合、2つ目のRMも送信され、キューから自動的に削除されます。
【参考】Shell.ino
355
構文
【size】送信/受信キューに貯められたデータ数を確認する
出力結果
size
>size
Tx Queue
Avail: 32
Queued: 0
Rx Queue
Avail: 32
Queued: 0
備考
Tx Queue は送信キュー、Rx Queue は受信キューを表します。
Availは利用可能数、Queuedは貯められているキューの数を表します。
【参考】Shell.ino
356
構文
【cleartx】送信キューに貯められたデータをすべて消去する
出力結果
cleartx
>cleartx
>
備考
シリアルモニタに実行結果は表示されません。
送信キューに貯められたデータの一部だけを削除することはできません。
【参考】Shell.ino
357
構文
【clearrx】受信キューに貯められたデータをすべて消去する
出力結果
clearrx
>clearrx
>
備考
シリアルモニタに実行結果は表示されません。
受信キューに貯められたデータの一部だけを削除することはできません。
【参考】Shell.ino
358
構文
【dequeue】受信キューに貯められたデータをすべて受信する
出力結果
dequeue
>dequeue
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能なデータが存在しない場合はemptyを返します。
受信されたデータはキューから自動的に削除されます。
【参考】Shell.ino
359
構文
【peek】受信キューに貯められたデータを閲覧する
出力結果
peek
>peek
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能なデータが存在しない場合はemptyを返します。
閲覧したデータは削除されずキューに残されます。
【参考】Standard.ino
360
保持している情報をすべて書き出すプログラムです。シリアルモニタに以下の情報を出力しながら
カウント値を0チャンネルに書き込み、キューが一定量貯まると送信します。
361
参考
DataStore API
【参考】連携サービスの設定(DataStore API)
362
sakura.ioでは、蓄積データの活用として【 DataStore API 】を提供します。
追加サービスの選択画面で[DataStore API]をクリックします。
【参考】連携サービスの設定(DataStore API)
363
追加サービスの選択画面で[DataStore API]をクリックします。
[名前]は任意の名称を入力し、[作成]をクリックします。
【参考】連携サービスの設定(DataStore API)
364
作成した連携サービスをクリックすると【 Token 】を確認することができます。
Tokenをコピーし、コンパネ右上の[DataStore v1 Document]をクリックします。
【参考】連携サービスの設定(DataStore API) /channels の取得
365
[ /channels ]は蓄積されたデータをチャンネル単位で取得します。単体のデータを複数の形式
(入力時の形式[value]、数値[value_num]、文字列[value_str])で格納しているため、
単体でも価値のあるデータが活用しやすい形式となっています。
[ /channels ]は該当URL(https://api.sakura.io/datastore/v1/docs/)にて
前述の【 Token 】情報、および以下のパラメータを指定することで任意の情報を取得できます。
【module】:通信モジュールのモジュールID
【size】:一度に取得するデータの数
【order】:昇順(ASC)と降順(DESC)指定
【cursor】:※後述※
【after/before】:指定日時の以前と以後指定
【channel】:取得するチャンネル指定
【参考】連携サービスの設定(DataStore API) /channels の取得
366
{
"meta": {
“count”: <取得した件数>,
“cursor”: “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”,
“match”: <ヒットした件数>
},
"results": [
{
“channel”: <データが格納されているチャンネル>,
“datetime”: “<データが通信モジュールのキューに格納された時間>”,
“id”: “<送信されたデータのID>",
“module”: “<データが送信された通信モジュールのID>",
“type”: “<送信されたデータの型式>",
“value”: <typeで指定された型式でのデータ>,
“value_num”: <number形式でのデータ>,
“value_str”: “<string形式でのデータ>"
},
{
"channel": …
#以下[channel]単位のデータがcount数分列挙
指定された条件を元に【Try it out!】をクリックすると、[Response Body]欄に条件に応じた
データが返されます。またクリック後に返される[Request URL]から同様のデータを取得できます。
【type】:取得するRMのtype指定
【参考】連携サービスの設定(DataStore API) /messages の取得
367
[ /messages ]は蓄積されたデータをRM単位で取得します。RMに含まれる複数チャンネルの
データの関係性が重要な場合に活用しやすい形式です。(鍵の「解錠者ID」と「入退室フラグ」等)
また、 [ /messages ]には通信モジュールの接続および切断の情報も含まれています。
[ /messages ]は該当URL(https://api.sakura.io/datastore/v1/docs/)にて
以下のパラメータを指定することで任意の情報を取得できます。
【module】:通信モジュールのモジュールID
【size】:一度に取得するデータの数
【order】:昇順(ASC)と降順(DESC)指定
【cursor】:※後述※
【after/before】:指定日時の以前と以後指定
【参考】連携サービスの設定(DataStore API) /messages の取得
368
{
"meta": {
"count": <取得した件数>,
"cursor": “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”,
"match": <ヒットした件数>
},
"results": [
{
“datetime”: “<対象のRMをプラットフォーム側で受信した時間>”,
"id": “<格納されたRMのID>",
"module": “<データが送信された通信モジュールのID>",
"payload": {
"channels": [
{
"channel": <データが格納されているチャンネル>,
"type": “<送信されたデータの型式>",
"value": <typeで指定された型式でのデータ>
}
]
},
"type": "channels"
},
{
“datetime”: …
#以下[message]単位のデータ
指定された条件を元に【Try it out!】をクリックすると、[Response Body]欄に条件に応じた
データが返されます。またクリック後に返される[Request URL]から同様のデータを取得できます。

More Related Content

PDF
Microsoft Azure 概要 (sakura.io ハンズオン編)
PDF
Microsoft Azure - 世界最大のクラウドが提供する最先端のテクノロジーとその価値
PDF
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
PDF
[Azureビッグデータ関連サービスとHortonworks勉強会] Azureビッグデータ関連サービス最新情報
PDF
Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)
PDF
Data & AI Update 情報 - 2020年8月版
PDF
Azure IoT 関連最新情報 (Microsoft Build 2020版)
PDF
【HinemosWorld2014】A2-3_01_クラウドプラットフォームMicrosoft Azureの全体像と最新アップデート、Hinemosによる...
Microsoft Azure 概要 (sakura.io ハンズオン編)
Microsoft Azure - 世界最大のクラウドが提供する最先端のテクノロジーとその価値
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
[Azureビッグデータ関連サービスとHortonworks勉強会] Azureビッグデータ関連サービス最新情報
Microsoft Azureの機械学習サービス (Azure Machine Learning/Microsoft Cognitive Services)
Data & AI Update 情報 - 2020年8月版
Azure IoT 関連最新情報 (Microsoft Build 2020版)
【HinemosWorld2014】A2-3_01_クラウドプラットフォームMicrosoft Azureの全体像と最新アップデート、Hinemosによる...

What's hot (20)

PDF
Azure Monitor Logで実現するモダンな管理手法
PDF
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
PDF
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
PDF
Microsoft Azure Overview - Japanses version
PDF
Azure overview 2019_feb_v1.02
PDF
JAWSUG & JAZUG Sendai Azure Update 20140517
PDF
JAZUG Nagoya Windows Azure Update 20140301
PDF
【Cisco Data Center Forum 2015】 シスコ データセンター ビジョンと戦略
PDF
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
PDF
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
PPTX
[簡易提案書]働き方改革にMSインフラストラクチャー
PDF
マルウェア通信検知手法におけるUser-Agentの有効性の一考察
PDF
[Japan Tech summit 2017] CLD 023
PDF
20170720_2 Drone-WG_Azure
PDF
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
PDF
sakura.io introduction 20171215
PDF
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
PDF
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
PPTX
Data & AI Update 情報 - 2020年4月版
PPTX
Data & AI Update 情報 - 2020年6月版
Azure Monitor Logで実現するモダンな管理手法
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Microsoft Azure Overview - Japanses version
Azure overview 2019_feb_v1.02
JAWSUG & JAZUG Sendai Azure Update 20140517
JAZUG Nagoya Windows Azure Update 20140301
【Cisco Data Center Forum 2015】 シスコ データセンター ビジョンと戦略
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
[簡易提案書]働き方改革にMSインフラストラクチャー
マルウェア通信検知手法におけるUser-Agentの有効性の一考察
[Japan Tech summit 2017] CLD 023
20170720_2 Drone-WG_Azure
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
sakura.io introduction 20171215
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年6月版
Ad

Similar to Microsoft Azure&sakura.io体験ハンズオン (20)

PDF
sakura.io体験ハンズオン
PDF
LoRaWANとAzure IoT Hub接続ハンズオン
PDF
【最新版誘導用】駅すぱあとWebサービス&sakura.io体験ハンズオン
PDF
sakura.io体験ハンズオン 20180228
PDF
IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3
PDF
20160527_06_Azure Certified for IoT for 共創ラボ
PDF
駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302
PPTX
【Connected.T2】システム構築・運用負荷を軽減!SORACOM Beam が実現する、ヒトとモノにやさしいIoT
PDF
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
PDF
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
PDF
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
PDF
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
PDF
20170703_05 IoTビジネス共創ラボ
PPTX
繋ぐだけじゃ終わらない! IoTを手軽にビジネスプロセスへ統合する Azure IoT + Dynamics 365 の紹介
PDF
20180817 azure antenna_iot central hands-on
PDF
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
PDF
Azure IoT/AI最前線
PPTX
これから始める Azure の基礎サービス: IaaS/PaaS
PPTX
JAWS-UG IoT専門支部 講演資料 IoT Analyticsによる構築事例説明
PDF
アダプティブ クラウド アプローチと Azure IoT Operations 概要
sakura.io体験ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオン
【最新版誘導用】駅すぱあとWebサービス&sakura.io体験ハンズオン
sakura.io体験ハンズオン 20180228
IoT キットハンズオンのソースコード解説します クラウド編 Part1 Section3
20160527_06_Azure Certified for IoT for 共創ラボ
駅すぱあとWebサービス&sakura.io体験ハンズオン 20180302
【Connected.T2】システム構築・運用負荷を軽減!SORACOM Beam が実現する、ヒトとモノにやさしいIoT
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
20170703_05 IoTビジネス共創ラボ
繋ぐだけじゃ終わらない! IoTを手軽にビジネスプロセスへ統合する Azure IoT + Dynamics 365 の紹介
20180817 azure antenna_iot central hands-on
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
Azure IoT/AI最前線
これから始める Azure の基礎サービス: IaaS/PaaS
JAWS-UG IoT専門支部 講演資料 IoT Analyticsによる構築事例説明
アダプティブ クラウド アプローチと Azure IoT Operations 概要
Ad

More from さくらインターネット株式会社 (20)

PDF
eBPFを用いたトレーシングについて
PDF
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
PDF
石狩での プログラミング教育支援 ~2年目の成果~
PDF
さくらインターネットとコミュニティをつなぐ
PDF
【さくらのクラウド】サービス概要カタログ 2018年10月号
PDF
小学校プログラミング教育 ~石狩の場合~
PDF
【さくらのクラウド】サービス概要カタログ 2018年8月号
PDF
【さくらのクラウド】サービス概要カタログ 2018年7月号
PDF
パートナーと共創する さくらのクラウドのサービス展開
PDF
【さくらのクラウド】サービス概要カタログ 2018年6月号
PPTX
Sakura infini band-20180424
PDF
【さくらのクラウド】サービス概要カタログ 2018年4月号
PDF
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
PDF
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
PDF
【さくらのクラウド】サービス概要カタログ 2018年3月号
PDF
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
PDF
【さくらのクラウド】サービス概要カタログ 2018年2月号
PDF
セキュアモバイルコネクト&sakura.ioと高火力コンピューティング
PDF
sakura.ioご紹介 20180206
PDF
高セキュアなIoT/M2M向けSIM「さくらのセキュアモバイルコネクト」 紹介資料
eBPFを用いたトレーシングについて
さくらの学校支援プロジェクト PyCon mini Sapporo 2019
石狩での プログラミング教育支援 ~2年目の成果~
さくらインターネットとコミュニティをつなぐ
【さくらのクラウド】サービス概要カタログ 2018年10月号
小学校プログラミング教育 ~石狩の場合~
【さくらのクラウド】サービス概要カタログ 2018年8月号
【さくらのクラウド】サービス概要カタログ 2018年7月号
パートナーと共創する さくらのクラウドのサービス展開
【さくらのクラウド】サービス概要カタログ 2018年6月号
Sakura infini band-20180424
【さくらのクラウド】サービス概要カタログ 2018年4月号
正解はどれ?『プログラミング教育』を取り巻くステークホルダーと議論
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
【さくらのクラウド】サービス概要カタログ 2018年3月号
「sakura.io」「さくらのセキュアモバイルコネクト」ご紹介
【さくらのクラウド】サービス概要カタログ 2018年2月号
セキュアモバイルコネクト&sakura.ioと高火力コンピューティング
sakura.ioご紹介 20180206
高セキュアなIoT/M2M向けSIM「さくらのセキュアモバイルコネクト」 紹介資料

Microsoft Azure&sakura.io体験ハンズオン