20140806 i beacon講演_愛知工業大学

Preview:

DESCRIPTION

8月6日 愛知工業大学でのiBeacon講演資料。

Citation preview

iBeaconの基本と、これから

合同会社 わふう 上原 昭宏

8月6日(水) 愛知工業大学

はじめに• フレッシュマン対象に組んでみました

• 研究活動につながるストーリーにしてみました

• Q &A、節々ではさみます。

• その場で聞く。

• 書き留めておいてください

デモンストレーション

思ったことを、(紙に)書いておいてください。 ワンポイントイラストとかあると、いいかも?

https://itunes.apple.com/jp/app/estimote/id686915066?mt=8

ここは押さないで

http://ibeacs.com/image/70077834025

これだけのもの? しょうもない。

単純だ。 反応、遅い。

iPhoneもってないんだけど?

それだけのものです そのとおり そのとおり そのとおり しらんわ

!

iOS、誰でも使える、同じく使える

目次• iBeaconとは

• ビーコンの体験

• iBeaconの概要と特徴

• アプリケーション開発について

• 位置情報と技術と社会

• ツールと情報の革命のなかでの”エンジニア”

自己紹介• 専門分野

• 電気工学

• 集積回路設計、ソフトウェア開発

• 経歴

• 00-02年 デジタルカメラCODEC

• 02-09年 人工視覚プロジェクト。博士(工学)。

• 10年 独立、個人事業主

• 12年 法人化

• ウエアラブルを飛び越して、インプランタブル

発信側

iBeaconとは?• Apple社の商標 • 位置と近接の検出技術 • ビーコン

• Bluetooth Low Energy

!

iPhone

発信側

iBeaconの利用• ビーコンが必要 • 近接検出 (距離,方向は取れない) • iOS7(2013年)に統合

• アプリケーション • Passbook

iPhone

iOSと位置検出技術

• 受信側 • CoreLocationフレームワーク • 位置検出 • GPS、電話基地局、WiFiを利用

• 送信側 • iPhoneが、ビーコンを出せる

• 使いかた • アプリ • Passbook

• 動作環境 • iPhone4とiPad 2を除くiOS7機種

http://ja.wikipedia.org/wiki/ファイル:KDDI_CDMA_St._Antenna.jpg

http://ja.wikipedia.org/wiki/ファイル:Navstar-2.jpg

AppleとiBeacon• 新しい位置と近接検出技術

• iOS7で採用 • Bluetooth Low Energyを使う • バックグラウンドでの常時検出

• ビーコンが送信する情報 • 128ビットのUUID、16ビットの値が2つ

• Made for iPhoneプログラムで提供 • iBeaconに限定したMFiがある • ロゴと商標利用と製造販売向けの2種類

• ロゴ、商標のライセンス提供 • 建物でのロゴ表示にもMFiが必要

• ビーコン製造販売への技術仕様提供

iBeaconビーコン

!

iPhone

ビーコンの特徴• ビーコンが伝える情報

• 128ビットの識別子 (UUID)、16ビットの値が2つ

• アプリとビーコンはUUIDでひも付け、値は設置者の自由

• 任意のビーコンには反応しない

• iBeaconの仕様は、ビーコンの検出だけ

• 読み書きはできない。独自機能追加などする。

• ビーコンまでの距離推定の精度あまりない。方向はわからない。

• 3段階程度 ( < 10cm , ~3m, それ以上)

• 小さく安価で電池駆動

• モジュール ~ 300円。電池で1~10年。

• WiFi/ビーコン同士の混信がない

• 設置、追加、混在

iOS7とiBeacon• iOS7の機能

• ビーコンの検出

• ビーコンになる

• フォアグラウンド・モード

• 領域監視(電波受信の有無検出)

• レンジング(1秒毎の大まかな距離推定)

• バックグラウンド・モード

• 領域監視のみ (検出時は短時間のレンジング可)

• 常時監視するモード

• ロック画面表示タイミングで検出

Engadget http://japanese.engadget.com/2014/02/17/mlb-ibeacon-ios/

Made for iPhone プログラム

Q & A

ビーコン活用の実例

iBeaconの活用場面• 屋内での位置検出と案内

• iPod touchなどの活用

• 展示物とのひも付け

• 移動経路の検出とロギング

• 決済など

• その場に必要なアプリや情報の提示

人の動き

NTTの実証実験型オフィスに潜入。スマホで全社員を行動監視・分析。位置情報とアプリ連携も

• 自社内プロジェクト

• http://japanese.engadget.com/2014/07/30/ntt/

• ビーコンを3m間隔で設置

• スタッフがどこにいるかを監視

• 交流、コミュニケーション

• エネルギー管理

iBeaconでパルコ内の回遊行動を見える化するソリューション

• 館内回遊動線分析システム

• http://k-tai.impress.co.jp/docs/news/20140725_659519.html

• (株)エンプライズ

• 端末を渡して実施

• データ分析の監修

• 慶應義塾大学大学院システムデザイン・マネジメント研究科

仲居さんにセンサー装着 がんこフードの「科学接客」

• http://www.nikkei.com/article/DGXNASFK2500K_V20C14A6000000/

• 副社長

• サービス工学分野の博士号

• 解析は、研究顧問を務める産業技術総合研究所、サービス工学研究センター

