Slide 1

Slide 1 text

IoTでよく使われる Bluetooth/BLE超入門 MasaHero(@lunadrayuffie)

Slide 2

Slide 2 text

目次 ► 自己紹介(職歴/分野/趣味) ► 今回のLTの目標 ► 今回のLTで説明しないこと ► Bluetoothとは? ► Wi-FiとBluetoothの違い ► BLEとは? ► BluetoothとBLEの違い ► Bluetooth/BLEの書籍 ► BLEモジュールの紹介() ► RaspberryPiでBluetooth/BLEを始める方法

Slide 3

Slide 3 text

自己紹介 1. Who am I? 1. 25歳 2. 元道産子 2. 職歴 1. 回路設計エンジニア 2. 組込みエンジニア 3. 機械学習エンジニア 4. 組込みLinuxエンジニア(C/C++,Python, Linux) 3. 趣味 1. アニメ,ゲーム,映画,VTuber推し 2. 図書館/本屋巡り → 積読 3. エンジニアリングが好き(回路/ソフト問わず調べること・作ることが好き )

Slide 4

Slide 4 text

今回のLTの狙い ► IoTシステムでよく採用される、Bluetooth/BLEについて簡単に紹介 ► Bluetoothとは何か? ► Wi-Fiとの違いは? ► どのように使い分けてるか? ► BLEとは? ► BLEとBluetoothの違いは? ► Bluetoothを触りたい/学びたい/作りたい方向けに一部紹介 ► Bluetooth/BLEの参考書籍 ► BLEモジュールの紹介 ► Bluetooth/BLEを始める方法

Slide 5

Slide 5 text

今回のLTで説明しないこと ► Bluetooth/BLEを扱ったスマホアプリの説明(iOS, Android) ► Bluetooth/BLEの詳細な説明

Slide 6

Slide 6 text

Bluetoothとは? ► 無線規格の一種 ► Wi-Fiと同じ周波数帯(2.4G㎐帯)を使っている ► 1994年に始動、1999年に“Ver.1.0b”として規格を公開 ► 現在の最新バージョンは、“Ver.5.1” ► エリクソンを始め、東芝,Nokia,Intel,IBMの企業が参画 ► “Bluetooth SIG”という団体が規格更新や開発を行っている ► 実は、エリクソンの社内ベンチャーから始まっていた ► 活用例 ► COCOA(COVID-19接触確認アプリ) ► PCアクセサリ(マウス/キーボード/ヘッドフォン)

Slide 7

Slide 7 text

ここでBluetoothコソコソ裏話… なぜ「青い歯(Bluetooth)」と呼ぶの? 10世紀に実在したバイキング王、「ハーラル1世」の「青歯王」という呼び名から。 Bluetoothができる当時は多くの企業が規格を乱立していた背景から、 スウェーデンとデンマークを平和裏に統一した、ハーラル1世に因んで 市場の混乱が無いように願い付けられた。 Bluetoothのロゴも「ハーラル王」由来である。 (ルーン文字の2文字を合体している)

Slide 8

Slide 8 text

Wi-FiとBluetoothの違い(比較) Wi-Fi Bluetooth 周波数帯域 2.4GHz帯 2.4GHz帯 通信速度 高 低 消費電力 大 小 接続方式(トポロジー) 一対多 一対一,一対多 送信距離 大 (中継器で更に拡大可能) 小 (最大100m)

Slide 9

Slide 9 text

Wi-FiとBluetoothを どのように使い分けてるか? ► 開発対象の電源供給がBatteryか? ► 消費電力が抑えられる、Bluetooth/BLE ► Batteryの充電機会があまり取れない場合も採用 ► 通信データをあまり使わないか?(=通信速度はそれほど求めない) ► 通信したいときのみ使うならば、 Bluetooth/BLE (Wi-Fiは基本 常時通信) ► Ex) キーボード・マウス、ヘッドフォンなど ► 秘匿性 ► Wi-Fiは、通信距離が大きいので隣のビルや他フロアまで伝搬することもある ► 通信範囲を絞りたいor通信を隠したい場合は,Bluetooth/BLE

Slide 10

Slide 10 text

BLEとは? ► 正式名称は、Bluetooth Low Energy ► Bluetooth4.0に公開 ► 低コスト、低帯域、低消費電力を目的に開発された ► Bluetoothより理解しやすく、開発しやすい ► 活用事例 ► ウェアラブル製品(スマートウォッチ・シューズなど) ► スマートホーム

Slide 11

Slide 11 text

BluetoothとBLEの違い 従来のBluetooth (Bluetooth Classic) BLE (Bluetooth Low Energy) 通信速度 高 (最大 3Mbps) 低 (1Mbps 固定) 消費電力 大 小 伝搬距離 大 (最大100m) 小 (最大2~5m)

Slide 12

Slide 12 text

ゼロから始める Bluetooth/BLE学習

Slide 13

Slide 13 text

Bluetooth/BLEの学習書籍 1. 基礎からわかる「Bluetooth」―近距離に特化した無線通信規格 • Bluetoothについてゼロから学べる本 • メインはBluetooth Classicの内容 • プロトコルやプロファイルは BLEで共通する部分はあるので、読む価値アリ • 簡単な無線工学の内容 (無線通信の原理や変復調 )が記載されている 2. Bluetooth Low Energyをはじめよう • 対象読者は、組込みエンジニア・アプリケーションエンジニア • BLEの内容が詳細に書かれている • 10章構成 • 1~4章がBLE通信の説明 • 5~10章が実践的な開発の説明 (ハードウェアやツールが必要になる) 3. Interface(インターフェース) 2015年 08 月号 • 入手し難いが、BLEの特集 • BLEの説明がとても読みやすい構成 • 実践的な開発レシピが多数記載 • BLEモジュール(マイコンやデバイスなど)の紹介がある

Slide 14

Slide 14 text

BLEモジュールの紹介(ESP32) ► ESP-WROOM-32 ► Wi-FiとBluetooth機能を備えたマイコン ► micro-USBケーブルとPCがあれば、直ぐに始められる ► Arduino IDEで開発可能 ► IDEには、サンプルプログラムがあるので直ぐに試せる ► 多くのエンジニアが触っているので、ネットに参考資料が多い

Slide 15

Slide 15 text

RaspberryPiでBLEを始めるなら… その1 ► RaspberryPiでBLE開発するのは、ハードかつ技術選定が難しいので中級者向け? ► 開発環境構築が難しい ► BLEの知識が中途半端だと、迷宮入りしやすい ► 参考書籍がなく、紹介記事が少ない ► モジュールを使わずに RaspberryPiだけで開発する人少ないように見える 開発する前提条件として、BlueZの知識が少なからず必要 BlueZとは、 Linux/Androidで動作するBluetoothプロトコルスタック 参考記事 ► BlueZのAPI/サンプルコードのメモ ► https://qiita.com/ffmatsu/items/b7ca6a944b5a1ea9c7a6 ► Qiitaの紹介記事 ► APIの説明やフォルダ構成の説明が記載

Slide 16

Slide 16 text

RaspberryPiでBLEを始めるなら… その2(言語別) ► C/C++で始めるなら… Gobbledegook ► https://github.com/nettlep/gobbledegook ► BLE専用のBlueZのAPIのラッパーライブラリ ► 環境構築難しめ ► D-Busの知識が必要 ► Pythonで始めるなら…pybleno ► https://github.com/Adam-Langley/pybleno ► Node.jsで書かれたBLEライブラリ、blenoのラッパー ► 環境構築が簡単 ► Gobbledegookより、実行処理速度が遅め

Slide 17

Slide 17 text

おわり