SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
iBeaconを触ってみた
一階武史(@shiffon_1f)
目次
1.自己紹介
2.iBeaconとは
3.Beaconの識別情報
4.Beaconからの情報
5.Estimote社のBeacon
6.Beaconを動かしてみた

7.動かした感想
1.自己紹介
名前:一階 武史(@shiffon_1f)
URL:http://shiffon.info/blog
所属:某広告制作会社
経歴:
昔は官公庁メイン名お堅いSIでソフトウェアアーキテクト。今は
180度歩行転換して、柔らかな思考が必要な広告制作会社でテクニ
カルディレクターをやっています。
技術が(下手の横)好きなエンジニアです。
2.iBeaconとは
すごくおおざっぱに言うと、AppleがiOS7に搭載した
BluetoothLowEnergyに準拠したBeaconを利用するための技術です。

Beaconは2秒に1回程度の発信ならボタン電池で5年は軽く持つと
言われているので、一度設置したら当分放っておいても大丈夫な便
利デバイスです。
現在はEstimote社以外にも、Aplix社がiBeacon互換のチップを販売
していてます。
今購入するなら値段もサポートもAplix社の方がよいと思われま
す。
購入URL:http://www.aplix.co.jp/?page_id=7593
3.Beaconの識別情報
Beaconは個体識別を行うために3つのパラメータを持っています。
(1)proximityUUID
いわゆる大区分。1つのアプリには20個まで登録可能。
(2)major
いわゆる中区分。
大区分配下でBeaconをグループ分けする際に利用

(3)minor
いわゆる小区分。
中区分配下でBeaconをグループ分けする際に利用。

ここで重要なのは、これらの値はBeacon個体毎に個別の値を設定す
る必要がないということです。
3.Beaconの識別情報
とある外食産業の各店舗にBeaconを配置する際の設定方法を、利用
シーンごとに書いてみます。
・店舗を識別せずに、単純にレジにだけBeaconを配置する場合
proximityUUIDを全て同じに設定すればOK
・店舗を識別せずに、単純にレジとドリンクバーにBeaconを配置す
る場合
proximityUUIDを全て同じにし、majorをレジとドリンクバーで
別々に設定すればOK
・店舗を識別して、レジとドリンクバーにBeaconを配置する場合
proximityUUIDを全て同じにし、majorの値を各店舗で別々に、
minorをレジとドリンクバーで別々に設定すればOK
と、利用の仕方に応じてフレキシブルに設定出来ます。
4.Beaconからの情報
Beaconを認識すると識別情報に加えて、以下3つの情報が来ます。
※認識したBeaconの情報はFramework側で自動的に近い順に並べて
くれます。
(1)proximity
端末との距離で、近接/近い/遠い/不明の4種類で定義
(2)accuracy
正確さ?使わなくていいっぽい。
(3)rssi
電波受信強度。使わなくていいっぽい。
アプリケーション側はBeaconの識別情報と主にproximityの情報
を利用して、来店回数を+1したり、お知らせを出したりします。
5.Estimote社のBeacon
随分前に発注したBeaconがやっと来たので、いろいろ調べてみまし
た。
5.Estimote社のBeacon
とはいうものの、パッケージには使い方などが一切入っておらず、
電源の入れ方すら分かりません。
なので、サクッとさくっと割りました!
5.Estimote社のBeacon
電池は工場出荷時から既にセットされていてすぐ使える状態でし
た。
OFFにしたり電池を交換するときは割って中身を取り出さないと駄
目なようです。
・・・面倒くさいですね・・・。

ちなみにBeaconの情報を書き換えるツールは現在提供されていませ
ん(多分)。
5.Estimote社のBeacon
Beaconの情報はEstimote社のHPからサンプルアプリのプロジェクト
がDL出来るようになっているので、それを利用して確認します。

なお、自分のプロジェクトでBeaconを扱う場合は、Estimote社が提
供しているライブラリ(サンプルアプリのプロジェクトから取り出
して利用)を組み込むことで利用可能になり、Beaconの情報は
ESTBeaconというクラスに格納されます。

と書きましたが、AppleのCoreLocationFrameworkだけで取得できる
か試してみたら問題なく動作したので、Esimote社のライブラリは
特にいらない模様です。
6.Beaconを動かしてみた
アプリを起動すると周囲のBeaconを検知するアプリを作ってみまし
た。
1.CoreLcoationFrameworkを追加する。
2.変数を定義
@property (nonatomic, strong) CLLocationManager* locationManager;
@property (nonatomic, strong) NSUUID* proximityUUID;
@property (nonatomic, strong) CLBeaconRegion* beaconRegion;

