- Microsoft Azure IoT Hubとは何ですか?
- AzureIoTハブの作成
- RaspberryPiを使用してAzureIoTのテスト回路を構築するために必要なコンポーネント
- RaspberryPiを使用したAzureIoT –ハードウェアの回路図
- Azure IoTHubでデータを公開するためのRaspberryPiのプログラミング
- Azure IoT Hubでデータを公開する–テスト
マイクロソフトのクラウドコンピューティングサービスであるAzureIoT Hubを使用すると、開発者は単一のプラットフォームで数十億のIoTデバイスを接続、監視、および管理できます。ホームオートメーションシステム、セキュリティ、監視、監視システムなど、さまざまなIoTアプリケーションですでに使用されています。Azure IoTハブの機能を実証するために、Raspberry Pi、DHT11温度、湿度センサーを使用して小さな回路を構築し、センサーデータを処理します。最後に、 MQTTプロトコルを使用してセンサーデータをAzureIoTサーバーに公開します。このチュートリアルでは、Azureサーバーをセットアップおよび構成し、RaspberryPiを使用してデータを送信する方法を学習します。
Microsoft Azure IoT Hubとは何ですか?
Azure IoT Hub は、IoTデバイスを接続、監視、および制御できるマネージドサービスのコレクションです。また、デバイスメーカーがAzure クラウドを利用してIoTアプリケーションを構築、展開、管理するのに役立つデータの視覚化と分析を備えた、デバイスの安全な通信も含まれています 。 Azure IoT HubのDevice-to-Cdテレメトリデータにより、接続されたIoTデバイスの状態を知ることができ、Cloud-to-Deviceメッセージにより、接続されたデバイスにコマンドと通知を送信できます。たとえば、スマートホームオートメーションシステムを使用して、さまざまなセンサーデータを収集し、それらをAzure IoT Hubに送信して、視覚化、保存、および管理することができます。 Azure IoTHubインターフェイスから出力デバイスを制御することもできます。
IoTアプリケーションとデバイスの双方向通信の中央ハブは、デバイスクラウドとクラウドデバイスの両方の通信をサポートします。また、デバイスからクラウドへのテレメトリ、デバイスからのファイルアップロード、要求と応答の方法など、複数のメッセージングパターンもサポートします。各デバイスがIoTハブに安全に接続できるようにするデバイスごとの認証方法を使用できます。これで、Azure IoT Hubの基本を理解したので、システムのセットアップに移りましょう。
AzureIoTハブの作成
Microsoft Azure サービスのセットアップに必要なすべてのセットアップを行う準備ができてい ますが、その前に、Microsoftアカウントを持っていることを確認してください。それがない場合は、単にサインアップすることができます。その後、 portal.azure.com を使用してAzureポータルに アクセスし 、ログインします。
ログインすると、Azureのホームページにアクセスしてください選択し たリソースの作成]ボタンをし、その後の検索 のIoTハブ で 検索マーケットプレイス フィールド。 検索結果から[IoTHub]を選択 し、[作成]を選択し ます。以下の画像は、プロセスのより良いアイデアを提供します。
IoTハブを作成するために必要な詳細を入力します。
[サブスクリプション] セクションで、ハブに使用するサブスクリプションを選択する必要があります。私たちの場合、トライアルアカウントを選択し、「 無料トライアル」を 選択しました。
次に、[リソースグループ]セクションで、リソースグループを選択します。持っていない場合は、[新規作成]をクリックして新しい リソースを作成し、リソースの名前を入力する必要があります。
地域 セクションでは、ドロップダウンメニューを使用して希望の地域を選択できます。
IoTをハブ名前のセクションでは、あなたがする必要がある電子あなたのハブの名前をNTER。これは一意である必要があります。必要なすべての通信は、この名前で行われます。
[サイズとスケール]タブで、[ 無料利用枠]を 選択し、[次へ]をクリックします。 次に、「レビュー+作成」をクリックします。 IoTハブの作成には数分かかります。 作成したIoTハブの名前をクリックします。次の画像に示すように、ウィンドウからホスト名 を書き留め ます。次に 、[設定]で[共有アクセスポリシー]をクリックします 。共有アクセスポリシーは、下の画像で強調表示されています。 ポリシーの下のiothubownerオプションをクリックし ます。 今後の参照のために、主キー と 接続文字列-主キーを書き留め ます。ここで、IoT Hubに新しいデバイスを登録するには、[IoTデバイス]をクリックし ます。 [デバイスエクスプローラー]ペインで、[追加]をクリックし てデバイスをハブに追加します。
[新しいデバイス]タブに次の情報を入力します。
- デバイスID:デバイスのIDを 入力します。デバイスIDは一意である必要があります。
- 認証タイプ: 対称鍵を選択します。
- キーの自動生成: このチェックボックスを選択します。
- デバイスをIoTハブに接続する: [有効にする]を クリックします。
デバイスが作成されると、新しく作成されたデバイスは[デバイスエクスプローラー]セクションで見つけることができます 。デバイスの名前をクリックします。デバイスの詳細が表示されます。書き留め 主キー と 接続文字列のプライマリキー デバイスのを。これはコミュニケーションに必要なので重要です。
これが完了すると、ハードウェア側に進むことができます。
RaspberryPiを使用してAzureIoTのテスト回路を構築するために必要なコンポーネント
この回路のハードウェア部分は非常に単純であるため、コンポーネントの要件も非常に単純です。必要なコンポーネントのリストを以下に示します。
- Raspberry Pi 3B(他のモデルのPiも使用できます)
- マイクロSDカード-16GB
- DHT11センサー
- マイクロUSB5V、2.4A電源
RaspberryPiを使用したAzureIoT –ハードウェアの回路図
Azure IoT with RaspberryPi プロジェクトの完全な回路図を以下に示します。これはフリッツを使用して構築されました。回路図と接続に従って、自分で回路を作成します。
上記の回路は、温度と湿度のデータをMicrosoft IoTHubに送信します。この回路では、DHT11 センサーを使用して温度と湿度の データを収集 し、データ処理デバイスとしてRaspberry Pi3Bを使用してい ます。DHT11センサーには3つのピンがあります。VCCピンとGNDピンはセンサーに5VDC電源を供給するために使用され、DHT11のデータ出力ピンはRaspberryPiのGPIO4に接続されます。DHT11温度および湿度センサーをRaspberryPiとインターフェースする方法を学びたい場合は、このトピックに関する以前の記事を確認してください。また、このセンサーを使用してIoT Raspberry Pi WeatherStationを構築しました。
Azure IoTHubでデータを公開するためのRaspberryPiのプログラミング
このプロジェクトのコーディングを開始する前 に、AzureポータルでAzureクラウドシェル(CLI) を作成する必要があり ます。これは多くの点で役立ちます。そのためには、以下に示すように、ポータルのAzureクラウドシェルボタンをクリックします。次に、赤でマークされた[ストレージの作成]オプションをクリックします。
行われたら、CLIを開き、インストールするには、以下のコマンドを実行することができます アズールアドオン」の センサデータを表示するために使用されます。
az拡張機能add--name azure-cli-iot-ext
それが完了したら、Raspberry Piに依存関係をインストールして、DHT11センサー と通信し、 AzureIoTサービスの通信プロセスを簡単にする必要があります。そのためには、Raspberry Piターミナルを開いて、プロジェクトで使用されている依存パッケージをインストールします。
まず、Raspberry PiのDHTライブラリをダウンロードしてから、ルートフォルダーから抽出し、次のコマンドを実行してインストールする必要があります。
sudo python setup.py install
インストールが正常に完了したら、次のコマンドを実行して、すべての依存パッケージをAzure IoTHubにインストールします。
sudo pip3 install azure-iot-device sudo pip3 install azure-iot-hub sudo pip3 install azure-iothub-service-client sudo pip3 install azure-iothub-device-client
すべての前提条件のインストールが完了したら、Pythonでコードを記述します。これを行うには、最初にすべてのライブラリをインポートします。
import random import Adafruit_DHT import time from azure.iot.device import IoTHubDeviceClient、Message
このプロジェクトでは、Raspberry Piのピン4を使用してDHT11データからのデータを処理しているため、次のように宣言する必要があります。
センサー= Adafruit_DHT.DHT11 ピン= 4
次に、コードの接続文字列を定義します。以前に保存したデバイスプライマリ接続文字列に置き換えます。
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
次に、Azure IoTHubにデータを送信するために使用される配列を作成します。以下のように行うことができます。
MSG_SND = '{{"温度":{温度}、 "湿度":{湿度}}}'
次に、whileループを定義しました 。while ループでは、湿度と温度の両方のデータが Adafruit_DHT.read_retry 関数を使用して処理され ます。さらに、2つの特別な変数を定義し、それらの変数に出力データを割り当てます。
Trueの場合: 湿度、温度= Adafruit_DHT.read_retry(sensor、pin)
次に、以前に定義した接続パラメーターを使用してIoTハブを接続する関数を記述します。
def iothub_client_init(): client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING) return client
最後に、次のステップで、温度と湿度の両方のデータが、以下のコードに示す形式を使用してAzureHubに送信されます。また、try and catchメソッドを使用して、コードにエラーがあるかどうかを識別しました。
def iothub_client_telemetry_sample_run(): try: client = iothub_client_init() print( "IoT Hubにデータを送信し、Ctrl-Cを押して終了します") while True: msg_txt_formatted = MSG_SND.format(温度=温度、湿度=湿度) メッセージ=メッセージ( msg_txt_formatted) print( "メッセージの送信:{}"。format(message)) client.send_message(message) print( "メッセージが正常に送信されました") time.sleep(3)
Azure IoT Hubでデータを公開する–テスト
コードを正常に記述したら、コードをコンパイルしてエラーがないか確認します。コードブロックが正常にコンパイルされたら、コードを実行します。ターミナルウィンドウに、「メッセージは正常に送信されました」というメッセージが表示されます。ウィンドウのスクリーンショットを以下に示します。
ここで、Azure IoT Hubのデータを表示するには、ポータルに移動してCLIターミナルをクリックし、次のコマンドを実行して、その中の資格情報を置き換えます。
az iot hub monitor-events --hub-name XYZ --device-id XYZ
注意:
XYZをハブ名とデバイスIDに置き換えます。
上記のコマンドを実行すると、画面に次のようなデータが表示されます。これは、RaspberryPiから送信されたものと同じデータです。
これでこのチュートリアルは終了です。この記事が気に入って、何か新しいことを学んだことを願っています。記事に関して質問がある場合は、下のコメントセクションに残してください。または、Electronics Forumを使用して、より迅速で優れた応答を得ることができます。