見出し画像

39. IoT アプリを EFLOW をゲートウェイにして Azure IoT Hub と接続する

前回の記事                        次回の記事

はじめに

今回は、前回の記事で作成した Azure IoT SDK for Python を使って Sense Hat からデータを収集する IoT アプリケーションを、IoT Edge のダウンストリームデバイスとして Azure IoT Hub に接続します。Ubuntu による IoT Edge のゲートウェイ設定は、この定期購読マガジンの29~34でさんざんくどく解説したので、今回は、ゲートウェイの部分をWindows for Linux 上で動く、EFLOW(Azure IoT Edge for Linux on Windows)で試してみることにします。Ubuntu の場合と同じかと思いきや、結構違っているので、通しで、EFLOW によるゲートウェイ設定を、2023/3/16現在の Microsoft Docs や Github の公開情報で試していってみることにします。
今回も、Ubuntu の時と同様、誤記やアンドキュメンテッドな事項が多数あって、試行錯誤をやったのですが、前のほうでさんざん苦悩した状況は書いたので、今回は、こうすればスムーズに設定できるよ、という内容を書いていくことにします。(苦笑)
多分、英語の記事も含め、スムーズに設定を進める一通りの手順は、インターネット上には公開されていない(多分、ChatGPTに聞いても無理w?)と思うので、実際にやってみたい方は是非、この記事をご購読ください。

EFLOW とは

ちょっとだけ復習です。EFLOW は、定期購読マガジンの 「20. Windows 11 で IoT Edge を試す」 で一回試しています。EFLOW そのものの話はこの記事を見て、復習してください。
前の記事でも解説した通り、EFLOW は Windows の Hyper-V 上に配置されて動きます。

EFLOW

前回、Microsoft Docs のチュートリアルに従ってインストールとセットアップを行いましたが、ゲートウェイシナリオで使う場合は、インストール方法など若干異なるので、注意が必要です。

EFLOW をゲートウェイシナリオで使う場合の相違点

単に、EFLOW を Windows PC や Windows Server にインストールして単体の IoT Edge デバイスとして使うだけなら、特に気にせず作業が進められます。
ゲートウェイとして使う場合には、ダウンストリームデバイスが SSL で接続するための X.509 証明書のインストールが当然必要になるだけでなく、Windows PC 上の VM で動いている IoT Edge ランタイムに対する、Windows PC がつながっているネットワークに接続された別のデバイスからのアクセスが発生します。EFLOW が動いている Hyper-V ベースの仮想マシン(以下、VM と略します)は、その Windows PC のシェルからのアクセスも含め、デフォルトでは、SSH 接続用のポート 22 しか空いていません。ダウンストリームからのアクセスを可能にするには、HTTPS の 443、MQTTs の 8883、AMQPs の 5671 のポートを開ける必要があります。
加えて、デフォルトでは EFLOW の VM は、Windows PC の Hyper-V 用の内部ネットワークスイッチを使うようになっているので、Windows PC 外 からのネットワーク参照ができるようなネットワークスイッチを使うようにインストールが必要です。

EFLOW のゲートウェイ用のインストール手順

手順の開設の前に、使った環境を書いておきます。

使った環境

使った環境は以下の通りです。

  • Windows PC

    • Surface Laptop Studio

  • Windows OS

    • Windows 11 Pro、バージョン:22H2、OSビルド:22621.1413

  • その他

    • USB 接続 LAN アダプター ※ 有線接続 LAN、ダウンストリームデバイス接続用

作業手順

作業手順は、以下の通りです。

ここから先は

19,378字 / 5画像

¥ 5,000

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?