Movatterモバイル変換


[0]ホーム

URL:


2,360 views

Web先端技術味見部#28 Physical Webハンズーオン開発補助資料

htmlday (http://www.htmlday.jp/) 2015においてWeb先端技術味見部28回で行ったPhysical Webのハンズーオン開発の補助資料です

Embed presentation

Download to read offline
Hello, Real-WorldPhysical Web開発ハンズーオン株式会社リクルートテクノロジーズアドバンスドテクノロジーラボ加藤 亮Web先端技術味見部#28
1. UriBeaconからデータを拾ってみよう
UriBeacon• 今回はUriBeaconを用意しました• 配置しておくのでここからURIを拾ってみます• 興味のある人はConfigで値を変えてみてください• https://itunes.apple.com/us/app/physical-web/id927653608?mt=8 (公式アプリ)
UriBeacon• 自分で用意する場合• https://github.com/google/uribeacon/tree/master/beacons (iOSはNG, Androidは5以降でデバイスが対応してるものなら)• 購入する場合(技適マーク注意)• https://www.blesh.com/product/blesh-pack-3-beacons/
URIBeacon• BLEのアドバタイズパケットだけを使うという点でiBeaconとほぼ同じ性能要件• ただし投げるパケットのデータはiBeaconとは別物
Bluetooth LE(YAPC::Asia2014使い回し資料)
Bluetooth Classic• 旧来のよく知られているBluetooth• LEとの差別化のためにClassicと呼ばれる• 2000年くらいから流行• ユビキタスネットワーク -> 最近でいうところのIoT• 高速化を追求• 他の無線技術とあまり差別化できなくなってきていた
Bluetooth Low Energy (BTLE)• LE = Low Energy (省エネ)• Bluetooth 4.0から• それまで(Bluetooth Classic)は高速化を追求• 別物と考えるくらいで• 4.0=LEではなく、4.0の中にLEの他にHS(HightSpeed)なども
Paring• 旧来のBluetoothでは基本的にデバイスのペアリング必要。2.1以上ではSecure Simple Paring• Just Works• Out of Band (NFCとか)• Passkey Entry• Numeric Comparison• iBeaconなどに見られるようにLEではペアリングの無いユースケースがほとんど• LEも似たようなモデルがあり、PassKeyEntryも一応存在するし、逆に、上に上げたように、ClassicにもJust Worksがあり、確認なしで使える仕様も存在はする。• とはいえ、LE用のSDK/チップではJust Worksしか採用されてなかったりする
BluetoothのネットワークトポロジピコネットClassicではMaster/Slaveという言い方をして、Central/Peripheralとは言わないCentralPeripheral例: PC例: キーボードマウスPeripheral例: 室温系Peripheral例: 体重系ペリフェラルがサービスの主体になるデータを提供するケース(ペリフェラルがサーバー、セントラルがクライアント)が多い複数のデバイスとやりとりする中心になるのがセントラルペリフェラルにデータをWriteするケースもある サーモスタットの温度とか(設定系)
BluetoothのネットワークトポロジスキャタネットMasterSlave例: PC例: キーボードマウスSlave例: 室温系Slave例: 体重系Master例: ヘッドホンSlaveヘッドホンなどは主体となるデータ(音声データ)の置き場はPC側になり、データの流れが逆になるMasterは同時にSlaveとなり、他のピコネットに参加することができる
ネットワークへの参加• Classic: Service Discovery(今回は省略)• LE: Advertising
Advertising Packet• サービスのUUID• LocalName• その他ネットワークへの参加Observer Broadcaster(Peripheral)(Central)ペリフェラルは周期的にアドバタイジングパケットを発信「こんなサービスを提供していますよ」という情報
Advertising Packet• サービスのUUID• LocalName• その他ネットワークへの参加Observer Broadcaster(Peripheral)(Central)セントラルは周期的にスキャンを行い、周囲からアドバタイジングパケットを探す。
Scan Requestネットワークへの参加Observer Broadcaster(Peripheral)(Central)必要であれば、もう少し詳しい情報を相手に要求できる
Scan Responseネットワークへの参加Observer Broadcaster(Peripheral)(Central)ペリフェラルは、Scan Requestを受け取った場合はScan Responseを返す。アドバタイジングパケットに乗り切らない情報をここに載せることが出来る最初のアドバタイジングパケットが大きすぎると省エネ的にも良くない。
Advertising Packet• サービスのUUID• LocalName• その他接続要求ネットワークへの参加Central Peripheralセントラルは受け取った情報からUUIDなどを見て、つなぎたいサービスかどうか判断。サービスを受けたい場合は接続要求をペリフェラルに投げて接続を開始接続が完了するとBroadcaster/Observerとしての役目は終わり、Peripheral/Centralとなる
ポーリングCentralとPeripheralのやりとりCentral Peripheral接続が完了するとセントラルは定期的に、空パケットでポーリングを行い接続を維持する。要はPing。必要だったらポーリングのレスポンスにデータを載せたり。
CentralとPeripheralのやりとりCentral Peripheral周波数チャンネル混線によるノイズを避けるために周波数ホッピングを行い、チャンネルを切り替えながら通信するClassicでもLEでも周波数ホッピングはあるが、LEではホッピングの回数が少なくなるよう工夫されている。
CentralとPeripheralのやりとりCentral Peripheral前述のような接続維持を行いつつ、セントラルは、接続先のペリフェラルが提供しているサービスを利用できるサービス
ProfileHostControllerProfiles (Application)HCI - Host Controller Interface物理層あらかじめ用意されたアプリケーション仕様(Profile)ヘッドセット、キーボードなどの入力、オーディオなどBluetoothでの利用されるような機能はProfile仕様が最初から用意されている• HSP(HeadSetProfile)• HIDP(HumanInterfaceDeviceProfile)• …
ProfileHostあらかじめ用意されたものでなくて、自由にサービスを設計したいときは?Classicの場合はSPP(Serial Port Profile)LEの場合はGATT(General Attribute Profile)
GATTCentralPeripheralサービスPeripheralが提供するサービスとはどんなもの?室温計の例現在の室温: 28度READセンサーから取得できる変動値サービスが提供する値を読み取ることができる
GATTCentralPeripheralサービスPeripheralが提供するサービスとはどんなもの?サーモスタットの例設定温度: 28度WRITE機械の内部のconfig値スイッチ: offコントロールポイント一つのサービスは複数の値をもてるサービスが提供する値に書き込むことができる
GATTPeripheralサービス設定温度: 28度機械の内部のconfig値スイッチ: offコントロールポイントcharacteristiccharacteristicCentralから読み書きさせることが出来るこれらの値のことをcharacteristicと呼ぶ一つのサービスは複数のcharacteristicを持てる読み書き以外に、値が変化したときの通知依頼も
GATTPeripheralサービス設定温度: 28度機械の内部のconfig値スイッチ: offコントロールポイント一つのPeripheralは複数のサービスを持つことが出来るサービス現在の室温: 28度センサーから取得できる変動値
Bluetooth LEのサービス利用手順まとめ• Peripheralとして振る舞うデバイスがアドバタイズ• Centralとして振る舞うデバイスがスキャンしてアドバタイジングパケットを発見• CentralやPeripheralに接続して、目的のサービスを検索• サービスの中から目的のCharacteristicを発見し、読み書き等
iOS/Androidでのsupport状況• iOSは5.0からBTLEがSDK(CoreBluetooth)に、まずはセントラルのみ。6以降でペリフェラルとしても動作可能。なのでほぼ普及済と考えられる。• Androidは4.3からBTLE(セントラル)搭載。Preview Lからペリフェラルとしても動作可能。Preview Lからはle用にパッケージが別になったので、4.3のときに使えたセントラル用のAPIも刷新されてる。
iOS/AndroidでのBluetooth Classic• LEサポート前からClassicのほうは利用できた• LEのようにGATTがないので、既存のプロファイルにない自由なサービスを使おうとするとSPP(serial port profile)を使う必要がある• iOSではAppleからMFi (Made for iPhone)を取得する必要
iOS/Androidでのsupport状況iOSではLEが簡単でClassic&SPPがMFiのため面倒AndroidではSPPは簡単、LEは普及に時間かかりそうiOSとAndroidで通信したい場合は悩ましい
iBeacon• CoreLocation• 屋内位置情報• Ranging/Monitoring
位置情報サービスGPSiBeacon比較的大きな領域での位置や移動地図と組み合わせたサービス屋内での細かい位置情報や短距離移動などに基づくサービス
iBeaconAdvertising Packet• サービスのUUID• LocalName• その他Broadcaster(Peripheral)Broadcasterとしてのみ振る舞うBTLEデバイスパケットの送信距離が10m程度なのを利用してデータ転送よりも近接検知に利用
用語の注意• iBeaconが近接検知技術と言われるが• NFCなどのスマートカード界隈では近接(proximity)は10cm以内、70cm以内だと近傍(vicinity)とかiBeaconの近接 = BTLEのパケット送信可能距離ICカードの近接 = カード/リーダで電磁誘導が発生する距離
iBeaconAdvertising PacketビーコンAdvertisingPacket電波が届く距離までビーコンに近寄ったことがわかる電波強度(RSSI)からアバウトに距離の推測ノイズの問題もあり正確には分からない。ビーコンの方位もわからない。
iBeaconビーコンAdvertisingPacketビーコンが飛ばすパケットにはUUIDと二つの16bit整数値(major/minor)があるUUIDを指定して監視しておいて、対応するアプリでアクションを実行したり、PassKitでクーポンを表示したり。UUIDmajor/minor
iBeaconビーコンA二つの数値を利用して、どのビーコンに近接したかの判断施設内での移動の検知ビーコンBAdvertisingPacketUUIDmajor: 1minor: 1AdvertisingPacketUUIDmajor: 1minor: 2
iBeaconでのBTLEまとめ• Bluetooth LE の Broadcasterである• Peripheral/Central間で接続確立&データ転送はしない• Advertising Packetの中に収まるデータしか使えない• major/minorという16bit整数値二つ入れるBluetooth LEの利用の仕方自体はものすごくシンプル
UriBeacon• iBeaconと同じようにBLEのアドバタイズのみ使う• パケットデザインを工夫して、URIを詰め込めるように
Hands-on
実装してみる• https://github.com/google/uribeacon/tree/master/ios-uribeacon• ライブラリ使えば超簡単!
UBUriBeaconScanner
UBUriBeacon
Swiftでもそのまま直訳するだけ
実装• UBUriBeaconのヘッダを見て他の値を調べてみましょう• Viewにボタンを置いて、スキャンの開始、停止をできるようにしてみましょう• 拾ったURLをViewに表示してみましょう
Android• https://github.com/google/uribeacon/blob/master/android-uribeacon/uribeacon-sample/src/main/java/org/uribeacon/sample/UriBeaconScanActivity.java• https://github.com/google/physical-web/blob/master/android/PhysicalWeb/app/src/main/java/org/physical_web/physicalweb/UriBeaconDiscoveryService.javaUriBeaconリポジトリのサンプルPhysical Webリポジトリの公式アプリコード(Serviceなどちゃんと使ってるのでしっかり作るならこっちを参考に)BLEのAPI自体はOSのものをそのまま使い、パケットのパースなどはライブラリを使う
2. Resolverを使ってMetadataを取得してみよう
一般的にはURLは短縮サービスのもの• 短縮サービスだった場合に元のURLを取得する必要がある
URLのような機械のためのものではなくユーザーが見てわかりやすいデータにOGPの例(PhyWebではOGP以外のデータも利用)title, thumbnail, descriptionなど
APIを自分で用意するには?• https://github.com/google/physical-web/tree/master/web-service• handlers.pyのResolveScanが主役公式にpythonで書かれたサンプルがあります
Request例JSONをPOST(注: 最新ではRSSI, txPowerも受け取るようになるなどアップデートがあります)
Response例(注: 最新ではdisplayUrl, distanceを渡すようになるなどアップデートがあります)
今回はAPIを用意してあるのでそれを叩いてみましょうhttp://atl-phyweb.net/resolve-scan前ページで注釈したように少し古いバージョンになっています
やってることは• JSONのencode/decode• 圧縮URLの展開• 目的のURLをHTTP GETして取得したHTMLをパースしてデータを取得• キャッシュそこまで大したことはしてないので自作も難しくはない
このAPIを叩いて1. ログに流してみましょう2. 画面に表示してみましょうWebAPI叩くだけなので好きなように今回はAFNetworkingを使ってます
実装例
Swiftでも直訳するだけ
さらに• UITableViewでリストとして表示してみましょう• タップするとopenURLでブラウザ上で開くとか、あるいはWebViewで開くようにしてみましょう• 同じURLに対して毎回解決しないようにキャッシュ機構を用意してみましょう
おわりに• どんなところにフックを仕掛けると面白いか• どんなURIと連動すると面白いか是非考えてみてください

Recommended

PDF
Eddystoneで始まるPhysical Webの世界
PDF
node.js 版 GotAPI 実装 - node-gotapi
PDF
デバイス WebAPI設計の進め方
PDF
IoTの規格標準化動向とデバイスWebAPI
PPTX
デバイスWeb apiコンソーシアム 第四回資料(RemoteRelay with Thermal camera)
PDF
ビーコンを使うサービス事業
PDF
デバイスコネクト活用事例紹介
PDF
2015/7/2、デバイスWebAPI(GotAPI)コンソーシアム 第一回技術WG 発表資料
PDF
GotAPIの概要と技術解説
PDF
指紋認証と「FIDO」について
PDF
DeviceConnect向けCordovaプラグインを作ってみた
PDF
デバイスコネクトWebAPIの開発状況について
PDF
ビーコンを使うo2oクラウドサービス
PDF
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
PDF
デバイスWebAPI/Symphonyを軸としたIoTの展開について
PDF
音声によるデバイスWebAPIの操作
PDF
WebRTCプラグインで広がるWi-Fiカメラのアプリケーション
PDF
デバイス WebAPIによるスマートフォン周辺デバイスの活用
PDF
クラウド連携版デバイスWebAPI
PDF
デバイスWebAPIを用いた各種ソリューション適用事例の紹介
PDF
IoTに最適なセキュアなVPN通信のご紹介
PDF
OMA GotAPI 標準化作業状況アップデート
PDF
201606 DeviceWebAPI 第4回技術WG会合
PDF
デバイスWebAPI実装のアップデートと利用事例について
PDF
LinkingとデバイスWebAPI
PDF
最近の活動について(娯楽編)
PDF
最近の活動について
(not ruby)
PDF
インターネットの仕組みとISPの構造
PDF
カヤックを退職すべきではない3つの理由
PPT
HTML5でサイネージは作れる!!

More Related Content

PDF
Eddystoneで始まるPhysical Webの世界
PDF
node.js 版 GotAPI 実装 - node-gotapi
PDF
デバイス WebAPI設計の進め方
PDF
IoTの規格標準化動向とデバイスWebAPI
PPTX
デバイスWeb apiコンソーシアム 第四回資料(RemoteRelay with Thermal camera)
PDF
ビーコンを使うサービス事業
PDF
デバイスコネクト活用事例紹介
PDF
2015/7/2、デバイスWebAPI(GotAPI)コンソーシアム 第一回技術WG 発表資料
Eddystoneで始まるPhysical Webの世界
node.js 版 GotAPI 実装 - node-gotapi
デバイス WebAPI設計の進め方
IoTの規格標準化動向とデバイスWebAPI
デバイスWeb apiコンソーシアム 第四回資料(RemoteRelay with Thermal camera)
ビーコンを使うサービス事業
デバイスコネクト活用事例紹介
2015/7/2、デバイスWebAPI(GotAPI)コンソーシアム 第一回技術WG 発表資料

What's hot

PDF
GotAPIの概要と技術解説
PDF
指紋認証と「FIDO」について
PDF
DeviceConnect向けCordovaプラグインを作ってみた
PDF
デバイスコネクトWebAPIの開発状況について
PDF
ビーコンを使うo2oクラウドサービス
PDF
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
PDF
デバイスWebAPI/Symphonyを軸としたIoTの展開について
PDF
音声によるデバイスWebAPIの操作
PDF
WebRTCプラグインで広がるWi-Fiカメラのアプリケーション
PDF
デバイス WebAPIによるスマートフォン周辺デバイスの活用
PDF
クラウド連携版デバイスWebAPI
PDF
デバイスWebAPIを用いた各種ソリューション適用事例の紹介
PDF
IoTに最適なセキュアなVPN通信のご紹介
PDF
OMA GotAPI 標準化作業状況アップデート
PDF
201606 DeviceWebAPI 第4回技術WG会合
PDF
デバイスWebAPI実装のアップデートと利用事例について
PDF
LinkingとデバイスWebAPI
PDF
最近の活動について(娯楽編)
PDF
最近の活動について
(not ruby)
PDF
インターネットの仕組みとISPの構造
GotAPIの概要と技術解説
指紋認証と「FIDO」について
DeviceConnect向けCordovaプラグインを作ってみた
デバイスコネクトWebAPIの開発状況について
ビーコンを使うo2oクラウドサービス
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
デバイスWebAPI/Symphonyを軸としたIoTの展開について
音声によるデバイスWebAPIの操作
WebRTCプラグインで広がるWi-Fiカメラのアプリケーション
デバイス WebAPIによるスマートフォン周辺デバイスの活用
クラウド連携版デバイスWebAPI
デバイスWebAPIを用いた各種ソリューション適用事例の紹介
IoTに最適なセキュアなVPN通信のご紹介
OMA GotAPI 標準化作業状況アップデート
201606 DeviceWebAPI 第4回技術WG会合
デバイスWebAPI実装のアップデートと利用事例について
LinkingとデバイスWebAPI
最近の活動について(娯楽編)
最近の活動について
(not ruby)
インターネットの仕組みとISPの構造

Viewers also liked

PDF
カヤックを退職すべきではない3つの理由
PPT
HTML5でサイネージは作れる!!
PDF
Introduction to bluetooth low energy - JFokus IoT 2015
PDF
20140922 ble bootcamp
PDF
やはりお前らのiOS7対応は間違っている
PDF
Eddystoneで始まるPhysical Webの世界
PDF
H2O x mrubyで人はどれだけ幸せになれるのか
カヤックを退職すべきではない3つの理由
HTML5でサイネージは作れる!!
Introduction to bluetooth low energy - JFokus IoT 2015
20140922 ble bootcamp
やはりお前らのiOS7対応は間違っている
Eddystoneで始まるPhysical Webの世界
H2O x mrubyで人はどれだけ幸せになれるのか

Similar to Web先端技術味見部#28 Physical Webハンズーオン開発補助資料

PDF
Bluetoothl-Low-Energy入門講座-part1
 
PDF
Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
PDF
iOSアプリ開発者のための Bluetooth Low Energy体験講座
PDF
Bluetooth Low Energy入門講座 -part2
 
PDF
ifLink[改善版].pdf
ODP
Bluetooth le for FreeBSD
PDF
Mac から Python で BLE ペリフェラルを操作する
PDF
Bluetooth LEとiBeaconを使った、すれ違い通信
PDF
Bluetooth LEとiBeaconを使った、すれ違い通信
PDF
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
PDF
20131026 i beaconワークショップ
PDF
Beenos creators'night#201307今井
PPTX
iBeacon を利用したサービス開発のポイント
Bluetoothl-Low-Energy入門講座-part1
 
Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
iOSアプリ開発者のための Bluetooth Low Energy体験講座
Bluetooth Low Energy入門講座 -part2
 
ifLink[改善版].pdf
Bluetooth le for FreeBSD
Mac から Python で BLE ペリフェラルを操作する
Bluetooth LEとiBeaconを使った、すれ違い通信
Bluetooth LEとiBeaconを使った、すれ違い通信
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
20131026 i beaconワークショップ
Beenos creators'night#201307今井
iBeacon を利用したサービス開発のポイント

More from Recruit Technologies

PDF
新卒2年目が鍛えられたコードレビュー道場
PDF
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
PDF
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
PDF
Tableau活用4年の軌跡
PDF
HadoopをBQにマイグレしようとしてる話
PDF
LT(自由)
PDF
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
PDF
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
PDF
リクルート式AIの活用法
PDF
銀行ロビーアシスタント
PDF
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
PDF
ユーザー企業内製CSIRTにおける対応のポイント
PDF
ユーザーからみたre:Inventのこれまでと今後
PDF
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
PDF
EMRでスポットインスタンスの自動入札ツールを作成する
PDF
RANCHERを使ったDev(Ops)
PDF
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
PDF
ユーザー企業内製CSIRTにおける対応のポイント
PDF
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
PDF
「リクルートデータセット」 ~公開までの道のりとこれから~
新卒2年目が鍛えられたコードレビュー道場
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Tableau活用4年の軌跡
HadoopをBQにマイグレしようとしてる話
LT(自由)
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
リクルート式AIの活用法
銀行ロビーアシスタント
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
ユーザー企業内製CSIRTにおける対応のポイント
ユーザーからみたre:Inventのこれまでと今後
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
EMRでスポットインスタンスの自動入札ツールを作成する
RANCHERを使ったDev(Ops)
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
ユーザー企業内製CSIRTにおける対応のポイント
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
「リクルートデータセット」 ~公開までの道のりとこれから~

Web先端技術味見部#28 Physical Webハンズーオン開発補助資料


[8]ページ先頭

©2009-2025 Movatter.jp