BT

GoogleがAndroid Things向けにCloud IoT Core Clientライブラリをリリース

| 作者: Diogo Carleto フォローする 33 人のフォロワー , 翻訳者 編集部T _ フォローする 0 人のフォロワー 投稿日 2018年7月4日. 推定読書時間: 6 分 |

原文(投稿日:2018/06/27)へのリンク

Googleは、開発者がAndroid ThingsデバイスからGoogle Cloud IoT Coreを簡単に使用できるようにするためのクライアントライブラリを公開した。開発者は、IoT Core MQTTブリッジに接続し、デバイスを認証し、デバイステレメトリをパブリッシュし、構成の変更をサブスクライブし、エラーやネットワークの停止を処理できる。

Cloud IoT Coreは、Google Cloud Platform上のフルマネージドサービスで、開発者はグローバルに分散したデバイスからデータを安全に接続、管理、および取り込むことができる。Cloud IoT Coreは、Google Cloud Platformの他のサービスと組み合わせて、IoTデータをリアルタイムに収集、処理、分析、視覚化するためのソリューションを提供する。さらに、Android Thingsは、テレメトリ、強力なコンピュータビジョン、オーディオ処理、機械学習アプリケーション用のデータ収集をサポートするように設計されている。

Cloud IoT Coreクライアントライブラリは、すべてのCloud IoT Core機能の抽象化を提供する。例えば、テレメトリイベント、デバイス状態のパブリッシュ、およびCloud IoT Coreからのデバイス構成の受信などがある。

Cloud IoT Coreは、デバイスレジストリを通じて承認されたデバイスを追跡し、各デバイスは公開鍵を使用してサーバとの認証を行う。Cloud IoT Coreでの認証のために、クライアントライブラリはRSAキーとECCキーの両方をサポートし、JSON Webトークン(JWT)を実装している。

デバイスは、MQTT接続を介してPUBLISHメッセージを発行することによって、テレメトリデータを1つ以上のバケットにパブリッシュできる。メッセージは、次のフォーマットでMQTTトピックにパブリッシュする必要がある。

/devices/{device-id}/events

Cloud IoT Coreを使用して、開発者は接続された各デバイスの状態を監視できる。デバイス状態の更新は、通常、Cloud IoT Coreからの構成更新やファームウェア更新などの外部ソースからの変更など、デバイスの変更によってトリガされる。デバイス状態は、以下の形式でMQTTトピックにパブリッシュされる。

/devices/<device_id>/state

開発者は、Cloud IoT Coreからデバイス設定を送信することでデバイスを制御できる。データは、バイナリデータ、テキスト、JSON、またはシリアル化されたプロトコルバッファなどの任意のフォーマットにすることができる。デバイスがすべての設定アップデートを受け取ることが保証されているわけではないことに注意することは重要である。短時間で多数の更新がリリースされた場合、デバイスは間のバージョンを受信しない可能性がある。

Cloud IoT Coreクライアントライブラリを使うには、Android Thingsプロジェクトのbuild.gradleファイルに次を追加する。

implementation 'com.google.android.things:cloud-iot-core:1.0.0'

次のKotlinの例は、既存のプロジェクトに基づいて新しい構成とクライアントをどのように作成するかを示している。

var configuration = IotCoreConfiguration.Builder().
                         .setProjectId("my-gcp-project")
                         .setRegistry("my-device-registry", "us-central1")
                         .setDeviceId("my-device-id")
                         .setKeyPair(keyPairObject)
                         .build()

var iotCoreClient = IotCoreClient.Builder()
              .setIotCoreConfiguration(configuration)
              .setOnConfigurationListener(onConfigurationListener)
              .setConnectionCallback(connectionCallback)
              .build()

iotCoreClient.connect()

次のKotlinの例は、テレメトリ情報またはデバイス状態を公開する方法を示している。

private fun publishTelemetry(temperature: Float, humidity: Float) {
    // payload is an arbitrary, application-specific array of bytes
    val examplePayload = """{
        |"temperature" : $temperature,
        |"humidity": $humidity
        |}""".trimMargin().toByteArray()
    val event = TelemetryEvent(examplePayload, topicSubpath, TelemetryEvent.QOS_AT_LEAST_ONCE)
    iotCoreClient.publishTelemetry(event)
}

private fun publishDeviceState(telemetryFrequency: Int, enabledSensors: Array<string>) {
    // payload is an arbitrary, application-specific array of bytes
    val examplePayload = """{
        |"telemetryFrequency": $telemetryFrequency,
        |"enabledSensors": ${enabledSensors.contentToString()}
        |}""".trimMargin().toByteArray()
    iotCoreClient.publishDeviceState(examplePayload)
}

Googleでは、Android Thingsにセンサーハブを実装し、接続されたセンサーからセンサーデータを収集し、Google Cloud IoTトピックに公開する方法を示すサンプルも提供した。

Cloud IoT Coreに関する詳細は、Cloud IoT Coreページ公式ドキュメントGoogleのIoT Developersコミュニティでご覧いただけます。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT