藍色小鋪一起來做, 用 beacon 控制開關的枱燈

28
Bluetooth LE | CC2540 | 萊恩大兵

Upload: gogoprivateryan

Post on 18-Jul-2015

675 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

Bluetooth LE | CC2540 | 萊恩大兵

Page 2: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

想說要把這三個月 (Sep ~ Nov, 2014)

玩BLE的經驗

整理分享給大家

Page 3: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

整理?

不就已經在寫部落格了嗎?

歡迎光臨萊恩大兵的部落格http://gogoprivateryan.blogspot.tw

Page 4: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

好啦..

說來自己也是一知半解的..

Page 5: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

再從頭來一次也好.

只是..

這次要大家一起..

Page 6: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

從哪講起好呢?

Page 7: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

先把蘿蔔吊出來好了..

Page 8: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

我們來做一台

可以用 beacon做無線開關的藍牙4.0枱燈

Page 9: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

動手之前..

先來補一點 Bluetooth LE 的觀念

Page 10: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

藍牙裝置的兩種角色 1

- Client vs Server

● Server 提供資料, Client 索取資料● 一個裝置可同時扮演 Client 與 Server

Page 11: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

藍牙裝置的兩種角色 2

- Slave vs Master

● Slave 只能專於一個 Master, Master 則可以連接多個 Slave

● Master 主動建立連線, Slave 被動回應連線請求

Page 12: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

四種應用分類 1

- Broadcaster

● 只發送數據, 不能被連線的裝置.

例如: 溫度感測器, iBeacon 發訊器..

Page 13: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

四種應用分類 2

- Observer

● 會接收數據, 但不會啟動連線的裝置.

例如: 溫度顯示面板..

Page 14: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

四種應用分類 3

- Peripheral

● 會發送數據, 也能做為 slave 被連線的裝置. 例如: 智慧手錶..

● Peripheral 對比 client-server 的關係, 則會是 server 的角色

Page 15: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

四種應用分類 4

- Central

● 能接收數據, 也能做為 master 來啟動連線的裝置. 例如: 智慧手機..

● Central 對比 client-server 的關係, 會是client 的角色

Page 16: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

其實不只四種應用, 還可以合體- Peripheral + Broadcaster

- Peripheral + Observer

- Central + Broadcaster

- ...

Page 17: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

那 beacon 無線開關藍牙4.0枱燈算哪一種?

- 偵測 beacon 訊號 -> Observer

- 建立連線與枱燈開關控制 -> Peripheral

Page 18: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

藍牙裝置的服務- Profile 是 SIG 預先定義好的功能規範,

例如: Heart Rate, HID, 防丟器, ...

- 一個 Profile 內含 1 或數個 Service

- 一個 Service 內含 1 或數個 Characteristic

Page 19: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

還聽得懂嗎?

來看個實際例子會比較有感覺.

Page 20: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

介紹個好工具~ LightBlue (iOS app)

- 它可以把藍牙裝置的一切挖出來

Page 21: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

用 LightBlue 連接上 RealTag sensor tag

Page 22: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

到這邊

有沒有覺得好像懂一點 BLE了吧..

Page 23: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

得來硬的了拿出你的 CC2540 開發板..

Page 24: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

然後

安裝好 IAR 開發環境..

Page 25: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

有空的話可以多跑一些 OSAL 範例程式來熟悉 CC2540 的程式控制

Page 26: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

枱燈的開關控制- 以 SimpleBLEPeripheral 專案為基礎- SimpleBLEPeripheral_Init() -> 設定枱燈腳位線路

Page 27: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

枱燈的開關控制- SimpleBLEPeripheral_ProcessOSALMsg() ->

將枱燈腳位初始化- simpleProfileChangeCB() -> 處理開關燈命令

Page 28: 藍色小鋪一起來做, 用 beacon 控制開關的枱燈

偵測 beacon 訊號- 從 SimpleBLEObserver 專案搬出偵測

beacon 訊號的程式碼- simpleBLECentralEventCB() -> 掃描

beacon 廣播訊號