データの見えざる手: ウエアラブルセンサが明かす人間・組織・社会の法則

• 矢野和男 (著)

• http://www.amazon.co.jp/gp/product/4794220685/

• https://www.facebook.com/yano.labo

• 東工大 知能システム科学専攻

• http://www.dis.titech.ac.jp/special/yano.html

人の動きのロギング• 技術要素

• ビーコンの設置と設定 (位置ごとの識別子の設定)

• アプリケーション (バックグラウンド検出)

• 体験

• iPhoneを持っているだけ

• アプリケーションが処理

• iPhoneは普及したその人に紐付いたデバイス

その場にいる自分

未来のレストランはiBeaconで会計して見つめるだけでオーダーできるらしい

• http://weekly.ascii.jp/elem/000/000/210/210651/

• 注文、決済 (履歴)

• 品川 中国火鍋専門店【小肥羊(しゃおふぇいやん)】

• http://weekly.ascii.jp/elem/000/000/209/209556/

ビール売り子接近でスマホに通知 野球観戦、快適に

• http://www.nikkei.com/article/DGXMZO74965820Q4A730C1000000/

• 野球観戦で、ビール売り子接近でスマホに通知について

• http://blogs.yahoo.co.jp/aburamejun/48221091.html

その場にいる自分と世界• 技術要素

• ビーコンの設置と設定 (意味ごとの識別子の設定)

• アプリケーション (ロック画面、バックグラウンド検出)

• 体験

• 通知、表示

• 自分が何かを求めている、受け付ける状態にある

• iPhoneは非常にプライベートなデバイス

ビーコンの活用• 売り込み先は経営トップ

• 組織や現場、会社の将来自体を変える

• 不動産の所有者がビーコンを設置できる

• データは誰のものか?

• プライバシー、協業(のち破綻した場合?)

• 保存するのか?

• アプリケーションのダウンロード、はじめの体験

Q & A

工学の「工」

• http://ja.wikipedia.org/wiki/西澤潤一

• 工学の「工」の字にはこんな意味。

• 上の横棒は自然が与えてくれたもの、下の横棒は人と社会を表していて、それを縦棒でつなぐのが工学だ、と。

• http://shinbun.fan-miyagi.jp/article/article_20090716-4.php

ビーコンのデザインパターン

http://www.amazon.co.jp//dp/B00J9MHG66/

デザインパターン

専門店街にあるお店でビーコンを使いたい!• 企画 : 新しいショッピング体験

• 来てもらう、見てもらう、知ってもらう、楽しんでもらう (買ってもらう) • 紙の会員カードを発行している、季刊カタログやダイレクトメール(郵便)の送付

• 屋内ナビゲーション • 専門店街アプリの屋内地図にお店の位置表示、ナビゲーション機能 (自社アプリへのリンク)

• アプリケーションはお店とユーザの絆 • キャンペーンのお知らせ、そのお店で使えるクーポンを発行 • 個人にカスタムした、ユーザの文脈にそった、こんにちわ • 商品の説明表示、ブックマーク (後で買う)

博物館や空港ではどうなる?• 博物館

• 目の前にある展示物との対話的な体験

• 来てもらう (年間来館数)

• 個人に特化した、こんにちわ、チケットフリーですぐ入館

• 詳細説明提供、ブックマークやソーシャルメディアへの投稿

• カフェなど併設施設、特別ツアー (クーポン、次回来館特典発行)

• 空港

• ファーストクラスのサービス提供を

• 個人への特化

• フライトの状況、ゲートまでのルート案内

• ラウンジや空港内店舗へのお誘い

• 預けた荷物の受け取り位置までのルート案内、その後のタクシーなどの提案

iBeaconという単語を聞いたのだけど?• iBeaconは、その場にいる特定の顧客の行動を変化させる手段

• マーケティングが、オンラインからオフラインに広がる

• マイクロ・ロケーション (Micro-location)

• ビーコンの電波が届く範囲、場所の意味付けが自由にできる

• iPhoneとアプリを通じた個人へのカスタマイズ

• 近接時のマーケティング (Proximity Marketing)

• その場所その時間にふさわしい提案 (クーポンなど)

• 支払いやチェックイン (ロック画面へのショートカット表示)

• 屋内測位とインドア・ナビゲーション

• 同時にサーバアクセスからリアルタイムなユーザの行動把握

iBeaconを使いたいのだが?• iBeaconを利用するサービスの構成要素

• 企画

• ビーコンの設置位置の計画と備え付け (電源配線、設置方法)

• アプリケーション(iOS/Android)、サーバ、コンテンツ (Passbook)

• 運用

• 設備管理、コンテンツ更新、宣伝広告(アプリのインストール)

• 最初に企画ありき。レイヤを超えた全体俯瞰と担当者の共通認識が大切

• ビーコンで解決できることを、アプリケーションで解決させると大変

Q & A

ビーコンの無線通信技術• Bluetooth Low Energy (BLE)

• Bluetooth4.0で統合された超低消費電力無線通信

• 2.4GHz帯を使う

• Bluetooth 3.0とは物理層から異なる

• コイン型電池1つで年単位の無線通信

• 安価。ウェアブル、スマートフォン向き

• iBeaconが使えるiOS機種は?

