Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
3
Connectivity Data AnalyticsThings Action
Internet of Things
機器ごと、業界ごと、シーンごと、
やりたいことで、シナリオいろいろ
組込み機器、人⇔送受信⇔蓄積、表示、分析、活用
PaaSをビルディングブロックで組み合わせ、構築する
Microsoft Azure
デバイス接続
サービス
データ
実時間分析
サービス
ML
ダッシュボード
サービス連携
データ・サービスを
...
Microsoft Azure
メッセージング
管理
Predictive Maintainance
Connected Factory
Remote Monitoring
Remote
Monitoring
Predictive
Maintenance
Connected
Factory
http://www.azureiotsuites.com
https://github.com/Azure/azure-iot-remote-monitoring
https://github.com/Azure/azure-iot-connected-factory
https://github.c...
IoT の障壁を取り除く これまでの限界を超える 実績のある技術を
活用する
Microsoft Azure
Azure
IoT Hub
Field
Gateway
Cloud
Protocol
Gateway
デバイス
Microsoft Azure
Azure
IoT Hub
Field
Gateway
Cloud
Protocol
Gateway
メッセージング(双方向)
ファイルアップロード
デバイス
プロパティ同期
メソッドコール
デバイスレジストリ
...
https://microsoft.github.io/techcasestudies/iot/2017/03/03/seraku.html
http://azure.microsoft.com
http://github.com/Azure/azure-iot-sdks
SDKでの接続が
確認済みの
組込み機器カタログ
https://catalog.azureiotsuite.com/
Microsoft Azure
デバイス
Microsoft Azure
デバイス
接続
受信スレッド作成
メッセージ作成
メッセージ送信
切断
var client = DeviceClient.CreateFromConnectionString(
“接続文字列",TransportType.Mqtt);
await cl...
private async void ReceiveMessagesAsync(DeviceClient client)
{
while (true)
{
var message = await client.ReceiveAsync();
v...
https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/ubuntu_apt-get_sample_setup.md
接続
受信スレッド作成
メッセージ作成
メッセージ送信
切断
#include "iothub_client.h“
#include "iothub_message.h“
#include "iothubtransportamqp.h“
…
I...
HostName=IoTHubName.azure-devices.net;DeviceId=myDeviceId;SharedAccessKey=myBase64EncodedAccessKey
http://catalog.azureiotsuite.com
https://www.unirobot.com/
Microsoft Azure
IoT Hub
Local Netwoark
⇔
⇔
⇔
登録済
http://github.com/Azure/azure-iot-edge
Microsoft Azure
IoT Hub
Message Bus
Module A Module B Module D Module E
メッセージバスに送信したメッセージは
他のすべてのモジュールが受信
リンクの設定による
送信元・先の限定
Module の役割は任意
JSONによる...
Message Bus
Local
Comm
Module
Extended
Module
IoT Hub
Mapper
IoT Hub
Client
IoT SDK
リモートモニタリング・制御
多数のIoTデバイスからの収集データ
をマージ
先進AIの適用を可能にする、
無限に近いコンピューティング
リソースとストレージ
リアルタイム応答に必要な
ローレーテンシーでタイトな
コントロールループ
プライバシー...
Message
Bus
Module
Embedded George
http://github.com/ms-iotkithol-
jp/AzureIoTGatewayExtention
ドローンワークス(株)
http://github.com/drone-
works/Azu...
Gateway Box
Stream
Analytics
PowerBI
Blob
Storage
すべてのイベントデー
タをアーカイブ保存
ダッシュボード表示
SQL
Database
EventHubs
ソーラーパネル 制御機器
RC485 ソーラーパネル
稼働状...
Message Bus
Local
Comm
Module
Extended
Module
IoT Hub
Mapper
IoT Hub
Client
IoT SDK
Microsoft Azure
http://pcn.club/katsuyama/azure201703/
計画
プロビジョニ
ング
構成監視
使用中止
計画:
• 管理用メタデータ検討と定義
プロビジョニング:
• デバイスの登録と管理用メタデータ設定
構成:
• 正常性とセキュリティの維持
• 一括構成変更、ファームウェア更新
監視:
• 継続的...
49
クラウドのバックエンドサービスDevice App
IoT Hub
C2D
D2C
Device Twin
Direct Methods
テレメタリー
クラウドからメッセージを
デバイスに送る
Properties
経過も通知受信可能な
...
Microsoft Azure
RegistryManager registryManager =
RegistryManager.CreateFromConnectionString(“サービス接続文字列”);
await registryManager.OpenAsync...
HostName=IoTHubEndPoint; SharedAccessKeyName =roleName;SharedAccessKey=Base64EncodedAccessKey
var deviceClient = DeviceClient.CreateFromConnectionString(cs, TransportType.Mqtt);
await deviceClient.SetDesiredPropertyU...
var registedDeviceTwin = await registryManager.GetTwinAsync(deviceId);
var rp =
JsonConvert.DeserializeObject(registedDevi...
ServiceClient serviceClient =ServiceClient.CreateFromConnectionString(cs);
var method = new CloudToDeviceMethod("reboot");...
var deviceClient = DeviceClient.CreateFromConnectionString(cs,TransportType.Mqtt);
await deviceClient.SetMethodHandlerAsyn...
IoT Hub
Device Twin/Methods
Device
Device Twin/Methods
Device Twin/Methods
Device Twin/Methods
Device Twin/Methods
Device ...
IoT Hub Device ManagementのJobコレクション
IoT Hub
デフォルトの
メッセージングDevice
Device
Device
Device Twin
Properties
プロパティ、タグで
フィルタリング
Tag.ServiceType = …
Desired.DeviceType...
Microsoft Azure
デバイス接続管理
(ID、Device Key)
メッセージング
(送受信、受信確認)
機器管理
(Device Twin、Query、Job)
デバイス
IoTシナリオ用
モジュール
IoT Edge Ext
...
Device
Twin
メッセージング
Azure IoT Edge IoT Hub
Devices
Local Storage
Azure Machine
Learning
(Container)
Functions
RuntimeContainer
Management
Devi...
https://microsoft.qualtrics.com/jfe/form/SV_0oknoIujzm1haOV
Microsoft Azure
セッションアンケートにご協力ください
 専用アプリからご回答いただけます。
decode 2017
 スケジュールビルダーで受講セッションを
登録後、アンケート画面からご回答ください。
 アンケートの回答時間はたったの 15 秒です!
Ask the Speaker のご案内
本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて
ご説明させていただきます。是非、お立ち寄りください。
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
Upcoming SlideShare
Loading in …5
×

[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~

3,947 views

Published on

モノをインターネットにつなぎ、データを収集、蓄積し、活用する IoT、単にデータを集めて見える化するだけなら 30 分で実現可能な時代になりました。活用も、Azure Machine Learning や Microsoft Cognitive Services を組み合わせて実現が可能です。しかし、第三者にサービス提供可能な IoT を構築するには、モノを適切に管理する仕組みや様々な形態のモノをつなぐためのゲートウェイ等、様々な関連技術も必須です。一般的なシナリオ向けテンプレートも活用すれば、開発期間短縮も見込めます。本セッションでは、事例の紹介も交えながら、IoT を実現するコアとなる Azure IoT Hub の最新機能と、Azure IoT Gateway SDK や Azure IoT Suite 等、IoT 構築を支援する関連技術を解説します。

受講対象: IoT を検討されている方、クラウド側だけでなく、デバイス側の技術情報も、まとめて習得できます。まずは、何がどこまで可能かを、このセッションで理解できます。Azure IoT Hub や関連する SDK には新規機能の追加が継続的に行われているので、既に Azure で IoT を実現している方も、最新の知識を是非この場で。

関連リソース 1: Azure IoT Hub (https://azure.microsoft.com/ja-jp/services/iot-hub/)
関連リソース 2: デバイスとITの架け橋 (https://blogs.msdn.microsoft.com/hirosho/)
関連リソース 3: [DI14] Building a Smart Glucometer with Azure IoT Hub (Azure IoT Hub を使ったスマート血糖測定器の構築) (https://www.microsoft.com/ja-jp/events/decode/2017/sessions.aspx#DI14)

製品/テクノロジ: IoT & デバイス/Machine Learning (機械学習)/Microsoft Azure/アーキテクチャ/クラウド/ビッグ データ

太田 寛
日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
エバンジェリスト

Published in: Technology
  • Be the first to comment

[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~

  1. 1. 3 Connectivity Data AnalyticsThings Action Internet of Things
  2. 2. 機器ごと、業界ごと、シーンごと、 やりたいことで、シナリオいろいろ
  3. 3. 組込み機器、人⇔送受信⇔蓄積、表示、分析、活用 PaaSをビルディングブロックで組み合わせ、構築する Microsoft Azure デバイス接続 サービス データ 実時間分析 サービス ML ダッシュボード サービス連携 データ・サービスを 第三者へ売る PC・タブレット・スマホ 開発・運用コスト低 スケール可能!! ストレージ その他の ビッグデータ エンタープライズサービス等 外部サービス メッセージング 管理
  4. 4. Microsoft Azure メッセージング 管理 Predictive Maintainance Connected Factory Remote Monitoring
  5. 5. Remote Monitoring Predictive Maintenance Connected Factory
  6. 6. http://www.azureiotsuites.com
  7. 7. https://github.com/Azure/azure-iot-remote-monitoring https://github.com/Azure/azure-iot-connected-factory https://github.com/Azure/azure-iot-predictive-maintenance https://github.com/Azure/LearnAnalytics-PredictiveAnalyticsForIoT
  8. 8. IoT の障壁を取り除く これまでの限界を超える 実績のある技術を 活用する
  9. 9. Microsoft Azure Azure IoT Hub Field Gateway Cloud Protocol Gateway デバイス
  10. 10. Microsoft Azure Azure IoT Hub Field Gateway Cloud Protocol Gateway メッセージング(双方向) ファイルアップロード デバイス プロパティ同期 メソッドコール デバイスレジストリ メッセージング(受信) メッセージング(送信) Twin – プロパティ同期 クエリ ジョブ デバイス毎の秘密鍵 デバイス毎の証明書 受信のルーティング モニタリング ファイルアップロード
  11. 11. https://microsoft.github.io/techcasestudies/iot/2017/03/03/seraku.html
  12. 12. http://azure.microsoft.com
  13. 13. http://github.com/Azure/azure-iot-sdks SDKでの接続が 確認済みの 組込み機器カタログ https://catalog.azureiotsuite.com/
  14. 14. Microsoft Azure デバイス
  15. 15. Microsoft Azure デバイス
  16. 16. 接続 受信スレッド作成 メッセージ作成 メッセージ送信 切断 var client = DeviceClient.CreateFromConnectionString( “接続文字列",TransportType.Mqtt); await client.OpenAsync(); ReceiveMessagesAsync(client); var data = new { MeasuredTime = DateTime.Now, Muscle = arduino.analogRead("A1") }; var json = JsonConvert.SerializeObject(data); var msg = new Message(Encoding.UTF8.GetBytes(json)); await client.SendEventAsync(msg); await client.CloseAsync();
  17. 17. private async void ReceiveMessagesAsync(DeviceClient client) { while (true) { var message = await client.ReceiveAsync(); var content = Encoding.UTF8.GetString(message.GetBytes()); ・・・ 受信メッセージの処理 await client.CompleteAsync(message); } }
  18. 18. https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/ubuntu_apt-get_sample_setup.md
  19. 19. 接続 受信スレッド作成 メッセージ作成 メッセージ送信 切断 #include "iothub_client.h“ #include "iothub_message.h“ #include "iothubtransportamqp.h“ … IOTHUB_CLIENT_HANDLE iotHubClientHandle; iotHubClientHandle = IoTHubClient_CreateFromConnectionString(cs, AMQP_Protocol)); IoTHubClient_SetMessageCallback(iotHubClientHandle, ReceiveMessageCallback, NULL); EVENT_INSTANCE* eventinstance = (EVENT_INSTANCE*)malloc(sizeof(EVENT_INSTANCE)); unsigned char* msg = “{¥”MeasuredTime¥”:¥”… eventinstance->messageHandle = IoTHubMessage_CreateFromByteArray(msg, msgLen)); IoTHubClient_SendEventAsync( iotHubClientHandle, eventinstance->messageHandle, SendConfirmationCallback, eventinstance)
  20. 20. HostName=IoTHubName.azure-devices.net;DeviceId=myDeviceId;SharedAccessKey=myBase64EncodedAccessKey
  21. 21. http://catalog.azureiotsuite.com
  22. 22. https://www.unirobot.com/
  23. 23. Microsoft Azure IoT Hub Local Netwoark ⇔ ⇔ ⇔ 登録済
  24. 24. http://github.com/Azure/azure-iot-edge Microsoft Azure IoT Hub
  25. 25. Message Bus Module A Module B Module D Module E メッセージバスに送信したメッセージは 他のすべてのモジュールが受信 リンクの設定による 送信元・先の限定 Module の役割は任意 JSONによる 定義ファイル 静的、動的 両方をサポート
  26. 26. Message Bus Local Comm Module Extended Module IoT Hub Mapper IoT Hub Client IoT SDK
  27. 27. リモートモニタリング・制御 多数のIoTデバイスからの収集データ をマージ 先進AIの適用を可能にする、 無限に近いコンピューティング リソースとストレージ リアルタイム応答に必要な ローレーテンシーでタイトな コントロールループ プライバシーデータや知的財産の保護
  28. 28. Message Bus Module
  29. 29. Embedded George http://github.com/ms-iotkithol- jp/AzureIoTGatewayExtention ドローンワークス(株) http://github.com/drone- works/AzureIoTGatewaySDKExtention
  30. 30. Gateway Box
  31. 31. Stream Analytics PowerBI Blob Storage すべてのイベントデー タをアーカイブ保存 ダッシュボード表示 SQL Database EventHubs ソーラーパネル 制御機器 RC485 ソーラーパネル 稼働状況 アラート情報 Armadillo Modbus Azure IoT Gateway SDK KES Software IoT Hub アラート情報を ルーティング SoftBank 3G/4G Module WebJob/ Functions SendGrid 担当者へメールを送信 Microsoft Azure Edge × 金沢エンジニアリングシステムズ プロジェクト全体統括 LTE回線提供 Edgeソフトウェア開発 (Azure IoT Gateway SDKを活 用) Azure IoT Gateway SDKを活用し Edgeソフトウェア開発工期を圧縮 KESのEdge側開発ノウハウを活用し 200種類のプロトコルへの対応を実現可能
  32. 32. Message Bus Local Comm Module Extended Module IoT Hub Mapper IoT Hub Client IoT SDK
  33. 33. Microsoft Azure http://pcn.club/katsuyama/azure201703/
  34. 34. 計画 プロビジョニ ング 構成監視 使用中止 計画: • 管理用メタデータ検討と定義 プロビジョニング: • デバイスの登録と管理用メタデータ設定 構成: • 正常性とセキュリティの維持 • 一括構成変更、ファームウェア更新 監視: • 継続的なモニタリングと異常時の通知 使用中止: • 使用停止と資格情報の安全な破棄 • デバイス交換中の、デバイス情報保持
  35. 35. 49 クラウドのバックエンドサービスDevice App IoT Hub C2D D2C Device Twin Direct Methods テレメタリー クラウドからメッセージを デバイスに送る Properties 経過も通知受信可能な デバイスのメソッドを起動 Properties クラウド側から指定可能な変数 デバイス側由来の変数 クラウド側で付与可能な メタデータ Methods Read/Write Read Read/WriteRead/Notification プロパティ更新、メソッドコールは IoT Hubに履歴として保存される
  36. 36. Microsoft Azure
  37. 37. RegistryManager registryManager = RegistryManager.CreateFromConnectionString(“サービス接続文字列”); await registryManager.OpenAsync(); var newDevice = new Device(newDeviceId); newDevice = await registryManager.AddDeviceAsync(newDevice); var twin = await registryManager.GetTwinAsync(newDevice.Id); var props = new { dmConfig = new { TelemetryCycle = TelemetryCycle, Latitude = Latitude, … } }; Var json = JsonConvert.SerializeObject(props); await registryManager.UpdateTwinAsync(newDevice.Id, json, twin.ETag); 接続 デバイス登録 Twin取得 Desired Properties設定
  38. 38. HostName=IoTHubEndPoint; SharedAccessKeyName =roleName;SharedAccessKey=Base64EncodedAccessKey
  39. 39. var deviceClient = DeviceClient.CreateFromConnectionString(cs, TransportType.Mqtt); await deviceClient.SetDesiredPropertyUpdateCallback(DPUpdateCallback, this); private Task DPUpdateCallback(TwinCollection desiredProperties, object userContext) { return Task.Run(() => { var json = desiredProperties.ToJson(); … }); }
  40. 40. var registedDeviceTwin = await registryManager.GetTwinAsync(deviceId); var rp = JsonConvert.DeserializeObject(registedDeviceTwin.Properties.Reported.ToJson(); var rpJSON = (JObject)JsonConvert.DeserializeObject(rp); var reportedProps = new Models.ReportedProperties() { BatteryLevel = ThingsCar.BatteryLevel,…, ThingsCar.Status }; var json = JsonConvert.SerializeObject(reportedProps); var patch =JsonConvert.DeserializeObject<TwinCollection>(json); await deviceClient.UpdateReportedPropertiesAsync(patch);
  41. 41. ServiceClient serviceClient =ServiceClient.CreateFromConnectionString(cs); var method = new CloudToDeviceMethod("reboot"); var payload = “after 30 seconds…" method.SetPayloadJson(payload); var callResult = await serviceClient.InvokeDeviceMethodAsync(deviceId, method); after 30 seconds…
  42. 42. var deviceClient = DeviceClient.CreateFromConnectionString(cs,TransportType.Mqtt); await deviceClient.SetMethodHandlerAsync("reboot", RebootMethod, this); private Task<MethodResponse> RebootMethod(MethodRequest request, object context) { return Task.Run(() => { … return new MethodResponse( Encoding.UTF8.GetBytes("{¥"Status¥":¥"Rebooting¥"}"),0); }); } ※Payloadは、request.DataAsJsonで取得
  43. 43. IoT Hub Device Twin/Methods Device Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Device Twin/Methods Jobs Schedule and Broadcast Device Twin Changes Set Desired Properties, Tags, Call Methods Queries – SQL like Query Across Device Twin State For Business Logic, Reporting and Compliance JSONで 結果取得
  44. 44. IoT Hub Device ManagementのJobコレクション
  45. 45. IoT Hub デフォルトの メッセージングDevice Device Device Device Twin Properties プロパティ、タグで フィルタリング Tag.ServiceType = … Desired.DeviceType = … • タグ/プロパティで条件付け、 後続の処理を分離 • 大規模 IoT への対応
  46. 46. Microsoft Azure デバイス接続管理 (ID、Device Key) メッセージング (送受信、受信確認) 機器管理 (Device Twin、Query、Job) デバイス IoTシナリオ用 モジュール IoT Edge Ext 計測データ、コマンド HTTPS/AMQPS/MQTT OS/Firmware プロパティ、ジョブ MqTT “IoTシナリオアプリ” FA、医療、流通、リテール、社会インフラなど、 それぞれの事業領域毎の専門アプリケーション “IoT Edge Ext” 特定の事業領域によらず、機器としての管理機能向けロジック アプリ実行状況確認、アプリやファームウェアのアップデートなど
  47. 47. Device Twin メッセージング
  48. 48. Azure IoT Edge IoT Hub Devices Local Storage Azure Machine Learning (Container) Functions RuntimeContainer Management Device Twin Device Twin Azure Stream Analytics (Container) Azure Functions (Container) Cognitive Services (Container) Custom Code (Container) Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin
  49. 49. https://microsoft.qualtrics.com/jfe/form/SV_0oknoIujzm1haOV Microsoft Azure
  50. 50. セッションアンケートにご協力ください  専用アプリからご回答いただけます。 decode 2017  スケジュールビルダーで受講セッションを 登録後、アンケート画面からご回答ください。  アンケートの回答時間はたったの 15 秒です!
  51. 51. Ask the Speaker のご案内 本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて ご説明させていただきます。是非、お立ち寄りください。
  52. 52. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×