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

IoT Platform:Android ThingsハードウェアをIoT Platformに接続する

最終更新日:Apr 17, 2025

この記事では、Google Android ThingsハードウェアをIoT Platformに接続する方法について説明します。 この例では、室内空気試験プロジェクトが使用される。

ハードウェア

  • 本プロジェクトのハードウェア一覧

    次の表では、室内空気試験プロジェクトで使用されるハードウェアについて説明します。

    ハードウェア画像補足

    NXP Pico i.MX7D

    開発ボード

    Android Things

    Androidのもの1.0に基づいています。

    詳細については、「NXP Pico i.MX7Dの開発者ガイド」をご参照ください。

    説明 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 (データ受信) ピンに接続し、ZE08-CH2OのRXDピンを開発ボードのTXDピンに接続します。

IoT Platformコンソールでプロダクトとデバイスを作成する

  1. IoT Platformコンソールにログインします。
  2. プロダクトを作成します。
    1. [概要] ページで、[すべての環境] をクリックします。 [すべての環境] タブで、管理するインスタンスを見つけ、インスタンスIDまたはインスタンス名をクリックします。

    2. 左側のナビゲーションウィンドウで、[デバイス] > [製品] を選択します。
    3. [プロダクト] ページで、[プロダクトの作成] をクリックしてプロダクトを作成します。 詳細については、「プロダクトの作成」をご参照ください。
  3. TSLモデルを作成します。
    1. プロダクトの作成後に表示されるページで、[TSLの作成] をクリックします。
    2. [プロダクト詳細] ページで、[機能の定義] タブをクリックします。 [ドラフトの編集] をクリックし、[自己定義フィーチャーの追加] をクリックします。
    3. 次の表に示すプロパティを追加します。
      プロパティIDデータ型有効値説明
      Temperaturetemperaturefloat-100に50温度と湿度センサーDHT12によって収集された温度データ。
      Humidityhumidityfloat0から100温度と湿度センサーDHT12によって収集された湿度データ。
      Formaldehyde concentrationch2odouble0から3ホルムアルデヒド検出センサーZE08-CH2Oによって収集されたホルムアルデヒド濃度。
    4. [オンラインリリース] をクリックして、TSLモデルを公開します。
  4. デバイスを作成します。

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

Android Thingsデバイスを開発する

  1. Android Studioを使用してAndroid Thingsプロジェクトを作成し、ネットワーク権限を追加します。
    <uses-permission android:name="android.permission.INTERNET" />
  2. eclipse.paho.mqttをGradleファイルに追加します。
    実装 '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);
    
                // check data
                if ((データ [0] + データ [1] + データ [2] + データ [3]) % 256 !=データ [4]) {
                    humidity = temperature = 0;
                    return;
                }
                // humidity data
                humidity = Double.valueOf(String.valueOf(data[0]) + "." + String.valueOf (データ [1]);
                Log.d(TAG, "humidity: " + humidity);
                // temperature data
                if (data[3] < 128) {
                    temperature = Double.valueOf(String.valueOf(data[2]) + "." + String.valueOf (データ [3]);
                } else {
                    temperature = Double.valueOf("-" + String.valueOf(data[2]) + "." + String.valueOf (データ [3] - 128);
                }
    
                Log.d(TAG, "temperature: " + temperature);
    
            } catch(IOException e){
                Log.e(TAG, "readDataFromI2C error " + e.getMessage(), e);
            }
    
        }
  4. UARTを使用して、ホルムアルデヒド検出センサーZE08-CH2Oからデータを読み取るようにデバイスを設定します。
    try {
                    // data buffer
                    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);
    
    文字列pubTopYourPc = "/sys/${YourProductKey}/${YourDeviceName}/thing/event/property/post";
    
    mqttClient.publish(pubTopic、メッセージ); 

GitHubのaliyun-iot-androidthings-nxpにアクセスして、完全なサンプルプロジェクトをダウンロードできます。

デバイスのリアルタイムデータを表示

デバイスの起動後、IoT Platformコンソールにログインします。 [デバイスの詳細] ページで、[ステータス] セクションでデバイスのリアルタイムプロパティデータを表示します。

Android Things