SlideShare a Scribd company logo
ANDROID THINGS & KOTLIN
ANDROID THINGSとKOTLINで作るIOT
2018/05/24 ワイヤレスジャパン 日本Androidの会セッション
自己紹介
金田浩明(かねだひろあき)
▸ Android技術者
▸ 著書に「はじめてのAndroidプログラミング」などがある
▸ 先月発刊の第3版はKotlin対応!
Twitter:@emboss369
Facebook:hiroaki.kaneda
ANDROID THINGSとKOTLINで作るIOT
CONTENTS
▸ Android Thingsとは
▸ Kotlinとは
▸ Android Things ✕ Kotlin ✕ Deep Leaning
▸ テレビ漬け防止強制OFFガジェット
▸ Google Cloud IoT
ANDROIDTHINGS
とは
WHAT IS ANDROID
THINGS?
テキスト
ANDROID THINGSとは何か?
▸ AndroidをベースとしたIoT向けプラットフォーム
出典: https://androidthings.withgoogle.com/#!/
テキスト
ANDROID THINGSのハードウェア
▸ 生産プラットフォーム
▸ 開発プラットフォーム
出典:https://developer.android.com/things/hardware/
テキスト
ANDROID THINGS
▸ 特徴
▸ Android開発経験
▸ Googleが開発
▸ 周辺機器インターフェース
▸ Google連携
テキスト
ANDROID開発経験をそのまま活かせる
▸ Android SDKのサブセット
▸ Googleが管理
▸ コンソール
▸ 自動アップデート
テキスト
カーネルやファームウェアはGOOGLEが開発
ANDROID FRAMEWORK
HARDWARE LIBRARIES
LINUX KERNEL
Googleが管理
テキスト
周辺機器インタフェースで機器にアクセス
▸ Peripheral I/O API
▸ GPIO/PWM/I2
C/SPI/UART
USER DRIVER
PERIPHERAL I/O
ユーザーが管理
GPIO PWM I2
C SPI UART
テキスト
▸ 物理ボタン → AndroidのButton
テキスト
GOOGLEサービスとの連携
▸ Google Play Services
▸ Firebase
▸ Google Cloud
テキスト
これまでのIOTデバイス
デバイス製造・OS開発
高コスト
時間がかかる
一貫性のない言語
IDE
OS
セキュリティ
問題
テキスト
ANDROID THINGSの特徴
Google管理Android セキュリティ&自動化
IOTのアーキテクチャ
デバイスとゲートウェイ 接続 デバイスとデータ管理
サービス管理
APIゲートウエイ
外部サービス
ストレージ
クラウドストレー
ジ
データ保管
データインテグレーション
データ正規化 データ解析
解析データ
ダッシュボード管理者画面
IP利用可能
デバイス
IP利用不可
能デバイス
IOTゲート
ウェイ
プロトコルゲートウェイ
メッセージブローカー
インテグレーション
セキュリティ・ログイン・
認証・モニタリング
デバイス管理・OTA
KOTLINとは
WHAT IS KOTLIN?
テキスト
JAVAからKOTLINへ
▸ Google正式サポート
▸ Android開発も徐々にKotlinへ移行
▸ 将来的にはほぼ置き換わるかも
テキスト
KOTLINはどんな言語なのか?
▸ Java代替言語
▸ モダン・シンプル
▸ Java経験者にとって学習コスト小
テキスト
KOTLINの特徴
▸ 相互運用性
▸ 静的型付け言語
▸ オブジェクト指向
▸ 関数型プログラミング
▸ 安全
x yf(x)
ANDROID THINGS ✕
KOTLIN ✕ DEEP 
LEANING
INTEGRATION
ANDROID THINGSとKOTLIN
▸ Androidの知識
▸ モダンな開発環境
▸ 安全な言語
AI & DEEP LEANING
▸ 深層学習もできる
▸ TensorFlow Lite
▸ Edge Computing
クラウドコンピューティング
サーバ

負荷増大
ネットワーク
負荷増大
エッジコンピューティング
{person:祖父,祖母,父,母,子供}
通信量低減
サーバ負荷低減
テレビ漬け防止
強制OFF
ガジェット
A COUCH POTATO IS
SOMETHING
THAT I DON'T WANT TO BE.
テレビ漬け防止強制OFFガジェット
概要
▸ 子供ごとのTV視聴時間を管理
▸ テレビは一日1時間!
▸ 超えたら強制TV OFF!
構成
Cloud
Mode
Mode
{person:父}
①クラウドへ保存
②機械学習
③学習済みモデルをIoT機器に
④IoT側で判定
⑤機械学習による分類
⑥クラウドに保存 ⑦解析
ANDROID STUDIOでプロジェクト作成
ANDROID STUDIOでプロジェクト作成
ANDROID STUDIOでプロジェクト作成
ANDROID STUDIOでプロジェクト作成
カメラを接続する
▸ Googleのサンプルコード
▸ https://github.com/androidthings/
doorbell#trigger_an_image_capture
▸ android.hardware.camera2
OPENCVで顔認識
▸ サードパーティ製ライブラリもOK
▸ OpneCVの場合、Androidと全く同じ手順で導入可能
FIREBASEへ画像を送信
com.google.firebase.storage.StorageReference
TENSORFLOWで学習
▸ 集めた顔画像を学習、父、母、姉、弟を分類
▸ 転移学習(Transfer Learning)
IMAGE_SIZE=128
ARCHITECTURE="mobilenet_0.50_${IMAGE_SIZE}"
python -m scripts.retrain 
 --bottleneck_dir=../face/bottlenecks 
 --model_dir=../face/models/ 
 --summaries_dir=../face/training_summaries/"${ARCHITECTURE}" 
 --output_graph=../face/model/retrained_graph.pb 
 --output_labels=../face/model/retrained_labels.txt 
 --architecture="${ARCHITECTURE}" 
 --image_dir=../face/faces
