Iot Hub

【Azure】IotHubの使い方解説【デバイスからAzureにメッセージを送信】

こんにちは、インフラエンジニアのryuです。

今回は、AzureのIotHubの作り方を1から解説します。IotHubとはIotデバイスからのメッセージを処理するサービスです。IotHubを作成すれば、クラウドにデータを収集して、様々な処理をさせることができます。

【Azure】IotHubの使い方を1から解説

では、早速IotHubの作り方を解説します。

今回は、IotHubを作成して、pythonでメッセージを送信します。

手順は以下の通りです。

それぞれの手順について、詳しく解説します。

AzureでIotHubの作成

では、早速IotHubを作成しましょう。まず、AzureポータルサイトからIotHubを作成します。

Azureのポータルサイトより、”iothub”と検索して、IotHubの画面に移動します。そして「+追加」ボタンを押します。

Azure IotHub

IotHubの作成画面では、IotHub名やプランを選びます。今回は以下のように設定しました。

  • IoTHub名 infra-iothub-test
  • ネットワーク パブリックエンドポイント(全てのネットワーク)
  • スケール F1
IotHubの構成

作成ボタンを押してIotHubが作成されます。

Iotデバイスの作成

IotHubの作成が完了したら、Iotデバイスを作成しましょう!ラズパイのようなものですね。

今回はラズパイは無いので、PCをIotデバイスとして動作させます。pythonを実行させて、メッセージを送信します。

Iotデバイスの実行環境

プログラムの実行環境は以下の通りです。

  • python 3.7.3
  • azure-iot-device 2.1.4

python3.7以上の環境を作成して、「azure-iot-device」をインストールしましょう。

以下のコマンドでインストールできます。

pip install azure-iot-device

IotHubでデバイスを登録する

次に、Iothub側の設定を行います。デバイスを登録してメッセージを受け取れるようにします。

Azureのポータルサイトから「Iotデバイス」→「+新規作成」をクリックします。

IotHubでデバイスを登録

デバイスIDを適当に入力して保存します。

Iotデバイスの作成

これでIotHub側でデバイスの登録ができました。

作成されたデバイスをクリックして、接続文字列をコピーしておきましょう。後ほど使用します。

IotHub接続文字列をコピー

pythonでAzureにIotメッセージを送信する

次に、pythonでAzureにIotメッセージを送信します。

pythonのサンプルプログラムはこちらのリンクよりダウンロードしてください。

https://github.com/Azure-Samples/azure-iot-samples-python/archive/master.zip

ダウンロードしたフォルダを回答して、 iot-hub\Quickstarts\simulated-deviceのパスの中のSimulatedDevice.pyを編集します。

プログラム内の[CONNECTION_STRING]にIotデバイスの接続文字列を入力します。

接続文字列のコピーが完了したらpythonのプログラムを実行させましょう。

python SimulatedDevice.py

実行するとこのようにメッセージの送信に成功したログが出ます。

サンプルプログラムの実行

IotHubのメトリックを見ても、メッセージが来ていることが分かります。

IotHubメッセージの確認

【Azure】IotHubの使い方まとめ

最後にまとめです。

今回はIotHubを作成してpythonのプログラムからメッセージを送信しました。

手順は、以下の通りでした。

  • AzureでIotHubを作成
  • IotHubでデバイスを登録
  • pythonのサンプルプログラムに接続文字列を入力
  • プログラムを実行してメッセージを送信

今回の記事はこちらのドキュメントを参考にしました。

https://docs.microsoft.com/ja-jp/azure/iot-hub/quickstart-send-telemetry-python

当サイトでは、AzureやAWSなどのクラウド技術やインフラをメインに解説しているので、興味のある方は是非ご覧ください。

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!