InfraAcademy

InfraAcademy Blog

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

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

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

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

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

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

手順は以下の通りです。

IotHub手順 - IotHubの作成 - Iotデバイスの作成 - メッセージの送信

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

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

/blog/device-explorer-install

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

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る