175 Views
December 21, 22
スライド概要
XRミーティング2022/12 登壇資料。
IoTなどで情報連携する際に使えるSignalR(Serverless)について調査。
.netstandard 2.0であればプラットフォームの影響を受けにくいのでMeta Quest Pro, HoloLens 2両方で動くアプリも構築可能。詳細はQiitaでも整理(https://qiita.com/miyaura/items/f986bb789bd8a787e2eb)
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
あと数時間が期限のアドベントカレンダーネタ SignalRの調査 2022/12 XRミーティング takabrz1 Takahiro Miyaura
Microsoft MVP for Mixed Reality 2018-2023 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近はMixed Reality Toolkit 3と戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください
本日の内容 今日のアドベントカレンダーがまだ終わらない ✓ XRデバイスでSignalRを使うにはを見直し 簡単なマイホームミニチュアデモもご紹介 2022/12/21 Copyright © 2022 Takahiro Miyaura 3
せっかくなので 実世界の情報をセンシング 2022/12/21 Copyright © 2022 Takahiro Miyaura 4
今回のデモ環境 「また」なんちゃってDigital Twinsを作ってみました。 エアコンの稼働状態を可視化 外気温 室内温度 湿度 ○ ○ ○ SignalR検証かねつつ。。。 センシングできる機器を捜索 エアコンが小細工しやすかったです (後述) 【デモとして実現したこと】 ○ ○ ○ 2022/12/21 Copyright © 2022 Takahiro Miyaura 空調設備の稼働状況をAzure IoTへ送信 複数の機器にテレメトリ情報を同報発信 XRデバイスで可視化 ○ HoloLens / Meta Quest Pro ○ エアコンの状態でアニメーション(風向や、運転モード) 5
今回のデモ環境 2022/12/21 Copyright © 2022 Takahiro Miyaura 6
ここから脱線ですw 2022/12/21 Copyright © 2022 Takahiro Miyaura 7
今回のデモ環境 なぜエアコン? お家にあったのがEchonet対応していた ※Echonet=スマートホームを実現する通信プロトコルの一種。対応機器からの情報取得や操作指示を出すことができる通信規約 https://echonet.jp/about/ チョイスな理由 ✓ node.jsで利用できるechonet-liteライブラリがある ✓ そう、そして今日のテーマであるAzure IoT 関連もNode.jsライブラリがある https://www.npmjs.com/package/echonet-lite そう!ラズパイ等の電子工作でAzure IoTへスマート家電の情報を送ることができるので Echonet対応機器であれば、いとも簡単に制御システムが作れちゃうんです! 2022/12/21 Copyright © 2022 Takahiro Miyaura 8
今回のデモ環境 Azure IoT Hub Event Grid Azure Functions (System Topic) SignalR 今回は対象外 Azure Functions コントローラ (PC) Home Azure Digital Twins Event Grid データ利活用を考える場合、Azure Digital Twinsを通して実施。 ここから各種AIサービスとつなげることで活 用の幅が広がる! テレメトリ情報 2022/12/21 Copyright © 2022 Takahiro Miyaura 9
マイホームからAzure IoT Hubへ Microsoftの公式ドキュメントとサンプルが便利です ○ 【公式ドキュメント】 https://learn.microsoft.com/ja-jp/azure/iot-develop/set-up-environment ○ 【サンプルコード】 https://github.com/Azure/azure-iot-sdk-node (azure-iot-sdk-node¥device¥samples¥javascript¥pnp_simple_thermostat.js) 最低限必要なNode モジュール ○ 【Azure IoT関連】 > npm i azure-iot-device-mqtt > npm i azure-iot-provisioning-device-mqtt > npm i azure-iot-security-symmetric-key ○ 【Echonet – Liteライブラリのインストール】 > npm i echonet-lite 2022/12/21 Copyright © 2022 Takahiro Miyaura 10
次からもとに戻る 2022/12/21 Copyright © 2022 Takahiro Miyaura 11
各種機器への情報発信はSignalR Azure上でRest API公開して利用もできますが。。。 SignalRを使える機器なら通信部品作成の手間が減る ○ 【公式ドキュメント】 https://learn.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-signalrservice?tabs=in-process&pivots=programming-language-csharp ※SignalR Service メッセージを送信するサンプルが役に立ちます こちらもかなり有用なサンプル ○ Azure Digital Twins を Azure SignalR Service と統合する https://learn.microsoft.com/ja-jp/azure/digital-twins/howto-integrate-azure-signalr 2022/12/21 Copyright © 2022 Takahiro Miyaura 12
XRデバイスについては ( ゚д゚)ってならないでくださいね。。。 Unityで開発 ○ UnityでもSignalRのライブラリ使えます。 ○ .NET系は.netstandard 2.0に対応 ○ HoloLens 2もMeta Quest 2/Pro(いい時代) が! SignalRがARM CPUアーキテクチャの64bitではうまくいかず。 ARM 32ビットアプリとして作成すると動いた。 ※まだ調査途中で設定ミスの可能性もあるので、参考程度で。。。 2022/12/21 Copyright © 2022 Takahiro Miyaura 13
XRデバイスについては ( ゚д゚)ってならないでくださいね。。。 XR系気になる人のために【使用ライブラリ】 【Azure関連】 ○ Microsoft.AspNetCore.SignalR.Client(5.0.17) ○ System.IdentityModel.Tokens.Jwt(6.25.0) 【XRデバイス向け】 ○ MRTK3-pre.12 ○ MRTK Input(3.0.0-pre.12) ○ MRTK Standard Assets(3.0.0-pre.12) ○ MRTK UX Conpoments(3.0.0-pre.12) 【HoloLens 2用】 ○ Mixed Reality OpenXR Plugin(1.6.0) 【Meta Quest Pro用】 ○ Meta XR Utilities(46.0.0-preview) ○ Oculuc XR Plugin(3.2.2) ※IL2CPP, .netstandard2.1で32bitライブラリで作成 2022/12/21 Copyright © 2022 Takahiro Miyaura 14
Qiita! アドベントカレンダーには投稿済み(ついさっきだけど) 【日付が変わるまでに解決してるはず】 ○ SignalR Serviceには接続できている。 ○ 各種ライブラリも正常 ○ ただ、送信ができていないっぽいw ○ Why? 2022/12/21 Copyright © 2022 Takahiro Miyaura 15
まとめ 久々にSignalR Serviceを試してみた ✓ ServerlessのSignalR使うと送受信の実装だけで疎通ができ るはずなんですよね(今調査真っ最中) ✓ .netstandard2.0系に対応したライブラリは便利 ✓ クロスプラットフォームがとてもやりやすい 今年もお世話になりました。 来年もまた、みんなでXRのいろいろ楽しみましょう! 2022/12/21 Copyright © 2022 Takahiro Miyaura 16
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ 2022/12/21