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

では、早速IotHubの作り方を解説します。
今回は、IotHubを作成して、pythonでメッセージを送信します。
手順は以下の通りです。
- IotHubの作成
- Iotデバイスの作成
- メッセージの送信
それぞれの手順について、詳しく解説します。
AzureでIotHubの作成
では、早速IotHubを作成しましょう。まず、AzureポータルサイトからIotHubを作成します。
Azureのポータルサイトより、”iothub”と検索して、IotHubの画面に移動します。そして「+追加」ボタンを押します。

IotHubの作成画面では、IotHub名やプランを選びます。今回は以下のように設定しました。
- IoTHub名 infra-iothub-test
- ネットワーク パブリックエンドポイント(全てのネットワーク)
- スケール F1

作成ボタンを押して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デバイス」→「+新規作成」をクリックします。

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

これで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のメトリックを見ても、メッセージが来ていることが分かります。

【Azure】IotHubの使い方まとめ
最後にまとめです。
今回はIotHubを作成してpythonのプログラムからメッセージを送信しました。
手順は、以下の通りでした。
- AzureでIotHubを作成
- IotHubでデバイスを登録
- pythonのサンプルプログラムに接続文字列を入力
- プログラムを実行してメッセージを送信
今回の記事はこちらのドキュメントを参考にしました。
https://docs.microsoft.com/ja-jp/azure/iot-hub/quickstart-send-telemetry-python
当サイトでは、AzureやAWSなどのクラウド技術やインフラをメインに解説しているので、興味のある方は是非ご覧ください。