Azure IoT Hubを触ってみた


# はじめに
> 今回は、IoTデバイスシミュレーターを使ってAzure IoT Hubにデータを送信する所までをやってみたいと思います。

# アジェンダ
- Azure IoT Hub作成
- シミュレーターからデータ送信
- 受信データ確認

# Azure IoT Hub作成

Azureポータルを開いてIoT Hubの作成をします

- IoT Hubサービスから「IoT Hubの作成」を押します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/5a7bf92b-3b60-7da6-d24f-9d8575978a99.png)


- 作成に必要な項目に入力して「確認および作成」ボタンをクリックして作成します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/47bc5394-2a34-dd9a-2d2a-9093abb76850.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/510f6853-ea43-f890-d51b-c94fff719ddc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/fbc06cf5-5daf-196b-a84e-e80b8b7372ad.png)

- 項目からIoTデバイスを選択し「+新規」ボタンをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/beefd2c7-7f0f-2739-632d-5a4971e67164.png)

- 任意のデバイスIDを入力して「保存」ボタンをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/a30bd3f1-6dff-567d-bd52-eb8fa9bebcd9.png)

- 保存ができたら作成したデバイス名が追加されます 
  - ここにRaspberryPiを紐づけます(シミュレーター)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/0b0faa99-c205-c84b-34c7-d52a56e10f6c.png)


 - 作成したIoTデバイスを押して接続キーを確認します
   - 「プライマリー接続文字列」というのを後で使うのでコピーしてメモに保存しておいてください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/9a225d53-7bf6-3502-f715-8d583a370326.png)


# デバイスシミュレーターでIoT Hubに送信する

[RaspberryPiシミュレーター概要](https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-web-simulator-get-started)

 - 以下のサイトからRaspberryPiシミュレーターを起動します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/eb143739-2d85-65c6-b0e9-90706f962456.png)

 - 15行目に先ほど、コピーした接続文字列をペーストして「Run」ボタンをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/cc74a3ce-a67d-fb86-94f1-3f6951cbc6f1.png)

 - 以下の実行ログのようにデータが送信されていたら成功です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/9be1d4c0-7a29-c2c6-c275-a736b8885a4d.png)

# 受信データの確認
 RaspberryPiからIoT Hubに送信されたデータのログを確認します

 - 以下のサイトからAzure Iot Explorerをインストールします
  - IoT Explorerは、Macでは使えない？のかMacでの受信ログの確認のやり方がわからなかったので、今回はwindowsで受信ログの確認をします(Macで受信ログの確認方法を知っている方がいたら教えてください笑)

[IoT Explorer](https://docs.microsoft.com/ja-jp/azure/iot-pnp/howto-use-iot-explorer)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/dff5ad28-f951-eed0-6028-fb4ad7718007.png)

 - 最新のバージョンの.msiをダウンロードします (2021/5/15現在は、0.14.3)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/dca4e3c4-d798-263b-4a09-e9efdec8a05c.png)

 - IoT Explorerを開き、項目からIoT hubを選択し+Add connectionを押します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/c3ee5534-f1e3-2666-bdb6-937cf6c5f98e.png)

 - 以下の画面になったらAzure ポータルのIoT Hubを開いて、項目から共有アクセスポリシー → iothubowner → プライマリー接続文字列をコピーします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/6b4ea165-7d7b-632f-bdb2-ee6afdc25a68.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/90223662-8bb7-54e5-8620-5361e4421f69.png)

 - 先ほど、コピーした共有アクセスポリシーの接続文字列をConnection stringにペーストして「Seve」ボタンをクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/413d5f32-a2f3-54cd-8b71-c2e7697a3cf8.png)

 - Azure ポータルで作成したIoTデバイスが表示されるのでクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/6d3c8620-3edf-6f66-332c-90f10368b9ad.png)

 - 項目から「Telemetry」を選択し「Start」ボタンをクリックし、受信ログを開始します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/8b623d3a-55dd-b433-681d-45bd908f146f.png)


 - 以下のようにRaspberryPiシミュレーターからIoT Hubにデータが送信されている事がわかります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/941f8a43-4ce1-6c90-619a-0544b18bda77.png)



# まとめ
RaspberryPiシミュレータからIoT Hubにデータを送信するところまでやってみました。
次回は、IoT Hubで受け取ったデータをAzure Functionsで受け取る所までやってみようと思います