すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:Paho MQTT for Cライブラリを使用してデバイスをIoT Platformに接続する

最終更新日:Apr 09, 2025

このトピックでは、オープンソースのPaho MQTTプロジェクトfor Cを使用してデバイスをIoT Platformに接続し、メッセージングを有効にする方法について説明します。

使用状況ノート

このトピックでは、共通ユーザーの権限を使用してすべての操作を実行します。 管理者権限を必要とする特定の操作を実行する場合は、sudoコマンドを実行します。

前提条件

プロダクトとデバイスは、IoT Platformコンソールインスタンスに作成されます。 デバイス証明書とMQTTエンドポイントが取得されます。 証明書情報には、ProductKey、DeviceName、およびDeviceSecretが含まれます。 詳細については、以下のトピックをご参照ください。

開発環境の準備

この例では、Ubuntu 16.04-LTSを開発環境として使用します。 次のコマンドを実行して、開発環境を構築します。

sudo apt-getアップデート
sudo apt-get install build-essential git sed cmake 

Paho MQTTライブラリのダウンロード

  1. 次のコマンドを実行して、C用のPaho MQTTライブラリを複製します。

    git clone https://github.com/eclipse/paho.mqtt.c.git
    説明

    このトピックでは、masterブランチを使用してサンプルコードを開発します。 コミットIDf7799da95e347bbc930b201b52a1173ebbad45a7です。

  2. 次のコマンドを実行して、Paho MQTT for Cライブラリをコンパイルおよびインストールします。

    mkdirビルド
    cmake ..
    make -j
    sudo make install
    cd ..
    rm -rfビルド 

デバイスをIoT Platformに接続する

  1. デモパッケージからデモパッケージをダウンロードし、パッケージをディレクトリに解凍します。 ディレクトリに含まれるファイルを次の表に示します。

    ファイル

    説明

    CMakeLists.txt

    プロジェクトの構成ファイル。

    src/samples/MQTTAsync_publish.c

    このファイルには、デバイスをIoT Platformに接続して通信を有効にするために使用されるロジックコードが含まれています。

    src/samples/aiot_mqtt_sign.c

    このファイルには、MQTT接続パラメータを取得するために使用されるコードが含まれます。 aiot_c_demo.cファイルを実行すると、aiotMqttSign() 関数が呼び出され、usernamepassword、およびclientIdパラメーターの値が取得されます。

    src /サンプル /CMakeLists.txt

    デモプロジェクトの構成ファイル。

  2. src/samples/MQTTAsync_publish.cファイルで、ProductKeyDeviceName、およびDeviceSecretをデバイス証明書情報に置き換えます。

    #define「製品のProductKey」
    # definite EXAMPLE_DEVICE_NAME「デバイスのDeviceName」
    # define「デバイスのDeviceSecret」 
  3. src/samples/MQTTAsync_publish.cファイルでは、tcp:// iot-0 ************ l.mqtt.iothub.aliyuncs.com:443がエンドポイントを示します。

    説明

    パブリックインスタンスおよびEnterprise Editionインスタンスのエンドポイントとエンドポイントの形式の詳細については、「インスタンスのエンドポイントの表示」をご参照ください。

    #define ADDRESS "tcp:// iot-0 ************ l.mqtt.iothub.aliyuncs.com:443"
  4. このトピックの「Download the Paho MQTT library for C」に記載されているファイルを、ファイルが格納されているディレクトリに基づいて、手順1で説明されているファイルに置き換えます。

  5. 次のコマンドを実行して、プロジェクトをコンパイルします。

    mkdir build // プロジェクトのルートディレクトリでコマンドを実行します。
    cdビルド
    cmake ..
    make -j 
  6. プロジェクトをコンパイルした後、buildディレクトリで次のコマンドを実行してプログラムファイルを実行します。

    . /src/samples/MQTTAsync_publish

    プログラムファイルを実行すると、次のローカルログが生成されます。

    clientid: ty *** 1&a1 **** kc | timestamp=2524608000000、_v=paho-c-standard-1.0.0、securemode=3、signmethod=hmacsha256、lan=C |
    ユーザー名: ty *** 1&a1 **** kc
    パスワード: 1BB ************************************************** 3621
    Hello Worldの公開を待っています!
    トピック /sys/a1 ***** kc/ty ******** 1/thing/event/property/post for client
    成功した接続
    トークン値1のメッセージ配信確認
    成功した切断