• iPhone4s (2011年秋)以降に発売されたiOSデバイス

• BLEの機種対応はアプリケーションで調べられる

混信や干渉はないのか?• 2.4GHz帯を利用

• アドバタイジング・チャネルは、WiFiや電子レンジと重なりにくい周波数に

• WiFiからの干渉

• WiFiルータが近くにあると使えない場合もある

• ビーコン同士の干渉

• パケットの衝突、送信時間:非送信時間比は1:280程度 (ビーコンは10個程度を目安)

ビーコンのパケット

Time

368 マイクロ秒100 ミリ秒 程度

アドバタイジング・パケット

• UUID • major/minor number • RSSI (1m地点での受信信号強度)

ビーコンのハードウェア

• モジュールの大きさは2cm角程度

電池はどれくらい持つの?• 計算上は単3電池2本 1秒1回で10年間

• 3ヶ月で電池がなくなることがあった (事例紹介を参照)

• iBeaconビーコンの技術仕様

• MFiの技術仕様のパケットの送信周期が短い (頻繁に送信)

• ビーコンの実装

• スキャン要求および接続要求の送受信処理

• これは接続しない設定にすれば削減できる

• MyBeacon Pro MB004は、設定の通信を別のモジュールで

• 常設であればUSBタイプのものを使う

MyBeacon Pro MB004

368 マイクロ秒

時間

100 ミリ秒? (MFiにより不明)

アドバタイジング・パケットスキャン要求および接続要求の送受信

ビーコンの運用や設定はどうするのか?• ビーコンを調達しUUID等の値設定

• 価格自体は1000円程度から

• 電波の到達範囲の設定

• ユースケースにあわせた設置位置と送信電力値の決定

• 天井への設置は見通しがよい

• 電波到達範囲は設定で1m ~ 30m程度、タッチタイプも

• ビーコンの動作確認

• 自動体外式除細動器のパッケージサービスがヒントになる?

• 動作していない場合はサービスに不都合がない手順、現場対応の備え

http://www.aplix.co.jp/?page_id=9313

プライバシーは大丈夫?• ユーザの所在追跡、その場にいる人の名前等が第3者に漏れる

• ビーコンは一方的に送信するのみ

• 128ビットの識別子 (UUID)と16ビットの値が2つ (major, minor)

• 送信電力 (受信信号強度からの距離推定に用いる)

• アプリケーションおよびその提供元への信頼が大事

• ビーコンの情報は漏れないか、偽のビーコンが作られないか

• iOSでは任意のUUIDの読み取りはできない

• Androidやスニファ(受信機)でUUID等はすぐわかる、ビーコンの複製も容易

• 困る事態はケースバイケース、結果の列挙とその対処を考える

• iBeaconだけではない、ビーコンに認証機能追加、人間が確認する運用など

USB BLEスニファ

Androidのサポート• AndroidでのiBeaconの検出

• 独自の実装例

• Bluetooth4対応機種

• API Level: 18. Android 4.3

Q & A

ビーコンと研究

位置検出技術• 量、質でおっかけたくなる。高精度な位置、測位。

• ありあわせのハードウェアでの古い方法

• 電波の強度のみ。方向検出はできない。

• モバイル機器は拡張性はない。採用したら互換性。

• 何十年前の古さで、論文や特許があるはず。

• 前提: ビーコンの電波強度しか得られない。

• 距離と位置推定。3点計測、事前測定した電波強度分布から

• 実用性。ある程度動くこと。考えなくても設置できること。

• 測定したい距離精度程度で、ビーコンを格子に配置。

屋内地図での利用• 入り口(ポイント)の初期位置検出

• 屋内地図データ (iOS8)

• 申し込みアンケート受付中

• WiFiおよびiBeaconの情報

• NFCで初期位置設定の研究例

• 今後は、自律航法も?

• 加速度+M7プロセッサ

• いまはアプリケーションで作るほかない。

• OSが提供すべき、基本機能 (iOS9 ?)

Art Gallery ExampleBeacon regions

社会と人間

• ロジスティクス

• 経済において、原材料調達から生産・販売に至るまでの物流を企業が合理化するための手段。

• ファウンデーション (アイザック・アシモフ)

• 数学者ハリ・セルダン、集団の行動を予測する心理歴史学

• ネットワーク側から、人間が見える

• iPhoneを通して、ビーコンの検出を通して。

1800年終わり

熱と仕事

1905年

質量とエネルギー

2014年

情報と?

情報と時間とエネルギー• ネットワークの世界にリアル世界が流れこむ

• 時間と空間の概念がないところに、それらが生じる

• 宇宙が1つできるのと同じです

• 日本は資源がない国です

• 天然資源から、情報資源

• OS、コンパイラ、CPU (センサとメモリが辛うじて)

• ヒト・モノ・カネ・情報

• 既に組み合わせではない

Q & A

フリーランスとは

iPhone/iPod touch アプリ市場■ 抜群の普及数 ■ iPhone 3,000万台 ■ iPod touch 2,000万台

■ 公開,すぐ世界 ■ 個人でも会社でも ■ App Store は世界市場

■ 一攫千金 ■ AppStore $2億/月

������

�� ��

• 自分の強みを活かす • iPhone+ハードウェア