NSString* beaconUUID = @"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

※beaconUUIDは事前にEstimote社のサンプルプログラムを動かして
取得
6.Beaconを動かしてみた
3.viewDidLoadで測定開始
if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]])
{

if( _locationManager == nil ) {
_locationManager = [CLLocationManager new];
_locationManager.delegate = self;
}
_proximityUUID = [[NSUUID alloc] initWithUUIDString:beaconUUID];
_beaconRegion = [[CLBeaconRegion alloc]
initWithProximityUUID:_proximityUUID identifier:@"EstimoteSampleRegion"];
[_locationManager startMonitoringForRegion:_beaconRegion];
// 最初から範囲内にいるとイベントが走らないのでここで走らせておく。
[_locationManager startRangingBeaconsInRegion:_beaconRegion];
}
6.Beaconを動かしてみた
※コメントにもありますが"startMonitoringForRegion"を呼び出すとBeaconの監視を開
始しますが、この時に対象Beaconが既に近くにあると発見イベントが通知されないとい
う残念な仕様になっているので、即Beaconとの距離測定を開始しています。
実際に使う際はしばらく距離測定対象が存在しなければ"stopRangingBeaconsInRegion"
を呼び出す感じがいいのではないかと思います。
※EstimoteのBeacon全てを対象にしているのでinitWithProximityUUIDにmajorやminor
を指定していません。
6.Beaconを動かしてみた
4.Beacon発見/ロストイベント
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray
*)beacons inRegion:(CLBeaconRegion *)region

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion
*)region
※Beaconが見つかると"didRangeBeacons"が、Beaconを全て見失うと"didExitRegion"が
呼び出されます。
※"didRangeBeacons"の(NSArray *)beaconsには、Frameworkが近いBeaconから順番に
セットしてくれているので、自前で距離計算をする必要はありません。
6.Beaconを動かしてみた
5.Beaconの情報に応じた処理
for (CLBeacon* clBeacon in beacons) {
switch(Beacon.proximity) {
}
switch (clBeacon.major integerValue ) {
}
}
※EstimoteのBeaconは3色全てmajorの値が異なるので、majorの値を元に3色を識別し
ています。
※majorの値は事前に端末に3色それぞれを近接させて取得しました。

と、意外と簡単に扱うことができます。
7.動かした感想
非接触でいろいろ情報発信が出来るのでNFCより便利!みたいな話
になって盛り上がってましたが、Passbookと同じ道を歩む、がっか
り規格になるんじゃないかと思ってます。

がっかりになると思った大まかな理由は以下2つです。
1.アプリに組み込まないと動かない。
ユーザにアプリを落として貰うハードルがまず高いし、当然開発費
がそれなりにかかってくるわけで、無印やユニクロみたいな既に店
舗連動のアプリを持っているところでないと採用が進まないのでは
ないかと思ってます。
7.動かした感想
2.認識の精度が悪い。
ひょっとしたらEstimote社の現行のチップの性能なのかもしれませ
んが、これが結構問題だと思ってます。
端末にBeaconを近づける/遠ざけるのいずれの場合にも認識に時間
がかかる(10秒〜15秒)ので、まずリアルタイム処理で反応させる
のは難しそう。
店の前を通ったらPush通知というイメージがありますが、店の前を
通り過ぎてからPush通知 or Push通知がでないということになりそ
うな気がします。

更に動かしていないも関わらず端末とBeaconの距離が変動したり、
見失ったりするので難儀だな、と。

端末の周りにEstimoteのBeacon3色を置いて放置したら、検知順番
は変わるし、いきなり見失うしと結構大変でした。
7.動かした感想
そもそもiOSのシェアは全世界だと13%切っているので、新しい規格
を採用したところで普及するわけないじゃん!という根本的な問題
を横に置いても、すごく残念でした。

※あくまでiBeaconの話で、BLE自体はいいものだと思ってます。

AppleはiBeaconより、AirDropをもっと強化すれば良かったのでは
ないかと思います。
Fin

Contenu connexe

Similaire à I beaconについて

iBeacon Applications
iBeacon ApplicationsiBeacon Applications
iBeacon ApplicationsKosuke Usami
 
iBeaconsを触ってみた
iBeaconsを触ってみたiBeaconsを触ってみた
iBeaconsを触ってみたAtsushi Ito
 
