Azure IoT Hub

Delphi/C++ Builder アプリケーションを MQTT 経由で Azure IoT Hub に接続します。SAS トークンまたは X.509 デバイス認証、デバイスツイン、ダイレクトメソッド呼び出し、クラウドからデバイスへのメッセージングに対応しています。

TsgcIoTAzure_MQTT_Client

Azure IoT Hub 向け MQTT 3.1.1 クライアントです。SAS トークンまたは X.509 認証、デバイスツイン(desired/reported)、ダイレクトメソッド、クラウドからデバイスへのメッセージ、Azure 固有のトピック規約をサポートしています。

コンポーネントクラス

TsgcIoTAzure_MQTT_Client

プロトコル

Azure IoT Hub MQTT

対応プラットフォーム

Windows, macOS, Linux, iOS, Android

エディション

Standard / Professional / Enterprise

ハブを設定して認証情報を入力し、接続する

IoT Hub ホスト、deviceId、SAS キー(または X.509 証明書)を設定してから接続し、$iothub/twin/... をサブスクライブして devices/<id>/messages/events/ にパブリッシュしてください。

uses
  sgcIoT;

var
  Azure: TsgcIoTAzure_MQTT_Client;
begin
  Azure := TsgcIoTAzure_MQTT_Client.Create(nil);
  Azure.IoT.Host     := '.azure-devices.net';
  Azure.IoT.DeviceId := 'sensor-001';

  // SAS token authentication
  Azure.IoT.Authentication := iotAuth_SAS;
  Azure.IoT.SAS.Key := 'base64-shared-access-key';

  Azure.OnMQTTConnect := procedure(Connection: TsgcWSConnection;
    const Session: Boolean; const ReasonCode: Integer;
    const ReasonName: string;
    const ConnectProperties: TsgcWSMQTTCONNACKProperties)
  begin
    // subscribe to cloud-to-device messages
    Azure.Subscribe('devices/sensor-001/messages/devicebound/#');

    // subscribe to twin desired-property updates
    Azure.Subscribe('$iothub/twin/PATCH/properties/desired/#');
  end;

  Azure.Active := True;

  // publish telemetry
  Azure.Publish('devices/sensor-001/messages/events/',
    '{"temp":22.5}');
end;
// uses: sgcIoT
TsgcIoTAzure_MQTT_Client *Azure = new TsgcIoTAzure_MQTT_Client(this);
Azure->IoT->Host     = ".azure-devices.net";
Azure->IoT->DeviceId = "sensor-001";
Azure->IoT->Authentication = iotAuth_SAS;
Azure->IoT->SAS->Key = "base64-shared-access-key";

Azure->Active = true;

主な機能

Microsoft が想定するユーザー名/パスワード/トピック文字列を自動生成する、Azure IoT Hub 向けのあらかじめ設定済み MQTT クライアントです。

SAS トークン認証

IoT.Authentication := iotAuth_SAS を設定してデバイスキーを指定すると、コンポーネントが適切なリソース URI を持つ短命の SAS トークンを生成し、HMAC-SHA256 で署名します。

X.509 認証

IoT.Authentication := iotAuth_Certificate を設定してリーフ証明書と秘密鍵を読み込みます。IoT Hub のサムプリントおよび CA 署名フローをサポートしています。

デバイスツイン

desired プロパティのプッシュを受け取るには $iothub/twin/PATCH/properties/desired/# をサブスクライブし、reported 状態を更新するには $iothub/twin/PATCH/properties/reported/?$rid= にパブリッシュしてください。

ダイレクトメソッド

受信したダイレクトメソッド呼び出しには $iothub/methods/POST/# をサブスクライブし、$iothub/methods/res/<status>/?$rid=<id> にレスポンスペイロードで返信してください。

クラウドからデバイスへのメッセージ

ハブによってキューに入れられたメッセージを受け取るには devices/<id>/messages/devicebound/# をサブスクライブしてください。コンポーネントは各メッセージを標準の OnMQTTPublish イベントで配信します。

再接続安全性

基底クライアントの WatchDog が再接続時に再認証(新しい SAS トークンを生成)し、すべてのアクティブなトピックに再サブスクライブします。アプリケーションには継続的なストリームとして見えます。

仕様・参考資料

このコンポーネントが実装するプロトコルの公式ソースです。

ドキュメント・デモ

コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。

オンラインヘルプ — TsgcIoTAzure_MQTT_Client このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\10.IoT_Clients すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。
技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。
ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。

Delphi を Azure IoT に接続しませんか?

体験版をダウンロードして、Delphi デバイスから Azure IoT Hub に IoT テレメトリをストリーミングしてください。