独立するときTips• 退職金

• 日本版401k、移管手続き • 保険

• 健康保険税、地方自治体依存、課税所得の7~12% • 任意保険(上限2万円)、払込忘れで退会

• 信用があるうちに • クレジットカード • 家を買う (団体保険)

• 税務 • 自分で一度やってみる • 青色申告、定率償却

メンタルの制御

アプリで食べる?

• 収益?!• 企画、開発、演出、宣伝!• 販売、集金 (AppStore)!

• 絵と音楽、作れねーorz!

• 受託? → 体力勝負、人脈ない、田舎暮らし!• 組み込みの経験を活用?→ハードな開発

最近のiPhone開発• Bluetooth4 (Low Energy)!

• 電池で1年以上通信!

• ウェアブル、医療!

• CoreBluetooth!

• MFi不要、アプリ承認OK!

• ハードとつながる!

• たぶん、ハード最後の”新機能”!

• 執筆、セミナー、(受託)

今後の10年• ミドルウェア!

• Appleに振り回されない!

• ”だれでも”できない!

• 3つの立場の使い分け!

• フリーランス → リスクの高い研究開発!

• プロジェクト → 成果の販売 (換金)!

• 著作、セミナー → その分野の第一人者

やってみて思うのは• 石の上にも3年

• 存在を知ってもらうまでに3年はかかる

• 3年、無収入でも死なない準備

• 単式帳簿と複式帳簿

• 人生は、余寿命をお金や社会的立場、実績に変換する作業

• アルバイト的な、時間単価を増やすような

• コミュニティ、組織を所持するような

http://ja.wikipedia.org/wiki/ファイル:SampleBankbook.png

資産

資本

負債 (借入)

Q & A

コミュニティとハッカソン

WF-BTLE https://www.facebook.com/groups/563064710384459/

岐阜県と大垣市

• ソフトピアジャパン

• http://www.softopia.info

• 情報科学技術大学院大学

• http://www.iamas.ac.jp

http://reinforce-lab.github.io/blog/2014/02/26/ibeaconhackathon3/

名古屋のコミュニティ• 名古屋GeekBar

• https://www.facebook.com/nagoyageekbar

• http://www.misoca.jp の中の方が毎週月曜開催

• 名古屋CV・PRML勉強会

• https://twitter.com/nagoyacv

• 中部大学が中核になり活発

• 個人的には

• 勉強会に価値はない

• 自分で発表し、異なる立場同士での情報交換

Q & A

iOS8ではiBeaconはどうなる? (1/4)• iOS8の秘密保持契約

• iOS Developer Program License Agreement, 10.1 Information Deemed Apple Confidential

• WWDCで公開された情報はNDAに縛られない。ただしスクリーンショット、レビューやベータ版ソフトウェアの配布は明示的に禁止。

• 情報源

• WWDC2014 Session Videos

• https://developer.apple.com/videos/wwdc/2014/

• What’s New in Core Location, Session 706

• Taking Core Location Indoors, Session 708

• iBeacon for Developers

• https://developer.apple.com/ibeacon/

iOS8ではiBeaconはどうなる? (2/4)

• アプリケーション開発

• iBeaconについてのSDKの変更点はない

• 位置情報のユーザ認可の変更。WhenInUse認可とAlways認可に分割

• レンジングのみであればWhenInUse認可、領域監視を使うならAlways認可

• iOS7の既存アプリケーションは、Always認可とみなされる。

• 屋内地図に向けた動き

• 屋内図の提出申請のアンケート受付 https://mapsconnect.apple.com

• アプリケーションのインストールと起動の促進

• AppStoreの”近くで人気 (near-me)” (これはiOS7ですでにある)

• その場にふさわしいアプリケーションのロゴがロック画面左下に表示

• AppStoreもしくはインストールしているアプリケーション

iOS8ではiBeaconはどうなる? (3/4)• CoreLocationフレームワークの変更点

• CLFloorクラス (建物の階)が追加

• WiFiをONにしてデバイスをアンロック(ホーム画面を表示)すると建物の階を検出する

• Visit monitoring (ユーザが滞在した場所を常時検出する機能)

• 屋内地図表示およびナビゲーションのヘルパクラス

• 地理座標の変換、ピクセルと地理的な距離の変換、フロアマップ画像の回転や縮小のサポート

• 入り口やコンテンツにiBeaconを設置する例を紹介

• (推測: 加速度センサによる自律位置推定導入時、ビーコンが初期位置検出と位置ずれ補正に使われる?)

• 建物やビーコンを通じたサービス提供者への提案

• ユーザとのつながりは、自社(あるいは提携)のアプリケーションを通して

• 屋内案内機能があるアプリケーションは、その場でインストールするチャンス

• 地図登録は始まったばかり。WiFiやビーコンの敷設計画があるならば早めの連携か?

iOS8ではiBeaconはどうなる? (4/4)• iOS8からの新しい流れ

• Apple Notification Center Service

• iOSの通知をBLEを通して周辺装置に同期する仕組み

• iWatch、ウエアラブル (iPhoneの画面を見ない時代)

• HomeKit

• 身の回りのあらゆるものをiOSに登録するフレームワーク

• BLEおよびWiFiで、Home Automation Protocol (MFi)

