藍色小鋪一起來做, 用 beacon 控制開關的枱燈
-
Upload
gogoprivateryan -
Category
Technology
-
view
677 -
download
5
Transcript of 藍色小鋪一起來做, 用 beacon 控制開關的枱燈
Bluetooth LE | CC2540 | 萊恩大兵
想說要把這三個月 (Sep ~ Nov, 2014)
玩BLE的經驗
整理分享給大家
整理?
不就已經在寫部落格了嗎?
歡迎光臨萊恩大兵的部落格http://gogoprivateryan.blogspot.tw
好啦..
說來自己也是一知半解的..
再從頭來一次也好.
只是..
這次要大家一起..
從哪講起好呢?
先把蘿蔔吊出來好了..
我們來做一台
可以用 beacon做無線開關的藍牙4.0枱燈
動手之前..
先來補一點 Bluetooth LE 的觀念
藍牙裝置的兩種角色 1
- Client vs Server
● Server 提供資料, Client 索取資料● 一個裝置可同時扮演 Client 與 Server
藍牙裝置的兩種角色 2
- Slave vs Master
● Slave 只能專於一個 Master, Master 則可以連接多個 Slave
● Master 主動建立連線, Slave 被動回應連線請求
四種應用分類 1
- Broadcaster
● 只發送數據, 不能被連線的裝置.
例如: 溫度感測器, iBeacon 發訊器..
四種應用分類 2
- Observer
● 會接收數據, 但不會啟動連線的裝置.
例如: 溫度顯示面板..
四種應用分類 3
- Peripheral
● 會發送數據, 也能做為 slave 被連線的裝置. 例如: 智慧手錶..
● Peripheral 對比 client-server 的關係, 則會是 server 的角色
四種應用分類 4
- Central
● 能接收數據, 也能做為 master 來啟動連線的裝置. 例如: 智慧手機..
● Central 對比 client-server 的關係, 會是client 的角色
其實不只四種應用, 還可以合體- Peripheral + Broadcaster
- Peripheral + Observer
- Central + Broadcaster
- ...
那 beacon 無線開關藍牙4.0枱燈算哪一種?
- 偵測 beacon 訊號 -> Observer
- 建立連線與枱燈開關控制 -> Peripheral
藍牙裝置的服務- Profile 是 SIG 預先定義好的功能規範,
例如: Heart Rate, HID, 防丟器, ...
- 一個 Profile 內含 1 或數個 Service
- 一個 Service 內含 1 或數個 Characteristic
還聽得懂嗎?
來看個實際例子會比較有感覺.
介紹個好工具~ LightBlue (iOS app)
- 它可以把藍牙裝置的一切挖出來
用 LightBlue 連接上 RealTag sensor tag
到這邊
有沒有覺得好像懂一點 BLE了吧..
得來硬的了拿出你的 CC2540 開發板..
然後
安裝好 IAR 開發環境..
有空的話可以多跑一些 OSAL 範例程式來熟悉 CC2540 的程式控制
枱燈的開關控制- 以 SimpleBLEPeripheral 專案為基礎- SimpleBLEPeripheral_Init() -> 設定枱燈腳位線路
枱燈的開關控制- SimpleBLEPeripheral_ProcessOSALMsg() ->
將枱燈腳位初始化- simpleProfileChangeCB() -> 處理開關燈命令
偵測 beacon 訊號- 從 SimpleBLEObserver 專案搬出偵測
beacon 訊號的程式碼- simpleBLECentralEventCB() -> 掃描
beacon 廣播訊號