Slide 1

Slide 1 text

FirebaseͰLνΧͯ͠Έͨ 2016-09-15 IoTLT޿ౡ Vol.3

Slide 2

Slide 2 text

ͻΉΒ ͱ΋ͻ͜

Slide 3

Slide 3 text

ͻΉΒ ͱ΋ͻ͜ • ͱ͘ʹIoTͬΆ͍ωλΛ΋ͬͯͳ͍

Slide 4

Slide 4 text

ͻΉΒ ͱ΋ͻ͜ • ͱ͘ʹIoTͬΆ͍ωλΛ΋ͬͯͳ͍ • ͳ͔ͥIoTLTօۈத

Slide 5

Slide 5 text

͜Ε·Ͱͷ͋Β͢͡

Slide 6

Slide 6 text

4月ぐらい Arduino買ってみる

Slide 7

Slide 7 text

低級コードつらいので HaskellでArduinoしてみた

Slide 8

Slide 8 text

ハードウェア(個人的に)つらいし Haskellの需要ないし

Slide 9

Slide 9 text

ハードウェア(個人的に)つらいし Haskellの需要ないし IoTのための
 クラウドサービスについて調べる

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Google だけわかりやすいものがない

Slide 12

Slide 12 text

Firebase or Could PubSub

Slide 13

Slide 13 text

Could PubSub • データをとにかく流せる • 処理しようと思うとCloud DataFlow • ストリーム処理するのは値段が高い

Slide 14

Slide 14 text

Firebaseさわってみる

Slide 15

Slide 15 text

FirebaseͰLνΧ

Slide 16

Slide 16 text

デモ http://bit.ly/ioth3al

Slide 17

Slide 17 text

構成

Slide 18

Slide 18 text

構成 Hosting Realtime Database ここはラズパイにしたい感 • FirebaseのDatabaseに書き込む • 書き換えた値を監視しているクライアントに通知 • 通知を受けたクライアントがLEDの状態を変更

Slide 19

Slide 19 text

ブラウザ側 var keypath = "switch" // DBʹswitchͱ͍͏໊લͰอଘ var switchRef = firebase.database().ref(keypath); var buttonState = null; var button = document.getElementById("button"); button.addEventListener('click', function(){ switchRef.set(!buttonState); // ΫϦοΫ͞ΕͨΒOn/Offτάϧ }); switchRef.on('value', function(sw) { buttonState = sw.val(); // ஋ͷมߋΛड͚औͬͨΒऔಘͯ͠දࣔ੾Γସ͑ if (buttonState) { button.innerHTML = '఺౮த'; button.style.background = "rgb(3,155,229)"; } else { button.innerHTML = 'ফ౮த'; button.style.background = "rgb(155,155,155)"; } });

Slide 20

Slide 20 text

Arduino側 var board = new five.Board(); board.on("ready", function() { var led = new five.Led(13); led.off(); firebase.database().ref("switch").on('value', function(sw) { buttonState = sw.val(); //஋͕ߋ৽͞ΕͨΒ൓ө if (buttonState) { led.on(); } else { led.off(); } }); });

Slide 21

Slide 21 text

とても簡単だった

Slide 22

Slide 22 text

ファイルのホスティングもできる

Slide 23

Slide 23 text

まとめ

Slide 24

Slide 24 text

まとめ • Firebase • IoTにもつかえそう • アプリつくるならここから • Firebase database • WebSocketを直接扱うより簡単