• 現在のユースケースはSiriを通した音声コマンド

• iCloudへの操作権限移譲とも見える

• アプリケーションを探す、画面を見る行動自体が、面倒と思われる時代

• その場所(コンテキスト)にあわせた自動的な処理(ロック画面表示および操作)

Q & A

iOSとビーコン (アプリ開発)

アプリでなにができるの?• アプリケーションにソフトウェア開発ライブラリ(SDK)が提供する機能は3つ

• レンジング (推定距離の取得)

• 1秒毎に検出したビーコンを通知、フォアグラウンドのみ

• ビーコン領域の状態取得

• ビーコン領域の内外にいるか、フォアグラウンド(アプリが画面に表示されている)

• ビーコン領域の監視

• ビーコン領域の境界をまたいだ時に通知

• フォアグラウンドおよびバックグラウンド

• 領域監視等通知時の実行時間(10秒)では、バックグラウンドでもレンジング、状態取得できる

• ロック画面が表示された時に、ビーコンを検出するバックグラウンドモード

領域監視とレンジング• 監視対象

• CLBeaconRegionクラス。UUID, (省略可 major), (省略可minor)

• UUIDの指定が必須。知らないUUIDのビーコンは検出できない

• 1アプリあたり20が上限値

• 領域監視の通知は、領域境界を”またいだ時”に発生する

• ビーコンを検出すると、in通知

• 2秒程度

• ビーコンの領域からでると、exit通知

• 35~50秒、受信圏外。(開発文書には目安20秒以上、200m以上のエリア移動)

ビーコンまでの方向と距離を知りたいのだが?• 電波が来た方向は取れない

• レンジングの距離推定

• レンジングで取得できる距離区分

• immediate: 非常に近い(~10センチメートル)

• near: 近い(1~3メートル)

• far: 遠い(ビーコンが受信できるそれ以上の距離)

• CLBeaconのプロパティaccuracy

• メートル単位の推定距離値、だが距離区分内での判定程度に

• 部屋の中での位置を知りたいのだが?

• 1つのビーコンでは、どの部屋にいるか程度

• 複数のビーコンの組み合わせ

ストア申請でリジェクトされたのだが?

• バッテリ消費が少し増えると説明に書く必要があったらしい

• イベントなどの利用開始日があるものは早めの申請を

• バックグラウンドでのビーコン領域監視(出入りの監視)

• iPhone4s: iOS7.0 50%/日、iOS7.1 3~5%/日 程度

• iPhone5: iOS7.0および7.1 3~5%/日 程度

• ロック画面表示時のビーコン領域検出だけであれば、バッテリは消費しない

• 電話基地局を使う粗い地理的な位置監視と組み合わせなど

領域指定が20では不足するのだが?• 監視対象はビーコン群

• CLBeaconRegionに指定しない項目はワイルドカード

• 指定条件の工夫

• ゲート: 検出はUUIDのみ、10秒間のレンジングでビーコンの個別判定

• エリア: 指定条件AとBを交互に配置して再利用。

• スポット: 別会社ならば個別UUID。同じ会社ならば、エリアとして扱う

• 建物に入った時点で、詳細条件を設定する(実行時に設定を組み替える)

UUID指定 major : 無指定 minor: 無指定

UUID指定 major : 1

minor: 無指定

UUID指定 major : 1 minor: 1

動かないのだが?• 構成要素

• ビーコン、iOSアプリケーション、ネットワーク

• iOSおよびアプリケーションの設定

• Bluetoothがオフ, BLEの非対応機種 (iPhone4)

• 位置情報利用のユーザ認証が無効

• iOS7.0と7.1の振る舞いの違い

• iOS7.0 アプリがタスクスイッチャにあれば、Terminated状態から復帰する

• iOS7.1 タスクスイッチャからスワイプアウトしていてもTerminated状態から復帰

• iOSの内部エラー

• iOS7.1はエラーが発生しやすいっぽい? 本体再起動しか復帰しない

• Bluetoothの電源状態のモニタおよび領域監視開始時のエラーコードを、アプリ設計に反映する

• 動かない原因を現場で探ることを期待/想定してはいけない。運用でカバーできる計画にする。

これら3つは SDKで状態取得できる

iOS7とiBeacon

iOS7とiBeacon• アプリケーション開発にはMFiは不要

• CoreLocationフレームワーク

• 一般開発者権限で開発/アプリストア承認、デバッグは実機のみ

• ビーコン領域

• 地理的領域とは違う、電波の届く範囲

• ビーコンが検出できる機種

• iOS7が動いているiOSデバイス ( iPhone4と第2世代iPadを除く)

• SDKが提供する機能

• ビーコンの検出

• ビーコンになる

• バックグラウンド・モード

領域監視とレンジング• ビーコン領域の状態取得

• ビーコン領域の内外にいるか (フォアグラウンド、アプリが画面に表示されているとき)

• ビーコン領域監視

• フォアグラウンドおよびバックグラウンド

• ビーコン領域をまたいだことを検出

• レンジング

• 1秒毎に検出したビーコンの情報を通知 (フォアグラウンドのみ、バックグラウンドでは動かない)

• ただしバックグラウンドで領域監視等通知時の実行時間(10秒間)では、使える。

