Kotlin
IoT
AndroidThings

ワイヤレスジャパン2018 Androidセッション Android ThingsとKotlinで作るIoT

ワイヤレスジャパン2018に参加してきましたのでその結果をまとめています。

内容の間違い、誤字脱字等はご了承ください。正確なところは、本家のサイトを参照いただければと思います。

タイトル等

タイトル

ワイヤレスジャパン2018 Androidセッション Android ThingsとKotlinで作るIoT

演者

  • 金田浩明さん ブリリアントサービス

日時

2018/05/24 11:00-12:20のうち1回目

関連リソース

金田さんスライド
Android Thingsの概要とKotlinでのLチカ(別の方の記事)

概要

Androidを利用したIoT開発を行う上での概要や、実例について知ることができました。

Android Thingsとはなにか

Androidの開発経験をそのまま生かして、IoTを操作することができる。

Android SDKのサブセットとなる。カーネルやファームウェアはGoogleが開発し、ユーザードライバーは機器メーカー、またはユーザーが開発する。

ハードウェアの知識がなくてもよい

周辺機器のインタフェースとして、IoT物理にアクセスするため、ハードウェアの知識がなくてもよい。例えば、ソフトウエアのボタンを制御する感覚でハードウェアのボタンを制御できる。

つまり、スマートフォンの開発経験を生かして、IoTの開発を行うことができる。

JavaからKotinへ

AndroidではJavaからKotinへ開発言語が移行するという方向になる。

特徴

  • 文脈から型推論を行う。
  • オブジェクト指向言語である。
  • 先進的なコーディングスタイルを、関数型プログラミング。Javaよりも安全に(Nullチェック、クラスの型チェック)などが厳格になっている

クラウドコンピューティングから、エッジコンピューティング

ディープラーニングは、クラウドコンピューティングでも行えるが、IoT側でも行えるようになっているので、クラウドコンピューティングから、エッジコンピューティングという方向性がある。

Demo

テレビ付け防止強制OFFガジェット

誰が何時間テレビを見たのかというのを管理し、警告してくれるガジェットを自作した。

内部的な処理としては、画像をOpenCVで抜き出した、Android ThingsとTensorFlowで学習モデルを作って、人を区別している。このガジェットをAndroidで簡単に作ることができた。

  1. OpenCVで顔認識
  2. FireBaseに画像転送
  3. Tensorflowで顔認識。転移学習で1~2分
  4. Android ThingsでTensorflow Liteに変換

ソースコード
TFLite Android

GoogleのIot

Google Cloud IoTは、IoTサービス用の PaaS の位置付けとなる。

Azure IoT Hubみたいなもの。デバイスとクラウドをつなくことがクラウド上で全部できる。AIや機械学習もできる。GoogleのIoTに関する本気度というものが見えてくる