Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android ThingsとFirebaseでIoT入門
Search
Yuta Tomiyama
October 28, 2018
Programming
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Android ThingsとFirebaseでIoT入門
DevFest Ishinomaki 2018 にて発表
Yuta Tomiyama
October 28, 2018
More Decks by Yuta Tomiyama
See All by Yuta Tomiyama
ビルドプロセスをデバッグしよう!
yt8492
2
480
モバイルアプリ開発を始めよう!
yt8492
0
120
Git勉強会
yt8492
0
210
なんでもやってみる勇気
yt8492
0
130
Android Autoが思ったよりしんどい話
yt8492
0
250
apollo-kotlinにcontributeした話
yt8492
0
190
DMM TVのSDカードダウンロード機能を実装した話
yt8492
1
1k
今だからこそ知りたいKotlin Multiplatform
yt8492
0
340
State management and API calls in Jetpack Compose: Learning Apollo + Jetpack Compose through React Hooks
yt8492
0
1.3k
Other Decks in Programming
See All in Programming
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
200
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
270
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
210
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
160
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
dRuby over BLE
makicamel
2
380
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
130
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
720
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
370
New "Type" system on PicoRuby
pocke
1
990
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
280
1B+ /day規模のログを管理する技術
broadleaf
0
100
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
240
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
210
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
ラッコキーワード サービス紹介資料
rakko
1
3.7M
30 Presentation Tips
portentint
PRO
1
330
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Facilitating Awesome Meetings
lara
57
7k
The Pragmatic Product Professional
lauravandoore
37
7.3k
A better future with KSS
kneath
240
18k
Believing is Seeing
oripsolob
1
150
Transcript
Android ThingsとFirebaseで IoT入門
自己紹介 氏名:富山 雄太 所属:会津大学 学部1年(26期) 好きな言語:Kotlin GitHub:https://github.com/yt8492 趣味でAndroidアプリ開発やってます Facebookのすがた Twitterのすがた
ID:yt8492
今回のゴール ・Android Thingsの導入と基本的な使い方がわかる ・Firebaseの導入とFirestoreの基本的な使い方がわかる ・遠隔で画面とGPIOの更新ができる
Android Thingsとは? ・Googleが「IoT向けのプラットフォーム」として発表したOSなどを含むソフトウェア群(ら しい) ・ここでは主にIoT機器向けOSとして扱います
Androidアプリ開発者にとってのメリット ・Androidアプリ開発のノウハウをIoTデバイスの開発に活かすことができる ・使い慣れたIDE(Android Studio)で開発ができる ・Java/Kotlinが使える ・GPIOの制御が比較的簡単にできる ・画面をAndroidアプリのように設計できる
Android Thingsのはじめかた Android Things Console(https://partner.android.com/things/console/)へ移動
プロダクトを追加 ・Product name プロダクト名 ・SOM type 今回はRaspberry Pi 3を選択 ・Product
description プロダクトの説明を記入(省略可)
microSDカードに書き込むイメージをビルド ・Modelsからモデル(ここではqa3dgk)を選択 ・CREATE A BUILD CONFIGURATIONを選択
ビルドの設定 ・ビルド名を入力 ・Android Thingsのバージョンを選択 その他は初期設定で大丈夫です
ビルドしたイメージのダウンロード ・ActionsからDevelopmentを選択しダウンロード ・Zipファイルを解凍しimgファイルをmicroSDカードへ書き込み
Android Thingsを起動
Android Thingsアプリの実装 通常のアプリ開発とほぼ同じ
Target Android Devicesの設定 Android Thingsにチェックをつけ る
Activityを選択 今回はAndroid Things Empty Activityを選択
Activityの設定をして完了 Launch activity automatically on boot にチェックを入れるとデ バイス起動時に自動的にアプリ が起動する
Android ThingsでのGPIOの使い方 AndroidManifest.xmlに <uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" /> を追加 PeripheralManager.getInstance() でPeripheralManagerのインスタンスを取得 manager.openGpio("GPIO名")
でGPIOを取得していろいろする
Android ThingsでのRaspberry Pi 3のGPIO一覧 公式より引用 https://developer.android.com/things/hardware/raspberrypi
Lチカさせてみる val manager = PeripheralManager.getInstance() val gpio = manager.openGpio("BCM4") gpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW)
(1..10).forEach { gpio.value = !gpio.value Thread.sleep(1000) }
Firebaseとは ・Googleが運営しているBaaS ・データーベースをはじめ様々な機能がある(時間が足りずあまり調べることができませ んでした) ・様々なプラットフォーム / 言語に対応(Android, iOS, Web, Unity
など) ・バックエンドに詳しくなくてもクラウドを利用したアプリを開発できるのでAndroidエンジ ニアにもうれしい
Firebaseのはじめかた Firebase console(https://console.firebase.google.com/)へ移動
プロジェクトを追加 ・プロジェクト名 ・プロジェクトID ・アナリティクスの地域 ・Cloud Firestoreのロケーション
プロジェクト作成完了
実際にアプリを作ってみよう 今回作るもの ・ラズパイでLチカと画面にテキスト表示 ・テキストとLEDの状態はスマホから遠隔でセットできるようにする
Firebaseにアプリを追加する Android Studioであらかじめラズパイ用と スマホ用にそれぞれプロジェクトを作成し ておく パッケージ名以外は省略可
設定ファイルをダウンロード(重要) ・google-services.jsonをダウンロード ・ダウンロードしたファイルをアプリモジュー ルのルートディレクトリに追加
アプリのbuild.gradleファイルを修正 プロジェクト レベルの build.gradle dependencies { classpath 'com.google.gms:google-services:4.0.1' //追加 }
アプリレベルのbuild.gradle dependencies { implementation 'com.google.firebase:firebase-core:16.0.1' //追加 } apply plugin: 'com.google.gms.google-services' //追加
Firebaseがアプリに正常に追加されたかチェック
データーベースの追加
セキュリティルールの作成 今回はテストモードで開始 実際のプロダクト開発ではロックモードで 開始し適切にセキュリティルールを作成し てください
データーベース作成完了
コレクションの追加 ・「コレクションを追加」をクリック ・コレクションIDを入力
最初のドキュメントを追加 ・ドキュメントID 省略した場合自動的に設定される ・フィールド フィールド名の設定、タイプの設定(string, number, boolean, map, array, null,
timestamp, geopoint, referenceから選択)
データーベースに値の登録が完了
アプリのbuild.gradleの編集 dependencies { implementation 'com.google.firebase:firebase-firestore:15.0.0' //追加 }
ラズパイ側アプリの実装
スマホ側アプリの実装
実行してみよう!
None
None
まとめ ・Android Thingsを利用することによりAndroidアプリ開発者は比較的楽にIoTデバイス を開発することができる ・Firebaseを利用することによりバックエンドの知識があまりなくてもクラウドを利用した アプリを開発することができる
まとめ Android ThingsとFirebaseが合わさり最強に見える
ご静聴ありがとうございました!