SlideShare a Scribd company logo
1 of 13
発表者:トビウオ
※ロゴ作成にとある櫻花の画像生成を使用しました
Bluetoothとは?
• イヤホンやマウス・キーボードでおなじみの無線規格
• 数m〜数十m程度の距離でデータをやり取りできる
• WiFiよりは低速だが、その分消費電力が低い
• より低消費電力に特化した規格(BLE)も存在する
※画像はWikipediaから。ライセンスはPD
BLEとは?
• 速度や有効距離を妥協して、その分消費電力を節約する
ことに特化した「Bluetooth Low Energy」の略
• 性質上、IoT方面でしばしば採用される
• 計測センサーやヘルスケア機器など
• 有名所ではPokémon GO Plusにも使われている
https://www.pokemongo.jp/plus/より引用
BLEで通信しよう
• BLEでは、「セントラル」の機器と「ペリフェラル」の機
器との間で通信を行う(ブロードキャストモードもあるが説明を略す)
セントラル ペリフェラル
(通信を制御する) (情報を発信する)
BLEの接続手順
ペリフェラル
セントラル
アドバタイズパケット
↑ペリフェラルから発信される
アドバタイズパケットをスキャンし、
どういったデバイスがあるかを知る
※画像素材はいらすとやから
BLEの接続手順
セントラル ペリフェラル
ペリフェラルに対して
コネクション要求を送る
応答を返し、
コネクションを確立する
コネクション中は
アドバタイズパケットを
送信しない
BLEの接続手順
セントラル ペリフェラル
セントラルからの要求に答える
指定したキャラクタリスティックに
読み込み・書き込み・通知要求などを送る
サービス(大分類) キャラクタリスティック(小分類)
• UUID • UUID
• ハンドル
• 値
• パーミッション
• プロパティ
• デスクリプタ
UUIDについて
• BLEにおける「サービス・キャラクタリスティックの仕様
」は、Bluetooth SIGで規格化されているものが多い
• 例えば心拍計は「Heart Rate」という名前のサービス
(UUID:0x180D)として定義されており、以下のキャラク
タリスティックが定義されている
• 心拍数を返す(UUID:0x2A37)
• 装着するべき位置を返す(UUID:0x2A38)
• 機器に制御指示を送るための(UUID:0x2A39)
パターン
UUIDについて
• 前述の心拍計の規格「Heart Rate」は「Heart Rate
Profile(HRP)」とも呼ばれており、HRP対応機器なら同じ
手順でデータを読み出すことができる
• ただ、機器に独自サービスが仕込まれていることもよく
あり、機器によってはSDK経由でアクセスできたりする
• 「0x180D」のように4桁しかないのは短縮形で、「
xxxxxxxx-0000-1000-8000-00805f9b34fb」のxxxx部分に
当てはめれば本来の128bit UUIDになる
※機器の独自サービスの場合、短縮形が無いこともある
プログラムからの利用
• AndroidやiOSやLinuxでは、ライブラリを利用することで
セントラル・ペリフェラルどちらの役割も持てる
• Windows・Macの場合、組み込み機器への利用頻度の問題
なのか、セントラルの役割しか持てないライブラリが多
い
• Pythonから使用する際に使用するライブラリとしては、
pybluezやblyepyやBluefruitLEなどが有名
BLEの注意点
• アドバタイズパケットは誰からでも読めるので、所有
者以外からペリフェラルにアクセスされる可能性があ
る
• 同じ理由により、機器の仕様もある程度読み取れる。
Bluetooth SIGで規格化された方のサービスなら、サー
ドパーティ製アプリからアクセスも可能
※右記のアプリケーションの場合、
HRP対応機器からデータを読み出せる
BLEの注意点
あるスマートタグ(BLE使用)のレビュー
Androidの場合、Android 6.0以降だと
BluetoothだけでなくGPSをON
にしないとデバイスをスキャンできない
(ペアリングすればGPS権限は不要)
「APIの都合」をユーザーに説明
するのがなかなか難しい……
参考資料
• アプリケーション開発視点でのBLE通信 - Qiita
• Viewer | Bluetooth Technology Website Name: Heart Rate

More Related Content

What's hot

What's hot (20)

Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
 
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
Node-REDのworldmapの活用
Node-REDのworldmapの活用Node-REDのworldmapの活用
Node-REDのworldmapの活用
 
パッケージングを支える技術 pyconjp2016
パッケージングを支える技術 pyconjp2016パッケージングを支える技術 pyconjp2016
パッケージングを支える技術 pyconjp2016
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Moveitを使ったアプリケーションの紹介
Moveitを使ったアプリケーションの紹介Moveitを使ったアプリケーションの紹介
Moveitを使ったアプリケーションの紹介
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
xrmtg20210317
xrmtg20210317xrmtg20210317
xrmtg20210317
 

Similar to とある小型の青歯規格(ブルートゥース)

CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
Shin Ise
 

Similar to とある小型の青歯規格(ブルートゥース) (12)

Beaconのお話
Beaconのお話Beaconのお話
Beaconのお話
 
Winストアアプリでble接続
Winストアアプリでble接続Winストアアプリでble接続
Winストアアプリでble接続
 
iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?iOS7アプリ同士の近距離通信どれがいい?
iOS7アプリ同士の近距離通信どれがいい?
 
Bluetooth connecting iot bluetooth
Bluetooth connecting iot bluetoothBluetooth connecting iot bluetooth
Bluetooth connecting iot bluetooth
 
20160320 BLE4.2勉強会 MakerLab Nagoya
20160320 BLE4.2勉強会 MakerLab Nagoya20160320 BLE4.2勉強会 MakerLab Nagoya
20160320 BLE4.2勉強会 MakerLab Nagoya
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
 
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
 
FlashAirを用いたiot家電−jsboardshibuya
FlashAirを用いたiot家電−jsboardshibuyaFlashAirを用いたiot家電−jsboardshibuya
FlashAirを用いたiot家電−jsboardshibuya
 
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
 
20131026 i beaconワークショップ
20131026 i beaconワークショップ20131026 i beaconワークショップ
20131026 i beaconワークショップ
 
Android BLEのつらみを予防するTips
Android BLEのつらみを予防するTipsAndroid BLEのつらみを予防するTips
Android BLEのつらみを予防するTips
 
20140922 ble bootcamp
20140922 ble bootcamp20140922 ble bootcamp
20140922 ble bootcamp
 

More from iPride Co., Ltd.

AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
 

More from iPride Co., Ltd. (20)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
 
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
 
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
 
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものですAWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
 
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
 
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
 
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
 
OpenID Connectについて
OpenID ConnectについてOpenID Connectについて
OpenID Connectについて
 
画像生成AIの問題点
画像生成AIの問題点画像生成AIの問題点
画像生成AIの問題点
 
AI入門
AI入門AI入門
AI入門
 
MVCになぞらえて理解するReact
MVCになぞらえて理解するReactMVCになぞらえて理解するReact
MVCになぞらえて理解するReact
 
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
 
OAuth2.0について
OAuth2.0についてOAuth2.0について
OAuth2.0について
 

とある小型の青歯規格(ブルートゥース)