CoreBluetoothでつくるBluetooth Low Energyデバイス
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
25,311
On Slideshare
11,520
From Embeds
13,791
Number of Embeds
27

Actions

Shares
Downloads
66
Comments
0
Likes
20

Embeds 13,791

http://reinforce-lab.github.io 11,479
http://iseebi.hatenablog.com 1,647
http://reinforce-lab.github.com 351
http://ec2-54-248-240-57.ap-northeast-1.compute.amazonaws.com 192
http://localhost 34
https://twitter.com 23
http://webcache.googleusercontent.com 22
http://translate.googleusercontent.com 13
http://flavors.me 10
http://feedly.com 2
https://www.google.co.jp 2
http://digg.com 1
http://reinforce-lab.github.io&_=1369080501330 HTTP 1
http://reinforce-lab.github.io&_=1368942018065 HTTP 1
http://reinforce-lab.github.io&_=1368780365781 HTTP 1
http://reinforce-lab.github.io&_=1367981745232 HTTP 1
http://reinforce-lab.github.io&_=1367927886127 HTTP 1
http://reinforce-lab.github.io&_=1367167850347 HTTP 1
http://reinforce-lab.github.io&_=1367167126739 HTTP 1
http://reinforce-lab.github.io&_=1367153507489 HTTP 1
http://reinforce-lab.github.io&_=1366944701553 HTTP 1
http://reinforce-lab.github.io&_=1366800559589 HTTP 1
http://reinforce-lab.github.io&_=1366780687784 HTTP 1
http://reinforce-lab.github.io&_=1366780774546 HTTP 1
http://iseebi.hatenablog.com&_=1366737548449 HTTP 1
http://jp.flavors.me 1
http://www.feedspot.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. CoreBluetoothでつくるBluetooth Low Energy デバイス 伊勢  シン / 伊藤  伸裕 ITごったに勉強会#1@沖縄 2013/02/02 (Sat)
  • 2. ⾃自⼰己紹介•  伊勢  シン / 伊藤  伸裕 –  @iseebi / id:iseebi•  スマートフォンアプリ作ってます。 –  iPhone / Android –  最近うっかり iOS Developer Program 失効させるところだった•  今⽇日もスマートフォンのはなしです。
  • 3. 突然ですが!!!
  • 4. 今年はPF間近接通信が 来る! と思う
  • 5. 2013年年  スマホ⽅方⾯面で (個⼈人的に) アツそうなもの•  HTML5⽅方⾯面 –  依然注⽬目度度変わらず•  新しいモバイルOS –  Firefox OS、Ubuntu Phone •  Nexus S や Galaxy Nexus などの これらOSを”焼ける”端末の価値が急上昇の予感•  機器連携・近接通信 –  プラットフォームを超えた通信 –  組み込み機器の⾃自作
  • 6. いままでの近接通信状況•  iOS –  ⾃自由に開放されたAPIがない –  GameKit をつかったらできる。 •  独⾃自プロファイルなので、iOS同⼠士でしか通信できず•  Android –  Bluetooth いけます –  機種によってはFelicaいけます•  なんか2011年年の夏に1機種だけでたアレ –  全くダメ
  • 7. この1年年くらいで状況かわってきた•  iOS –  iOS 5 から  CoreBluetooth で⾃自由に使えるようになった。 iOS 6 でさらに⾃自由度度が上がった –  そのかわり、Bluetooth LEだけしか対応しない。•  Android –  NFC最速対応 –  Bluetooth LE対応している機種もちらほら。 ⾮非公式SDKで、何機種かはいけそう?•  なんか⽇日本で出る気配のないアレ –  NFCつかえる (AndroidとのURLやりとり確認済み) –  旧来のBluetoothがいけるようになった
  • 8. 新しい規格•  Bluetooth Low Energy (BLE) = Bluetooth 4.0 –  これまでのBluetoothよりも省省電⼒力力な設計 •  その代わり互換性はないので、ほとんどはデュアルスタックで 実装される –  GATT(General Attribute Profile) ベースの通信 •  機器は複数の Service を提供し、 サービスは複数の Characteristic を提供する •  Indicate, Notify など、通知機能もあり。•  Near Field Communication (NFC) –  おサイフケータイみたいな、「タッチして通信」 –  急速に広がってる
  • 9. 何がうれしいの?•  いままでできなかったこんなことができるように! –  iPhone / Android の間でアドレス交換 •  Android側の対応がまだ難あり –  iPadで動くアプリのコントローラとして、 Andorid と iPhone両⽅方使える –  バックグラウンド実⾏行行が使えるので、夢が広がる •  Macでも、新しいやつはCoreBluetooth使えるので、 Macからパルス送り続けて、通信続けさせるとか。 (要検証)
  • 10. まとめるとこうなる これまで⼀一切切あかんかった iOSが対応! Bluetooth 2.0 Bluetooth LE NFC※各OSの開発者マニュアルなどの情報を元に作者調べ。 2012/02/02(Sat) 現在
  • 11. iOSでBLE通信したい•  iOS 5 から⼊入った CoreBluetooth.framework を使う –  iPhone 4S 以上で使⽤用可能•  バックグラウンド実⾏行行可能! –  機器からアプリを起こすことができる (数秒だけ。でもTask Completionも使える)•  NO GUIDE –  まともなドキュメントやサンプルがほぼない。 –  WWDC’12のセッションビデオが最⼤大の情報源 •  Advanced Core Bluetooth
  • 12. BLE通信できた所で機器がない•  iOS 5 の段階で⽤用意されたのは 「機器に対してアクセスする」ものしかなかった –  iOS 5のタイミングでは、そんな機器はなかった。•  最近になって、ようやくいろいろできるようになって きた –  Arduino BLEシールド –  konashi •  http://konashi.ux-xu.com/ •  知って4分で注⽂文しました –  思い通りにやるには電⼦子⼯工作の知識識が必要
  • 13. iOS 6 で、iOSデバイスをBLE機器に!•  iOS 6で、CBPeripheralManager が追加! iOS  デバイス上にBLEデバイスを定義可能に –  NO REFERENCE •  リファレンスがないので、 ヘッダファイルのコメントをみながら、⼿手探り。
  • 14. CBPeripheralManager基本的な⼿手順•  CBPeripheralManagerDelegate を実装する –  必須なのは1つだけ•  CBPeriperalManager を作る•  CBMutableCharacteristic を作る•  CBMutableService を作って、 characteristics に配列列で突っ込む•  CBPeriperalManager に   CBMutableServiceをaddServiceで追加する•  startServiceする
  • 15. Demo したい…
  • 16. その他ポイント 1/2•  CBUUIDは、独⾃自にサービスを定義する場合は、 ターミナルでuuidgenで⽣生成する –  Bluetooth SIGに認証とったら 4桁UUID(0xXXXX)が使えるらしい
  • 17. その他ポイント 2/2•  iOSデバイスが⾜足りなければ、Macの設定を 変更更してシミュレータで試すことも可能。 –  USBのBLE対応アダプタが必須 –  TN2295参照 –  https://developer.apple.com/library/ios/ #technotes/tn2295/_index.html•  BLExplr はBLE開発必携ツール –  https://itunes.apple.com/jp/app/blexplr/ id524018027?mt=8
  • 18. まとめ•  iOS 6 + CoreBluetoothで CBPeripheralManagerを実装すれば BLE機器を簡単に作れます。 –  いろいろ夢がひろがる! –  組み込みのBLE機器のモックとしてもどうぞ•  ただしリファレンスがないので、ヘッダをがんばって読む。 –  そんなに仕組みは複雑じゃないです。まだがんばれる。•  あなたのアプリに、新たな選択肢を!