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

IoT Platform:Android Things デバイスの IoT Platform への接続

最終更新日:Aug 21, 2026

このドキュメントでは、室内空気質監視プロジェクトを例として、Google Android Things ハードウェアデバイスを Alibaba Cloud の IoT Platform に接続する方法について説明します。

ハードウェア

  • プロジェクトのデバイスリスト

    このプロジェクトでは、以下のハードウェアデバイスが必要です。

    デバイス

    画像

    備考

    NXP Pico i.MX7D

    開発ボード

    Android Things

    Android Things 1.0 ベースです。

    詳細については、NXP Pico i.MX7D I/O の「デベロッパーガイド」をご参照ください。

    説明

    代わりに Raspberry Pi を使用することもできます。 詳細については、「Raspberry Pi サーバーのリモート制御」をご参照ください。

    DHT12

    温湿度センサー

    Android Things

    データ通信には I2C プロトコルを使用します。

    ZE08-CH2O

    ホルムアルデヒド検出センサー

    Android Things

    データ通信には UART プロトコルを使用します。

  • 配線図

    Android Things

    • DHT12 センサーの SCL (クロック信号) ピンと SDA (データ) ピンを、開発ボードの I2C バスの対応する SCL ピンと SDA ピンに接続します。

    • ZE08-CH2O センサーの TXD (送信データ) ピンを開発ボードの RXD (受信データ) ピンに接続し、センサーの RXD ピンをボードの TXD ピンに接続します。

プロダクトとデバイスの作成

  1. IoT Platform コンソールにログインします。

  2. プロダクトを作成します。

    1. [インスタンス概要] ページで、対象のインスタンスを見つけてインスタンス名をクリックし、[インスタンス詳細] ページに移動します。

      重要

      Enterprise Edition インスタンスは、日本 (東京) リージョンでのみ利用可能です。 インスタンスが別のリージョンにある場合は、この手順をスキップしてください。

      IoT Platform コンソールにログインします。 ナビゲーションペインで [インスタンス概要] をクリックすると、現在のリージョン内の Enterprise Edition インスタンスとそのステータスが表示されます。

      [インスタンス概要] ページでは、現在のリージョンにおける Enterprise Edition インスタンスの実行ステータス (インスタンスタイプ (Standard)、環境 (本番環境/テスト環境)、オンラインデバイス数、メッセージのアップリンクおよびダウンリンクの TPS クォータ情報など) を確認できます。

    2. ナビゲーションペインで、[デバイス管理] > [プロダクト] を選択します。

    3. [プロダクト] ページで、[プロダクトの作成] をクリックします。 詳細については、「プロダクトの作成」をご参照ください。

  3. TSL モデルを定義します。

    1. プロダクトが作成されたら、[TSL モデルの定義] をクリックします。

    2. [プロダクト詳細] ページの [機能の定義] タブで、[下書きを編集] > [カスタム機能の追加] をクリックします。

    3. 次のプロパティを追加します。

      プロパティ

      識別子

      タイプ

      説明

      温度

      temperature

      float

      -50~100

      DHT12 温湿度センサーによって収集された温度データ。

      湿度

      humidity

      float

      0~100

      DHT12 温湿度センサーによって収集された湿度データ。

      ホルムアルデヒド濃度

      ch2o

      double

      0~3

      ZE08-CH2O センサーによって収集されたホルムアルデヒド濃度。

    4. [公開] をクリックして TSL モデルを公開します。

  4. デバイスを作成します。

    [デバイス] ページで [デバイスの追加] をクリックして、プロダクトにデバイスを作成します。 詳細については、「単一デバイスの作成」をご参照ください。

Android Things デバイスの開発

  1. Android Studio を使用して Android Things プロジェクトを作成し、マニフェストファイルにインターネットのパーミッションを追加します。

    <uses-permission android:name="android.permission.INTERNET" />
  2. Gradle ファイルに eclipse.paho.mqtt の依存関係を追加します。

    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0'
  3. I2C 経由で DHT12 温湿度センサーからデータを読み取るようにデバイスを設定します。

    private void readDataFromI2C() {
            try {
                byte[] data = new byte[5];
                i2cDevice.readRegBuffer(0x00, data, data.length);
                // データのチェック
                if ((data[0] + data[1] + data[2] + data[3]) % 256 != data[4]) {
                    humidity = temperature = 0;
                    return;
                }
                // 湿度データ
                humidity = Double.valueOf(String.valueOf(data[0]) + "." + String.valueOf(data[1]));
                Log.d(TAG, "humidity: " + humidity);
                // 温度データ
                if (data[3] < 128) {
                    temperature = Double.valueOf(String.valueOf(data[2]) + "." + String.valueOf(data[3]));
                } else {
                    temperature = Double.valueOf("-" + String.valueOf(data[2]) + "." + String.valueOf(data[3] - 128));
                }
                Log.d(TAG, "temperature: " + temperature);
            } catch (IOException e) {
                Log.e(TAG, "readDataFromI2C error " + e.getMessage(), e);
            }
        }
  4. UART 経由で ZE08-CH2O ホルムアルデヒド検出センサーからデータを読み取るようにデバイスを設定します。

    try {
                    // データバッファ
                    byte[] buffer = new byte[9];
                    while (uartDevice.read(buffer, buffer.length) > 0) {
                        if (checkSum(buffer)) {
                            ppbCh2o = buffer[4] * 256 + buffer[5];
                            ch2o = ppbCh2o / 66.64 * 0.08;
                        } else {
                            ch2o = ppbCh2o = 0;
                        }
                        Log.d(TAG, "ch2o: " + ch2o);
                    }
                } catch (IOException e) {
                    Log.e(TAG, "ZE08CH2O read data error " + e.getMessage(), e);
                }
  5. デバイスを IoT Platform に接続してデータを報告します。

    /*
    ペイロード形式
    {
      "id": 123243,
      "params": {
        "temperature": 25.6,
        "humidity": 60.3,
        "ch2o": 0.048
      },
      "method": "thing.event.property.post"
    }
    */
    MqttMessage message = new MqttMessage(payload.getBytes("utf-8"));
    message.setQos(1);
    String pubTopic = "/sys/${YourProductKey}/${YourDeviceName}/thing/event/property/post";
    mqttClient.publish(pubTopic, message);

完全なサンプルコードについては、GitHub にある「Alibaba Cloud IoT」プロジェクトをダウンロードしてください。

リアルタイムデータの表示

デバイスが起動したら、IoT Platform コンソールにログインします。 [デバイス詳細] ページに移動します。 [ステータス] タブで、デバイスのリアルタイムのプロパティデータを確認できます。