Azure_IoT_Central_ESP32をSeeed Studio XIAO ESP32C3で動かしてみた(グループSAS)

関連記事。

Azure SDK for Embedded Cを、Arduinoライブラリ化してサンプルコードを追加したazure-sdk-for-c-arduinoというGitリポジトリがあります。

github.com

ここに含まれているサンプルコードAzure_IoT_Central_ESP32を試しました。

どのサンプルコードを試す?

サンプルコードを見ると、

  • Azure_IoT_Central_ESP32
  • Azure_IoT_Central_ESP32_AzureIoTKit
  • Azure_IoT_Hub_ESP32
  • Azure_IoT_Hub_ESP8266
  • Azure_IoT_Hub_RealtekAmebaD

の5つが含まれています。

xxx_ESP32の対象ボードは、特定のものではなく、ESPRESSIF ESP32のMCUを対象にしている模様。明記されていないのではっきり分からず。

xxx_ESP32_AzureIoTKitの対象ボードは、ESPRESSIF ESP32-Azure IoT Kit

xxx_ESP8266の対象ボードは、ESPRESSIF ESP8266のMCUを対象にしている模様。明記されていないので(ry

xxx_RealtekAmebaDの対象ボードは、Realtek AMB21/AMB22

Azure IoT Central vs Azure IoT Hubは、操作性が良いAzure IoT Centralにしましょう。(デバイスを作るスキルはAzure IoT Hubの方が低いのだが...)
Azure_IoT_Central_ESP32 vs Azure_IoT_Central_ESP32_AzureIoTKitは、ESPRESSIF ESP32-Azure IoT Kitを使うか否かで決まるのですが、持っていたはずのESPRESSIF ESP32-Azure IoT Kitが見当たらない...引っ越しの際に捨ててしまったのか...なので、選択の余地なく、Azure_IoT_Central_ESP32にします。

ESP32ってことなら、手元にいっぱい転がっているSeeed Studio XIAO ESP32C3を使いましょうw

さあ、動かそう

まず、Arduino IDEのライブラリフォルダに、azure-sdk-for-c-arduinoをcloneします。

git clone https://github.com/Azure/azure-sdk-for-c-arduino

Arduino IDEのExamplesでAzure_IoT_Central_ESP32が選べるようになりますので、ポチします。

次はAzure IoT Centralです。Devices画面でデバイスを追加して、そのデバイスのConnect画面からID scopeDevice IDSAS Keyをコピっておきます。

サンプルコードへのWi-FiとAzure IoT Centralの接続情報は、iot_configs.hにハードコードって感じですw Wi-FiSSIDパスフレーズIOT_CONFIG_WIFI_SSIDIOT_CONFIG_WIFI_PASSWORDに書いて、さきほどコピったAzure IoT Centralの接続情報をDPS_ID_SCOPEIOT_CONFIG_DEVICE_IDIOT_CONFIG_DEVICE_KEYに書きます。

iot_configs.h:

#define IOT_CONFIG_WIFI_SSID              "seeed2g"
#define IOT_CONFIG_WIFI_PASSWORD          "seeedjapan"
#define DPS_ID_SCOPE                      "0ne0014D070"
#define IOT_CONFIG_DEVICE_ID              "device1"
  #define IOT_CONFIG_DEVICE_KEY             "THqFJ3rv2EJsLPM1xxxxxxxxxxxxxxxxxxxx"

最後に、Arduino IDEでデバイスにUploadします。
何事も無く、すんなり動きました。(簡単すぎる...)

わかったこと、気づいたこと

  • Azure_IoT_Central_ESP32はSeeed Studio XIAO ESP32C3で動いた
  • Azure IoT Centralのテンプレート設定は不要(Model ID dtmi:azureiot:devkit:freertos:Esp32AzureIotKit;1を自動割当)
  • X.509認証にも対応しているっぽい(iot_configs.hの雰囲気)