TENSORFLOW LITEへ変換
▸ コマンドでTensorFlow Liteへ変換
▸ QUANTIZED_UINT8を使うとサイズを減らせる
IMAGE_SIZE=128
toco 
 --input_file=../face/model/retrained_graph.pb 
 --output_file=../face/model/optimized_graph.lite 
 --input_format=TENSORFLOW_GRAPHDEF 
 --output_format=TFLITE 
 --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 
 --input_array=input 
--output_array=final_result 
 --inference_type=FLOAT 
 --input_data_type=FLOAT
ANDROID THINGSでTENSORFLOW LITEを使う
▸ TensorFlow Lite
▸ https://github.com/googlecodelabs/tensorflow-for-
poets-2/
▸ https://codelabs.developers.google.com/codelabs/
tensorflow-for-poets-2-tflite/#3
GOOGLE
CLOUD IOT
MQTT BROKER
GOOGLE CLOUD PLATFORM & GOOGLE CLOUD IOT
▸ IoTのためのゲートウェイ
▸ MQTT ブローカー
▸ Cloud IoTはGCPと連携
▸ 機械学習と連携
IOTのシステム一例
出典:https://cloud.google.com/solutions/architecture/real-time-stream-processing-iot?hl=ja
テキスト
IOTのアーキテクチャ
デバイスとゲートウェイ 接続 デバイスとデータ管理
サービス管理
APIゲートウエイ
外部サービス
ストレージ
クラウドストレー
ジ
データ保管
データインテグレーション
データ正規化 データ解析
解析データ
ダッシュボード管理者画面
IP利用可能
デバイス
IP利用不可
能デバイス
IOTゲート
ウェイ
プロトコルゲートウェイ
メッセージブローカー
インテグレーション
セキュリティ・ログイン・
認証・モニタリング
デバイス管理・OTA
ANDROID THINGSとKOTLINで作るIOT
まとめ
ANDROID THINGSとKOTLINで作るIOT
▸ Androidエコシステム
▸ GoogleがUpdate &セキュリティパッチ提供
▸ モダンな言語Kotlinも使える
▸ TensorFlowでDeep Leaning &エッジコンピューティング
▸ Google Cloud IoTを使えばIoT機器もクラウドIoTフレーム
ワークも一気通貫

More Related Content

PDF
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
PDF
Android 10年の軌跡と将来の展望 ~多様性の爆発を繰り返す10年目のドロイド~
PDF
An Overview of Android Things at jag201702
PDF
基調講演「モバイル市場とこれからの動向」~日本Androidの会の歩みと絡めて~
PDF
Azure上のIoT Solution、WeDXのご紹介
PDF
[Jagys]android41+開発ツール紹介
PDF
[Cloud OnAir] ビッグデータ事例紹介 株式会社IDOMさまのデータ分析と運用 (LIVE) 2018年6月21日 放送
PDF
Android dev summit 2019 recap
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
Android 10年の軌跡と将来の展望 ~多様性の爆発を繰り返す10年目のドロイド~
An Overview of Android Things at jag201702
基調講演「モバイル市場とこれからの動向」~日本Androidの会の歩みと絡めて~
Azure上のIoT Solution、WeDXのご紹介
[Jagys]android41+開発ツール紹介
[Cloud OnAir] ビッグデータ事例紹介 株式会社IDOMさまのデータ分析と運用 (LIVE) 2018年6月21日 放送
Android dev summit 2019 recap

Similar to Android ThingsとKotlinで作るIoT (20)

PDF
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
PPTX
Introduction to the Thunder Cloud Project Technical Committee
PPTX
Windows ChatGPT Bing AI
PPTX
Trat_sprint2
PPTX
Iotlitercy wg no7
PDF
Android,Brillo,ChromeOS
PDF
[Io2012]android41+開発ツール紹介
PPT
アンドロイド勉強会第二回 080525 3
PDF
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
PDF
Azure IoT Edge - EdgeAI #5
PPT
Android Abc2009 Fall Shima091130 1
PDF
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
PPTX
DroidKaigi 2018 参加報告会
PDF
Azure IoT Edge入門
PPTX
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
PDF
新しい認証技術FIDOの最新動向
PDF
IoTとは何?
PPTX
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
PPTX
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
PPTX
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
Introduction to the Thunder Cloud Project Technical Committee
Windows ChatGPT Bing AI
Trat_sprint2
Iotlitercy wg no7
Android,Brillo,ChromeOS
[Io2012]android41+開発ツール紹介
アンドロイド勉強会第二回 080525 3
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Azure IoT Edge - EdgeAI #5
Android Abc2009 Fall Shima091130 1
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
DroidKaigi 2018 参加報告会
Azure IoT Edge入門
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
新しい認証技術FIDOの最新動向
IoTとは何?
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
Ad

More from Hiroaki Kaneda (6)

PDF
SwiftUI宣言型Swift構文によるUI構築のパラダイムシフト
PPTX
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
PPTX
Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
PPTX
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
PPTX
ディープラーニングとROSで作る自動運転ロボット
PPTX
AppleWatch発売!Apple Watch WatchKit勉強会-Notification
SwiftUI宣言型Swift構文によるUI構築のパラダイムシフト
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
ディープラーニングとROSで作る自動運転ロボット
AppleWatch発売!Apple Watch WatchKit勉強会-Notification
Ad

Android ThingsとKotlinで作るIoT