領域監視のコード例locationManager = [[CLLocationManager alloc] init];

locationManager.delegate = self; !

[locationManager startMonitoringForRegion:region]; [locationManager stopMonitoringForRegion:region];

!CLBeaconRegionクラス

BOOL notifyOnEntry : 領域 in, デフォルト YES BOOL notifyOnExit : 領域 exit, デフォルト YES BOOL notifyEntryStateOnDisplay : 画面表示時, デフォルト NO

CLLocationManagerDelegateプロトコル -(void)locationManager:didEnterRegion: -(void)locationManager:didExitRegion:

-(void)locationManager:didDetermineState:forRegion:

領域指定とその領域

UUID指定 major : 無指定 minor: 無指定

UUID指定 major : 1

minor: 無指定

UUID指定 major : 1 minor: 1

領域監視とレンジング• 監視対象

• CLBeaconRegionクラス。UUID, (省略可 major), (省略可minor)

• UUIDでフィルタリング、知らないUUIDは取れない

• 1アプリあたり20が上限値 (iOS 7.0.2)

• 領域監視の通知は、領域境界を”またいだ時”に発生する

• ビーコンを検出すると、in通知

• ビーコンの領域からでると、exit通知

• 受信圏外で35~50秒位。(20秒以上、200m以上のエリア移動)

レンジング• ビーコン領域の検出時 (バックグラウンドモード)

• 周囲にあるビーコンの情報取得はワイルドカード

• レンジング

• UUID/major/minor/RSSI/proximity

• 1秒毎に検出したビーコンの情報を通知

• 領域検出→レンジング実行→周囲ビーコン検出

Q & A

アプセサリ (Appcessory)Application + Accessory

http://www.fitbit.com/jp

Appcessoryの粗利益• この数値は、根拠のない例です

• 販売価格 10,000円

• 仮に、粗利益20%として

• 年2000円のウェブサービス

• 買い替え動機、頻度

• 破損、水没

20%

30%50%

販売管理等 工場出荷価格粗利益

Q & A

ハードウェア プロトタイピング

http://getpebble.com

http://www.lumoback.comhttp://www.wahoofitness.com

http://www.kickstarter.com

http://www.haxlr8r.compronounced “Hackccelerator”

プロトタイピング• iPhoneのセンサーで間に合うか ?!

• 必要な機能!

• センサー、アクチュエータ!

• 電波法!

• プロトタイピングのツール

プロトタイピング

• iPhoneを利用する

• 加速度、ジャイロ…

• プロトタイピングに使えるもの

• SensorTag, Konashi, RFduino

• 一般に見せるときに注意すること

• 電波法の技術基準適合証明

• Bluetoothの認証は、試作中は不要

TI Sensor tag

IR temperature Sensor!Humidity Sensor!Pressure Sensor!Accelerometer!

Gyroscope!Magnetometer!

http://www.ti.com/tool/cc2541dk-sensor

Konashi

http://konashi.ux-xu.com

RFduino

http://www.rfduino.com

モジュール!

• RF回路部分を小さな基板にまとめたもの!

• ハード側に手を入れるときに!

• 開発:スクリプト/C言語!

• 認証!

• 電波法 (各国ごとに1万ドルくらい)!

• Bluetooth 製品登録 (1万ドルくらい)http://www.bluegiga.com/

BLE112_Bluetooth_Smart_module

• RF回路部分を小さな基板にまとめたもの

• 各種の認証を取得済

• 電波法 (各国ごとに1万ドルくらい)

• Bluetooth 製品登録 (1万ドルくらい)

• 500円玉に乗るサイズ

• 内部のマイコンでユーザ・アプリが動く

• 開発用キット

• ~500ドル

オリジナル機器の開発

• 発注者はだれか?!

• 企画が権限をもつのがよい(iBeaconのように)!

• 担当分野をどこで切るか!

• ハードウェア+ドライバ!

• 挙動 = ハード × 通信 × iOS(BTserver)!

• トラブルに備える (納品後にiOSの振舞い変化)!

• デモ(動作確認、検証)アプリが大事

• 発注者がだれか?

• 企画に権限がよい (iBeaconのように)

• 担当分野をどこで切るか

• ハードウェア+ドライバ

• 挙動 = ハード × 通信 × iOS(BTserver)

• トラブルに備える (納品後にiOSの振舞いが変化)

• デモアプリ(動作確認、検証)が大事

サービスとキャラクタリスティクスを見てみる

http://goo.gl/oYjrc

• UUIDで識別!

• 16-bit / 128-bit!

• 読み(read)/書き(write)/通知(notify)

Q & A

Bluetooth Low • 超低消費電力無線通信

• コイン型電池1つで年単位の無線通信

• 電池交換不要、使い捨て、低コスト

• ウェアブル、スマートフォン向き

• Bluetooth 3.0とは物理層から異なる技術

Bluetoothの歴史2007年 2009年

Ver2.1 Enhanced Data Rate

Ver3.0 High Speed

2004年

Bluetooth Low End ExtensionWibree

2006年

2010年

Ver4.0 3.0とLow Energy

の統合

接続の後方互換性

デュアルモード・デバイス (iPhoneやPC)

Low Energy

Ver 3.0 までの技術

Bluetooth 4.0

シングルモード・デバイス (周辺機器)

