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
0
71
Android ThingsとFirebaseでIoT入門
DevFest Ishinomaki 2018 にて発表
Yuta Tomiyama
October 28, 2018
Tweet
Share
More Decks by Yuta Tomiyama
See All by Yuta Tomiyama
なんでもやってみる勇気
yt8492
0
52
Android Autoが思ったよりしんどい話
yt8492
0
170
apollo-kotlinにcontributeした話
yt8492
0
94
DMM TVのSDカードダウンロード機能を実装した話
yt8492
1
770
今だからこそ知りたいKotlin Multiplatform
yt8492
0
260
State management and API calls in Jetpack Compose: Learning Apollo + Jetpack Compose through React Hooks
yt8492
0
1.2k
サーバーフレームワークの仕組みが気になったので車輪の再発明をしてみた
yt8492
0
180
Compose for Webを始めよう
yt8492
0
370
Compose Multiplatform 1.0.0
yt8492
0
150
Other Decks in Programming
See All in Programming
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
220
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
8
2.2k
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
250
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3.3k
CloudNativePGがCNCF Sandboxプロジェクトになったぞ! 〜CloudNativePGの仕組みの紹介〜
nnaka2992
0
190
Vue.jsでiOSアプリを作る方法
hal_spidernight
0
120
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
4.2k
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
3.2k
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
8
1.3k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.1k
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
390
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
7
1.5k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
KATA
mclloyd
29
14k
A designer walks into a library…
pauljervisheath
205
24k
Faster Mobile Websites
deanohume
305
30k
No one is an island. Learnings from fostering a developers community.
thoeni
20
3.1k
The Cult of Friendly URLs
andyhume
78
6.2k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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が合わさり最強に見える
ご静聴ありがとうございました!