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 上に配置されて動きます。
前回、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、ダウンストリームデバイス接続用
作業手順
作業手順は、以下の通りです。
ここから先は
¥ 5,000
この記事が気に入ったらチップで応援してみませんか?