Bluetooth Smart は3.0までの機器とはつながらない

iOSとBLE2011年

iPhone4s iOS5

• 世界初のBT4

• MFiなしに一般開発者に解放

• ハードとつながるアプリが作れる

2012年

iPhone5 iOS6

• 周辺機器相当(ペリフェラル)になれる

2013年

iPhone5s iOS7

• 端末の買い替え周期

• 周辺機器サポート

• 独自のサービス展開

よくある質問• 略称は?

• Bluetooth Low Energy、BLE、Bluetooth Smart

• 超低消費電力で音声を送りたい

• Bluetooth3.0を使ってください

• すれ違い、ファイル交換に使いたい

• iOSアプリ間の通信速度は3~10kビット/秒程度

https://itunes.apple.com/sr/app/bluespeed/id579118786?mt=8

!

サービスとキャラクタリスティクス

プロトコルスタック

• キャラクタリスティクス!

• 制御/動作指定!

• センサー値/外界の状態!

• (装置の)動作状態/内部状態

ApplicationsCore Bluetooth

GATT

ATT

L2CAP

PHY

Link Layer

ApplicationsApplications

BTserver

• GATT: Generic Attribute Profile • ATT: Attribute Protocol • L2CAP: Logical Link Control and Adaptation

Protocol

プロトコルスタック

• キャラクタリスティクス!

• 制御/動作指定!

• センサー値/外界の状態!

• (装置の)動作状態/内部状態

ApplicationsCore Bluetooth

GATT

ATT

L2CAP

PHY

Link Layer

ApplicationsApplications

BTserver

• GATT: Generic Attribute Profile • ATT: Attribute Protocol • L2CAP: Logical Link Control and Adaptation

Protocol

サービス = クラス!キャラクタリスティクス = プロパティ

• キャラクタリスティクス • 制御/動作指定 • センサー値/外界の状態 • (装置の)動作状態/内部状態

サービスとプロファイル(振る舞い)

• http://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?

u=org.bluetooth.profile.find_me.xml

http://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?u=org.bluetooth.profile.find_me.xml!

Immediate!Alert Service!

Tx Power Service!

Link Loss!Alert Service!

振動やブザー!を出力

送信電力!の値

切断時の!振る舞い指定

Find ME!Profile

Proximity!Profile!

デバイス発見

切断時の警告

ユースケース ハード仕様

HomeKit• ハードウェアとアプリの分離

• アプリは位置登録とシーン設定 • Siri音声コマンドによる実行

• 新しいハードウェア販売 • アプリケーションはおまけ?

HomeKit (ハード)

HomeKit Accessory ProtocolConnecting accessories to HomeKit

Transports • Bluetooth Low Energy

• IP

Security • Bi-directional authentication

• Per-session encryption

Common functionality definitions • Services

• Characteristics

プロトコル。 BLEとIP。

セッションごとに暗号化。 サービスとキャラクタリスティクス

HomeKit Accessory Profiles

Services • Garage door openers

• Lights

• Door locks

• Thermostats

• IP camera controls

• Switches

• …

• Custom

Characteristics • Power state

• Lock state

• Target state

• Brightness

• Model number

• Current temperature

• …

• Custom

サービス: 具体的な機器 キャラクタリスティクス: 機能

2つを分離することで、自由な組み合わせ。多種多様な機器に対応可能。

HomeKit Accessory Protocol Layers

Bluetooth LE IP

L2CAP TCP

Attribute Protocol (ATT) HTTP

Generic Attribute Profile (GATT)

JSON

HomeKit Accessory Protocol

HomeKit

Encryption Boundary

完全にApple仕様

HomeKit対応ハード

• 通信以外で、コード入力によるペアリング

• その機器を動かしていると確認できる機能

• MFi取得からスタート

HomeKit (アプリ)

Common Database

1つのデータベースを共有。 アプリが、位置登録、アクション登録

Home Manager

Entry point

Common database

Manages homes

Primary home

Add or remove homes

Notifies of changes

ホームマネージャ。 複数のホームを管理。

ホーム、ルーム、アクセサリ

Room

Contains accessories

Notifies of changes

Uniquely named with a home

Recognized by Siri

ルーム。ホームはルームの集合。

Zone

ZonesHMZone

Arbitrary grouping of rooms • Example: upstairs

Rooms can be in any number of zones

Uniquely named with a home

Recognized by Siri

Rooms

Rooms

Rooms

Rooms

Rooms

Rooms

Rooms

部屋の集合体がゾーン。 1Fとか、2Fとか。Siriが認識。 “へい、Siri。1Fの電気をオフ"

Accessory

Corresponds to physical device(s)

Assigned to a room

Accesses device state

Notifies of changes

Uniquely named with a home

Recognized by Siri

機器。照明とか、エアコンとか、ドアロックとか 識別可能な名前付け。

Siriが認識。

Home Kit Accessory Profiles

Services • Garage door openers

• Lights

• Door locks

• Thermostats

• IP camera controls

• Switches

• …

• Custom

Characteristics • Power state

• Lock state

• Target state

• Brightness

• Model number

• Current temperature

• …

• Customアクセサリは、サービス、複数のキャラクタリスティクス サービス=機種の種類

