Top Banner
HTML5/JavaScript ではじめるIoT MOONGIFT 中津川篤司
39

HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

Jul 15, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

HTML5/JavaScriptではじめるIoT

MOONGIFT 中津川篤司

Page 2: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

自己紹介

2

@moongift

fb.me/moongift.fan

中津川 篤司株式会社MOONGIFT 代表取締役ニフティクラウド mobile backend

          エヴァンジェリスト

2004年1月よりオープンソース・ソフトウェアを毎日紹介するブログ MOONGIFT を運営。

http://www.moongift.jp/

hifive エヴァンジェリスト

Page 3: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」
Page 4: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

0x10年前

4

Page 5: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

2015年

5

・Arduino ・Raspberry PI ・Intel Edison ・mbed ・konashi

Page 6: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」
Page 7: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

ネットワーク×デバイス

7

Page 8: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

何をするか?

Page 9: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

Raspberry PI買った! → Lチカしてみた Arduino買った! → Lチカしてみた mbed買った! → Lチカし(ry Intel Edison買った! → (ry

Page 10: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

何を買ったではなく、何をするか?

つまり表現大事

Page 11: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

表現に必要なモノ

• マイコン

• インプット(センサー)

• アウトプット

Page 12: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

アウトプットと言えば?

Page 13: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

処理する言語と言えば?

Page 14: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

なんでHTML5/JS?• 今回のテーマだから

• CORS問題(XMLHttpRequest2)

• Canvas/WebGL

• WebSocket/WebRTC

• node.js(特にBTE系)

Page 15: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

JavaScriptサポート• Raspberry PI(node.jsサポート)

• Intel Edison(node.jsサポート)

• Pebble(CloudPebble)

• BeaconEgg(iBeacon)

• Konashi(konashi.js)→デモ

• IRKit(IRKitjs)

Page 16: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

Canvas

https://www.youtube.com/watch?v=GGPIk8F5wOs

Page 17: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

iOS/Androidアプリ化

• PhoneGap/Cordova/Monaca

• アプリカン

ReactNativeでブレイクするかも?

Page 18: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

ポケットミク

http://otonanokagaku.net/nsx39/appli/01/

http://www6.plala.or.jp/TimeTripper/nsk39/mikublock.html

Page 19: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

WebGL

• MozVR

• Unity5  WebGLサポート(まだプレビュー)

http://mozvr.com/

Page 20: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

IoTの3大要素

20

IoTデバイス

データストレージ

センサー/出力

Page 21: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

センサー

•照度•カメラ•温度•湿度• Felicaリーダー•ボタン

21

正直微妙… もっと面白いセンサーが

欲しい!

Page 22: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

出力

• LCD• LED•コンピュータ• hue

22

もっと微妙

Page 23: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

23

https://www.youtube.com/watch?v=YUUsJSDa7PE

Page 24: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

Arduino module

• ArduinoとLittleBitsを連携させるためのモジュール ↓• LittleBitsのIOを持ったArduino互換モジュール(Leonardo)

24

https://www.youtube.com/watch?v=FXQ9d3qJt3Q

39.95ドル!

Page 25: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

CloudBit module

• Arch Linux搭載のモジュール•改造するとSSHができます• LittleBits Cloud Controlで外部操作可能(WebSocket)

25

59.95ドル!

Page 26: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

その他入力系/出力系

Page 27: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

http://control.littlebitscloud.cc/

デモ

Page 28: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

ボタンを押すとプッシュ通知

28

var pin4 = new m.Gpio(4); pin4.read();

Page 29: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

IoTの3大要素

29

IoTデバイス

データストレージ

センサー/出力

Page 30: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

よくない利用

30

IoTデバイスデスクトップ スマートフォン

Webサーバ

Page 31: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

よくない利用

31

デスクトップ スマートフォン

Page 32: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

サーバを間に挟みましょう

32

IoTデバイス

デスクトップ スマートフォン

サーバ

SDK REST API

IoTデバイスもあるよ!

Page 33: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

IoTの問題2

33

IoTデバイスに何かあった時、通知したい 今ならプッシュ通知がスマート  → APNs、GCMに接続する必要あり  → デバイストークンの管理

Page 34: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

よくない利用

34

IoTデバイス スマートフォンAPNs/GCM デバイストークンの管理

通信手段

Page 35: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

35

サーバを使った例

IoTデバイス スマートフォンAPNs/GCM

サーバ

HTTP/HTTPSアクセス

もあるよ!

Page 36: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

プッシュ通知を使った例

36

Page 37: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

var NCMB = require("./ncmb").NCMB; NCMB.initialize(“APP_KEY”, “CLIENT_KEY"); function sendPush(high, value) { NCMB.Push.send({ "immediateDeliveryFlag": true, "message": high ? "電気がつきました" : "消灯しました", }, { success: function() { console.log("Successful!"); // 成功 }, error: function(error) { // エラー console.log("Failed"); } }); }

Page 38: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

対応プラットフォーム

38

Objective-C(2014年12月より64bit対応)

Android

JavaScript(2014年12月よりnodeサポート!)

Unity

Page 39: HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」

まとめ• マイコン、インプット、アウトプットともに材料は既に揃っている

• 表現場所としてHTML5は手軽(作り手、閲覧者ともに)。ただし高度な表現はCanvas/WebGLの習得必須

• JavaScript(node.js含め)は必修