SlideShare a Scribd company logo
1 of 21
Download to read offline
DataChannelで
IoTしてみた
tonofo
自己紹介
@tonofo
2年目になりました。
回路と組み込みを勉強したけど、就職してからはWebRTC…
いつも通り
• OpenWebRTCが0.4でRaspberryPiに対応しそう

https://github.com/EricssonResearch/openwebrtc/issues/
172
• iOS H.264 HWエンコーダ対応作業が始まりました※
AndroidはもうH.264とVP9に対応しています

https://code.google.com/p/webrtc/issues/detail?id=4081
• え、ChromeもH.264対応くるの?

https://webrtc-codereview.appspot.com/54499005

• MCUの話。
• MCUの話2 kurentoが動かなくてGStreamer触った
• WebRTC Native Client Libraryの話。
• とりとめもない話 (Raspberry Piとか)
今思うと、ヘビーモードな話題ばかり。。。
そうだ!今度は、イージーモードでいこう。
MeetUpの参加者を減らしてしまうのでは。ふぇぇ:;(∩´﹏`∩);:
DataChannel
• WebRTCでデータをやりとりする仕組み
• テキストとバイナリをP2Pを使い相互通信できる

レイテンシが低い

サーバやネットワークに負荷がかからない
• SCTPプロトコル

到達保証や順序保証を設定できる
作りかた(javascript)
var peerConnection = new RTCPeerConnection(config, pcConstraints);
peerConnection.ondatachannel = onDataChannelCallback;    //DataChannlを受け取る関数
var rtcDataChannel;
function createOffer() {            //投げる側 createOfferの前
rtcDataChannel = peerConnection.createDataChannel("rtcDataChannel", null);
rtcDataChannel.onmessage = onMessageCallback;   //Messageを受け取る関数
peerConnection.createOffer(gotLocalDescription, gotError, offerConstraints);
};
function onDataChannelCallback(event) {            //受ける側
rtcDataChannel = event.channel;
rtcDataChannel.onmessage = onMessageCallback;
}
すでに、映像・音声ができているなら簡単。
DataChannelは双方向なのでcreateDataChannelするのは投げ側のみ
使い方(javascript)
function sendDataChannel(message) {
if (rtcDataChannel.readyState === 'open') {    //開いてるか確認
rtcDataChannel.send(message); //開いてたら送る
}
};
function onMessageCallback(event) { //Messageを受け取る関数
console.log('Received Message’ + event.data);
};
function dispose() {
rtcDataChannel.close(); //受け手も送り手も閉じる
peerConnection.close();
peerConnection = null;
};
チャットぐらいであれば、この実装でいけるので簡単ですが、
バイトを送る場合やサイズが大きい場合は別の配慮が要るらしい…
–tonofo
“でも、僕はWebエンジニアじゃないから
javascriptなんかわかんない”
参考リンク集
• W3C WebRTC 1.0

http://www.w3.org/TR/webrtc/
• Data channelの活用方法とその可能性

http://www.slideshare.net/shintarotanaka/data-
channel-webrtc-conference-japan-26
• WebRTC demos and samples

https://github.com/webrtc/samples#rtcdatachannel
DataChannelでIoTといえば…
WebRT「ち∼ん」
「ち∼ん」を超えるのは厳しい
「ち∼ん」の良さ
1. 語呂 印象に残る。”WebRTちーん”→覚える
2. 内容 ちーんは時間を切るツール。自然に意識が向く
3. 視覚 動きの激しいUI、味のあるスライド
4. 実装 WebMIDI APIを使っている
WebRTCでIoTするには (Chrome)
• WebMIDI API



 Chrome(WebMIDI API) <-- MIDI Interface --> Things



   メリット:最もシンプル、クロスプラットフォーム

  デメリット:ThingsのほうをMIDIデバイスとして実装しなければならない
• Chrome Extension



 Chrome(Chrome Extension) <-- USB or Serial --> Things



   メリット:USBやSerialといった汎用デバイスが使える、クロスプラットフォーム

  デメリット:Extensionのインストールが必要、USBの場合はドライバを作ることに…
Chromeが動けば動く→マルチプラットフォーム
Javascriptで実装が簡単
WebRTCでIoTするには (Native)
• Native実装



 Native WebRTC Client <-- ClientのあらゆるIF --> Things



   メリット:スマホを利用すればウェアラブルとひも付きIoTの世界観に近い

  デメリット:Native実装がそもそも大変、プラットフォームごとになる
• WebRTCをThingsに実装



   メリット:依存関係がなくThings単体で利用可能

  デメリット:泥沼(組み込みLinuxやAndroidでNative Client入れるかGWで変換する)
依存関係がなく実装の幅が広い
Chromeのバージョンアップに悩まされない
Androidの会 秋葉原支部
3月末、秋葉原の某居酒屋 独身男性4人で飲みつつ
(Android + 電子回路) + メイド = 秋葉原
(IoT) + メイド(接触禁止)
ワイヤレスジャパンで新ネタを披露したい
「メイドさんの吐息を地球の裏側に転送しよう」
吐息伝送システム
ファン吐息 bluetoothbluetooth
DataChannel
センサ 吐息
映像・音声
Native
Client

Library
Native
Client

Library
ITmediaさんが記事にしてくれました…
http://www.itmedia.co.jp/mobile/
articles/1505/28/news115.html
まとめ
映像・音声に合わせて吐息をコミュニケーションするという新規性
映像・音声コミュニケーションの次へ
反省
吐息を名乗るには温度や湿気と甘さがたりない
会場で2.4GHz帯が飽和しデモできず死亡…

More Related Content

What's hot

ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るKensaku Komatsu
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズYusuke Naka
 
スマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCスマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCNatsuki Yamanaka
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01西畑 一馬
 
WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!mganeko
 
2013 WebRTC node
2013 WebRTC node2013 WebRTC node
2013 WebRTC nodemganeko
 
PeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorderPeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecordermganeko
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴mganeko
 
Webrtc最新動向
Webrtc最新動向Webrtc最新動向
Webrtc最新動向Yusuke Naka
 
SFUの話
SFUの話SFUの話
SFUの話tnoho
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみるYusuke Naka
 
SkyWayで作るボイスチャット
SkyWayで作るボイスチャットSkyWayで作るボイスチャット
SkyWayで作るボイスチャットtioken
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup samplemganeko
 

What's hot (17)

ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ
 
スマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCスマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTC
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
WebRTCとSFU
WebRTCとSFUWebRTCとSFU
WebRTCとSFU
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01
 
WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!
 
2013 WebRTC node
2013 WebRTC node2013 WebRTC node
2013 WebRTC node
 
SkyWay HandsOn
SkyWay HandsOnSkyWay HandsOn
SkyWay HandsOn
 
PeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorderPeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorder
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴
 
Webrtc最新動向
Webrtc最新動向Webrtc最新動向
Webrtc最新動向
 
SFUの話
SFUの話SFUの話
SFUの話
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみる
 
SkyWayで作るボイスチャット
SkyWayで作るボイスチャットSkyWayで作るボイスチャット
SkyWayで作るボイスチャット
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 

Viewers also liked

Sky wayios:androidsdk
Sky wayios:androidsdkSky wayios:androidsdk
Sky wayios:androidsdkHiroki Kato
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streamingmganeko
 
AChua_Resume_2013[1]
AChua_Resume_2013[1]AChua_Resume_2013[1]
AChua_Resume_2013[1]Andrea Chua
 
บทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมบทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมpennapa34
 
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...Noorani Biswas
 
OpenWebRTC and Bowser
OpenWebRTC and BowserOpenWebRTC and Bowser
OpenWebRTC and BowserEricsson
 
Research project on murshidabad silk
Research project on murshidabad silkResearch project on murshidabad silk
Research project on murshidabad silkNoorani Biswas
 
Ajrakh and dhabla of kutch, rajasthan.
Ajrakh and dhabla of kutch, rajasthan.Ajrakh and dhabla of kutch, rajasthan.
Ajrakh and dhabla of kutch, rajasthan.Noorani Biswas
 
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...Noorani Biswas
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browsermganeko
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannelmganeko
 
WebRTC on Edge
WebRTC on EdgeWebRTC on Edge
WebRTC on EdgeSaki Homma
 

Viewers also liked (14)

Sky wayios:androidsdk
Sky wayios:androidsdkSky wayios:androidsdk
Sky wayios:androidsdk
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
Resume - Amrit Kumar Agarwal
Resume - Amrit Kumar AgarwalResume - Amrit Kumar Agarwal
Resume - Amrit Kumar Agarwal
 
AChua_Resume_2013[1]
AChua_Resume_2013[1]AChua_Resume_2013[1]
AChua_Resume_2013[1]
 
บทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมบทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรม
 
блоги
блогиблоги
блоги
 
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
 
OpenWebRTC and Bowser
OpenWebRTC and BowserOpenWebRTC and Bowser
OpenWebRTC and Bowser
 
Research project on murshidabad silk
Research project on murshidabad silkResearch project on murshidabad silk
Research project on murshidabad silk
 
Ajrakh and dhabla of kutch, rajasthan.
Ajrakh and dhabla of kutch, rajasthan.Ajrakh and dhabla of kutch, rajasthan.
Ajrakh and dhabla of kutch, rajasthan.
 
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
ETHICAL CONSUMERISM AN OPPORTUNITY FOR INDIAN HANDCRAFTED AND HANDLOOM TEXTIL...
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browser
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
 
WebRTC on Edge
WebRTC on EdgeWebRTC on Edge
WebRTC on Edge
 

Similar to DataChannelでIoTしてみた

ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?Kengo Nakajima
 
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談dsuke Takaoka
 
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Hayato Hiratori
 
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015jumpwire.io
 
WebRTC Rockstars Asian Tour 2017 (JP)
WebRTC Rockstars Asian Tour 2017 (JP)WebRTC Rockstars Asian Tour 2017 (JP)
WebRTC Rockstars Asian Tour 2017 (JP)Lorenzo Miniero
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBMToshiki Tsuboi
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?Kento Kawakami
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方Yuji Oshima
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46civicpg
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだKoichi Ota
 
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方v6app
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識kumaryu
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 

Similar to DataChannelでIoTしてみた (20)

ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
 
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
 
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
 
WebRTC Rockstars Asian Tour 2017 (JP)
WebRTC Rockstars Asian Tour 2017 (JP)WebRTC Rockstars Asian Tour 2017 (JP)
WebRTC Rockstars Asian Tour 2017 (JP)
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
IoT ChatOps #IoTLT
IoT ChatOps #IoTLTIoT ChatOps #IoTLT
IoT ChatOps #IoTLT
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだ
 
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
14対話bot発表資料
14対話bot発表資料14対話bot発表資料
14対話bot発表資料
 
HTTP入門
HTTP入門HTTP入門
HTTP入門
 
20130216
2013021620130216
20130216
 
20210510 software design
20210510 software design20210510 software design
20210510 software design
 

DataChannelでIoTしてみた