キャラクタリスティクス=機能 多種多様な機器を表現する工夫。

Services

Represents a function of an accessory

Contains characteristics of the service

May have a name • A “light bulb” service has a name

• A “firmware update” service does not

• Don’t expose unnamed services

• Names must be unique within a home

Recognized by Siri • Named and Apple-defined

機器の種類。照明とか

Service Group

Service GroupsHMServiceGroup

Arbitrary grouping of services • Example: nightlights

Services can be in any number of groups

Convenient way to control services across accessories

Uniquely named with a home

Recognized by Siri

Service

Service

Service

Service

Service

Service

Service

機器の集合。 常夜灯の集合とか

Action Set

Lock doors

Light off

Close garage

Close gates

Switch off

Temp down

Light off

Action

ActionsHMCharacteristicWriteAction

Added to action sets

Writes a value to a characteristic

Close garage

操作。単純な書き込み。

Action Set

Lock doors

Light off

Close garage

Close gates

Switch off

Temp down

Light off

Action SetsHMActionSet

Collection of actions that are executed together • Example: “night”

Actions executed in undefined order

Uniquely named with a home

Recognized by Siri

夜にして。

Every

Date

Time

Delay

Action

Repeat

On/Off

TriggersHMTimerTrigger

Executes an action set

Fires on a specified date

Can repeat

Uniquely named with a home

System executes in background

Trigger

Night

Week days

9PM

1 hour

Lock doors

Repeat once

On

アクションの集合の実行。 時間指定、繰り返し。

Testing Your App

How do you test?

HomeKit Accessory Simulator!

Initial Setup ReviewRecommended flow

Create a home • User provides name

Add rooms to the home • User provides names

Add accessories • Use an accessory browser

• Add accessory to home

• User provides name → update name for accessory • User chooses room → assign accessory to room

アプリケーション=初期設定と動作確認。 パソコンのデバイスドライバみたい。

雑感

2年後、5年後の予測• 2000年のインターネット

• あたる予測と、予測でしかない予測と

• 2年後

• 相手の戦力をもって判断。自分が何を出来るか。

• 工場。製造。要素部品はだれでも同じ。

• 会社を作り販売開始まで、2年。

• 5年後

• 5年前から今が予測できたか?

IoT?• コマツの重機のデータ収集、回転寿司のAWS活用

• なぜiOSでIoTとかの話題?

• iOSはインフラ

• B2B、B2C?

• POSの無料サービス

• 空席情報→自社から客の誘導。チェーン店?

• リアル世界とネットの同期

ウエアラブル?• 身に付ける習慣。

• 1つだけ。翌朝も身につけるか? 充電?

• メガネと時計 (衣服と靴)、皮膚接触

• 電子からみた人間、その逆も、透明人間。感覚器

• 機能、通知と表示(1/2次元)、生体情報

• メガネ、目と耳。腕時計、見遣る。

• 物理的にべつもの。機能+アルファか、新種か。

ANCS / iWatch

• iPhoneの画面をいちいち見るのは、めんどうだ

• ポケベル時代と人間は同じ、10秒で消えるSNS

• 通知系、特定条件、フィルタリング、確実にとる

• ケース、イヤホンアクセサリ

iBeacon• 従来やりたかったことを、iBeaconで

• 理解できる形にiBeaconをおしはめる

• 外部からユーザのiPhoneにトリガー、常時検出

• 意味付けは自由、もの。位置、展示物、移動体

• iWatch的な物自体も

• 検出、感覚器の延長。送信、発声の延長。

• 機械同士の会話

• その場でやりたいことは、やること

• アプリを選択、パスを選択…

ハードウェアが未来を…• Fitbit、事業の1要素としてハードウェアが

• iPhoneの場合

• 立場の変更:音楽プレイヤーから電話に

• 売り場:キャリア代理店

• 買い替えサイクル:2年周期 (iOS1年/ハード2年)

• 普及期は急激な伸び、飽和で買い替えサイクル

• インフラ、アカウント、購買/個人情報蓄積

参考情報

Appleからの情報• https://developer.apple.com/videos/

wwdc/2012/!

• Session 703: Core Bluetooth 101!

• Session 705 Advanced Core Bluetooth!

• Apple Bluetooth Mailing list!

• https://lists.apple.com/mailman/listinfo/bluetooth-dev

書籍• AppleのBluetoothアクセサリ設計指針!

• Bluetooth Low Energy Handbook!

• http://www.amazon.co.jp/Bluetooth-Low-Energy-Developers-ebook/dp/B009XDA1G8/!

• Building iPhone and iPad Electronic Projects!

• http://shop.oreilly.com/product/0636920029281.do!

• Bluetooth4 Core Specificaiton (辞書的に)

半導体、モジュール• Texus Instruments社!

• http://www.tij.co.jp/product/jp/cc2540!

• http://processors.wiki.ti.com/index.php/Category:BluetoothLE?DCMP=blestack&HQS=ble-wiki!

• フォーラム!

• Nordic Semiconductor社!

• https://www.nordicsemi.com!

• BlueGiga!

• http://www.bluegiga.com

サービス、動向• Facebook BTLEグループ!

• https://www.facebook.com/groups/563064710384459/!

• Kickstarter ?!

• http://www.kickstarter.com/discover/recently-launched