
Googleがモノのインターネット用の更新されたプラットフォームを導入-Android Things
12月13日、GoogleはAndroid開発をサポートするモノのインターネット向けプラットフォームの開発者向けプレビューのリリースを正式に発表しました。 これで、Android開発に精通しているすべての人がIoTデバイスを作成する世界に簡単に参入できるようになります。
3種類のデバイスが公式にサポートされています。
さらに2つのサポートがまもなく予定されています。
- インテル®Joule™570x
- NXP Argon i.MX6UL
アプリケーションの開発に必要なのは、Android Studioと上記のデバイスの1つだけです。
アプリ

Android Things用の構造アプリ
公式リポジトリですべての例を見ることができます 。 新しいアプリケーションを開始するためのテンプレートがあります。
原則として、複数のアプリケーションをAndroid Thingsデバイスにインストールすることはできないため、デバイスの起動時に1つのアプリケーションが自動的に起動します。
アプリケーションを表示するには、通常のAndroidアプリケーションと同じUIツールキットを使用しますが、システムステータスバーとナビゲーションボタンはサポートしていません。 アプリケーションが機能するためにディスプレイが存在する必要はなく、すべてのイベントがアプリケーションアクティビティに自動的に配信されます。
アプリケーションのgradleファイルで、minSdkVersion 24をインストールし、提供された依存関係を追加します。
provided 'com.google.android.things:androidthings:0.1-devpreview'
アプリケーションのAndroidManifestでは、以下を指定する必要があります。
<uses-library android:name="com.google.android.things"/>
アプリケーションには、デバイスの起動時に開始され、電源がオフになると破棄されるアクティビティが1つしかありません。
デバイスの起動時にアクティビティが自動的に開始されるようにするには、追加のパラメーターをデバイスに追加する必要があります。
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
標準スキンも利用可能です:Theme.DeviceDefault
周辺機器
このプラットフォームは、GPIO、PWM、I2C、SPI、UARTなどの一連のハードウェアインターフェイスをサポートしています。 すぐに利用できるさまざまな周辺機器を接続するためのライブラリ:
- RGB LED apa102
- BMX280温度センサー
- ボタン
- タッチセンサーキャップ12xx
- UART GPS
- ディスプレイHT16K33、TM1637、OLEDディスプレイssd1306
- 加速度計MMA7660FC
- サーボ駆動
- スピーカー
- レインボーハット
独自のドライバーを作成することもできます。 ここで、Googleはユーザードライバーの概念を紹介します 。これは、センサーのドライバーが既存のドライバーサービスをサポートすることを前提としているため、さまざまなプラットフォームで簡単に使用できます。

ほぼ等しく
次の3種類のドライバーがサポートされています。
主な関心はあらゆる種類のセンサーの接続であると思うので、これについてさらに詳しく説明します。
まず、ドライバーオブジェクトを作成する必要があります。 センサードライバーはUserSensorDriver抽象クラスを継承し、2つのメソッドのみをオーバーライドする必要があります。
read-センサーから新しいデータを受信するために呼び出され、UserSensorReadingクラスのオブジェクトとしてデータを返す必要があります。
setEnabled-スリープモードへの切り替えまたはエネルギーの節約に使用されます。
次に、UserSensor.Builderを使用して、UserSensorオブジェクトを作成し、名前、製造元を指定し、タイプを設定して、ドライバーを渡します。 UserDriverManagerマネージャーにセンサーを登録し、アプリケーションが閉じられたときに登録を無効にすることを忘れないでください。
ドライバーの作成の詳細については、 こちらをご覧ください 。
デモ例からわかるように、アプリケーションは2つの主要部分で構成されています。 すべての作業と補助クラスBoardDefaultsが実行されるアクティビティ。アプリケーションが実行されているプラットフォームに応じて、特定のデバイスが接続されているピンの文字列名を返します。
サポートされているデバイスを操作するために、システムはPeripheralManagerServiceを提供します。これにより、特定のプラットフォームで使用可能なピン/バスのリストを取得し、デバイスが接続されているピンを示すことができます。
デバイスの各タイプには、制御およびフィードバックインターフェイス用の独自のメソッドセットがあります。
LED接続例
そして、ブール値を渡します
PeripheralManagerService pioService = new PeripheralManagerService(); mLed = pioService.openGpio(BoardDefaults.getLedGpioPin()); mLed.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
そして、ブール値を渡します
mLedGpio.setValue(value);
ボタン接続例
そして、ボタンのクリックをキャッチします
mButtonInputDriver = new ButtonInputDriver( BoardDefaults.getGPIOForButton(), Button.LogicState.PRESSED_WHEN_LOW, KeyEvent.KEYCODE_SPACE); mButtonInputDriver.register();
そして、ボタンのクリックをキャッチします
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SPACE) { // button pressed return true; } return super.onKeyUp(keyCode, event); }
多数のセンサーを接続した例を詳しく見ることができます。
プラットフォーム機能
最初に制限について。 多くの標準アプリケーションとコンテンツプロバイダー、および一部のGoogle APIは、プラットフォームでは利用できません。
ステータスバーがないため、通知はサポートされていないため、NotificationManager APIは使用できません。
しかし、かなりの数が利用可能です:
キャスト
運転
Firebase分析
Firebaseクラウドメッセージング(FCM)
Firebaseクラッシュレポート
Firebaseリアルタイムデータベース
Firebaseリモート設定
Firebaseストレージ
フィット
インスタンスID
場所
近く
場所
モバイルビジョン
そして、ここでは、Firebase Realtime Database、Firebase Analytics、およびFCMのサポートが利用できることを喜ばずにいられません。これにより、インターネット経由でAndroid Thingsデバイスを簡単に管理し、それらからデータを収集できます。
作業中に権限を要求する必要もありません。AndroidManifestで指定されたすべての権限が自動的に付与されます。
Google織り
Android Thingsとともに、GoogleはWeaveプラットフォームを導入しました。 プラットフォームには以下が含まれます。
- Weave Server。デバイスの登録、データ交換、ストレージ、および他のGoogleサービスとの統合を実行します。
- デバイスをWeaveサーバーに接続するためのSDK。 現在サポートされているプラットフォーム:Linux、Qualcomm QCA4010、およびMarvell MW302。
- 特別なアプリケーションを含む、開発と統合のためのツールのセット。
Weaveは現在、HVACコントローラー、電球、ソケット、テレビ、スイッチをサポートしています。
プラットフォームのすべての機能にアクセスするには、Googleグループに参加する必要があります。
WeaveはすでにPhilips HueおよびSamsung SmartThingsデバイスで使用されており、Belkin WeMo、LiFX、Honeywell、Wink、TP-Link、First Alertなどの多くのメーカーがプラットフォームの使用に関して合意しています。
費用
Raspberry Pi 3モデルB〜4000回こする。 + 500rからの電源。 (Arduino Breakout Kitを搭載したIntel®Edison〜7500摩擦。+ 800摩擦からの電源供給。)+ SDカード32GB〜700摩擦。 700 rのプロトタイピングボード。
その結果、素晴らしい新年の贈り物には約7,000ルーブルの費用がかかります。 また、いくつかのセンサーを備えたRaspberry Pi 3などの既製キットもほぼ同じ価格で提供されています。
明けましておめでとうございます!
→ Android Thingsの公式Webサイト
→ 例付きのGithubリポジトリ
→ Google Weavrの公式Webサイト