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
75
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
210
モバイルアプリ開発を始めよう!
yt8492
0
69
Git勉強会
yt8492
0
150
なんでもやってみる勇気
yt8492
0
100
Android Autoが思ったよりしんどい話
yt8492
0
210
apollo-kotlinにcontributeした話
yt8492
0
150
DMM TVのSDカードダウンロード機能を実装した話
yt8492
1
870
今だからこそ知りたいKotlin Multiplatform
yt8492
0
300
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
Making Angular Apps Smarter with Generative AI: Local and Offline-capable
christianliebel
PRO
0
100
One Enishi After Another
snoozer05
PRO
0
170
業務でAIを使いたい話
hnw
0
220
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
1.1k
品質ワークショップをやってみた
nealle
0
890
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
CSC305 Lecture 10
javiergs
PRO
0
330
NIKKEI Tech Talk#38
cipepser
0
350
iOSでSVG画像を扱う
kishikawakatsumi
0
180
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
110
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
140
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
140
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Why Our Code Smells
bkeepers
PRO
340
57k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
950
Leading Effective Engineering Teams in the AI Era
addyosmani
7
700
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
RailsConf 2023
tenderlove
30
1.3k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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が合わさり最強に見える
ご静聴ありがとうございました!