Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Android ThingsとFirebaseでIoT入門
Search
Yuta Tomiyama
October 28, 2018
Programming
90
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
510
モバイルアプリ開発を始めよう!
yt8492
0
130
Git勉強会
yt8492
0
240
なんでもやってみる勇気
yt8492
0
140
Android Autoが思ったよりしんどい話
yt8492
0
250
apollo-kotlinにcontributeした話
yt8492
0
200
DMM TVのSDカードダウンロード機能を実装した話
yt8492
1
1k
今だからこそ知りたいKotlin Multiplatform
yt8492
0
350
State management and API calls in Jetpack Compose: Learning Apollo + Jetpack Compose through React Hooks
yt8492
0
1.4k
Other Decks in Programming
See All in Programming
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
AWSに止められる覚悟してますか?
morizo_1984
1
280
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
140
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
660
iOSDC2026登壇資料.pdf
riofujimon
0
180
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
190
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
17
15k
速習iPhone Duo対応
yuukiw00w
2
750
Security issues being discussed on Web Platforms
petamoriken
0
1.2k
SREの越境 / SRE Collaboration
y0hgi
2
280
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
3.7k
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Un-Boring Meetings
codingconduct
0
430
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
The Limits of Empathy - UXLibs8
cassininazir
1
690
Side Projects
sachag
456
43k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3k
Prompt Engineering for Job Search
mfonobong
0
460
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が合わさり最強に見える
ご静聴ありがとうございました!