ビーコンを使うサービス事業
ビーコンを使うサービス事業 ビーコンを使うサービス事業
ビーコンを使うサービス事業 CRI Japan, Inc.
 
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用schoowebcampus
 
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場Shota Suzuki
 
最近の活動について
(not ruby)
最近の活動について
(not ruby)最近の活動について
(not ruby)
最近の活動について
(not ruby)BeMarble
 
最近の活動について(娯楽編)
最近の活動について(娯楽編)最近の活動について(娯楽編)
最近の活動について(娯楽編)BeMarble
 
201405 Web&Mobile EXPO Beacon資料
201405 Web&Mobile EXPO Beacon資料201405 Web&Mobile EXPO Beacon資料
201405 Web&Mobile EXPO Beacon資料KnowledgeWorks
 
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜Shuichi Tsutsumi
 
周辺beaconを取得するwearアプリを追加してローンチするまで
周辺beaconを取得するwearアプリを追加してローンチするまで周辺beaconを取得するwearアプリを追加してローンチするまで
周辺beaconを取得するwearアプリを追加してローンチするまでIkada Kaori
 
iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)Masashi MATSUI
 
VOT vol9@zeals 20190423
VOT vol9@zeals 20190423VOT vol9@zeals 20190423
VOT vol9@zeals 20190423NorioIkedo
 
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーデブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーDevelopers Summit
 
Yahoo vs ClassMethod_battle5_iBeacon
Yahoo vs ClassMethod_battle5_iBeaconYahoo vs ClassMethod_battle5_iBeacon
Yahoo vs ClassMethod_battle5_iBeaconYasuhisa Arakawa
 
Aicube technology introduction about the contents of the exhibition at irex2019
Aicube technology introduction about the contents of the exhibition at irex2019Aicube technology introduction about the contents of the exhibition at irex2019
Aicube technology introduction about the contents of the exhibition at irex2019aicube inc.
 
I beaconの可能性
I beaconの可能性I beaconの可能性
I beaconの可能性Shinya Aota
 
iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側Takehiro Shiozaki
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデートtomohiro kitaura
 

Similaire à I beaconについて (20)

iBeacon Applications
iBeacon ApplicationsiBeacon Applications
iBeacon Applications
 
iBeaconsを触ってみた
iBeaconsを触ってみたiBeaconsを触ってみた
iBeaconsを触ってみた
 
ビーコンを使うサービス事業
ビーコンを使うサービス事業 ビーコンを使うサービス事業
ビーコンを使うサービス事業
 
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
 
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
 
最近の活動について
(not ruby)
最近の活動について
(not ruby)最近の活動について
(not ruby)
最近の活動について
(not ruby)
 
最近の活動について(娯楽編)
最近の活動について(娯楽編)最近の活動について(娯楽編)
最近の活動について(娯楽編)
 
201405 Web&Mobile EXPO Beacon資料
201405 Web&Mobile EXPO Beacon資料201405 Web&Mobile EXPO Beacon資料
201405 Web&Mobile EXPO Beacon資料
 
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜
Bluetooth LEデバイスと技適 〜EstimoteのBeaconsを使うと逮捕されるのか〜
 
周辺beaconを取得するwearアプリを追加してローンチするまで
周辺beaconを取得するwearアプリを追加してローンチするまで周辺beaconを取得するwearアプリを追加してローンチするまで
周辺beaconを取得するwearアプリを追加してローンチするまで
 
iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)
 
VOT vol9@zeals 20190423
VOT vol9@zeals 20190423VOT vol9@zeals 20190423
VOT vol9@zeals 20190423
 
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジーデブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
デブサミ2013 【15-A-1】「爆速」を支えるテクノロジー
 
Pokelabo android web
Pokelabo android webPokelabo android web
Pokelabo android web
 
Yahoo vs ClassMethod_battle5_iBeacon
Yahoo vs ClassMethod_battle5_iBeaconYahoo vs ClassMethod_battle5_iBeacon
Yahoo vs ClassMethod_battle5_iBeacon
 
Aicube technology introduction about the contents of the exhibition at irex2019
Aicube technology introduction about the contents of the exhibition at irex2019Aicube technology introduction about the contents of the exhibition at irex2019
Aicube technology introduction about the contents of the exhibition at irex2019
 
I beaconの可能性
I beaconの可能性I beaconの可能性
I beaconの可能性
 
iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側iQONを支えるクローラーの裏側
iQONを支えるクローラーの裏側
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
 
Pythonで簡単動画解析
Pythonで簡単動画解析Pythonで簡単動画解析
Pythonで簡単動画解析
 

I beaconについて