2015/02/14


<藍色小鋪一起來做> 是個免費的研究聚會, 目前的聚會主題是 Bluetooth LE 的技術研究, 會用 TI 的 CC254x 開發板來做些有趣的計畫.

終於, 藍色小鋪聚會的第一個實作目標(用 iBeacon 控制開關的枱燈), 總算是達陣了. 這趟充滿愛與勇氣的冒險歷程, 共有六篇文章記錄, 有興趣了解的朋友請參考:


[1] 藍色小鋪一起來做, (1) 用 beacon 控制開關的枱燈 (Bluetooth, CC2540, iBeacon)
[2] 藍色小鋪一起來做, (2) 講解 BLE CC2540 UART 通訊範例程式 (Bluetooth, CC2540, UART)
[3] 藍色小鋪一起來做, (3) 藍牙枱燈専案實作 (上) (Bluetooth, CC2540)
[4] 藍色小鋪一起來做, (4) 藍牙枱燈専案實作 (下) (Bluetooth, CC2540)
[5] 藍色小鋪一起來做, (5) iBeacon scanner 專案示範與解說 (Bluetooth, CC2540, iBeacon)
與本篇文章
[6] 藍色小鋪一起來做, (6) 完成, 用 iBeacon 控制開關的枱燈 (Bluetooth, CC2540, iBeacon)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
前言說完, 來說說 2015/2/3 的聚會進度吧.

上週聚會已講解過 iBeacon scanner 專案程式碼. 今天的聚會主題很清楚, 就是要在 iBeacon scanner 加上枱燈開關控制的功能. 怎麼做呢?

(1) 從 SimpleBLEPeripheral_DeskLamp 專案, 找出枱燈開關控制的程式碼出來.

這邊得祭出 diff tool (Beyond Compare), 來比對 SimpleBLEPeripheral_DeskLamp 與 SimpleBLEPeripheral 的差異.



枱燈開關控制的程式碼, 主要有兩個部份:

一部份是作控制腳位初始化.


另一部份則是依 characteristic-1 的值做開/關控制.



(2) 把控制腳位初始化的程式碼, 搬到 iBeacon scanner 的 SimpleBLECentral_Init() 函式中.



(3) 在處理開/關控制的程式碼時, 有遇到 bug. 過程...省略, 最後是這樣做的 (感謝 Johnson 兄的提點):

在 simpleBLECentralEventCB() 函式中, 處 理 GAP_DEVICE_DISCOVERY_EVENT 事件時, 即已是找到 iBeacon 訊號了. 拿找到的第一個 iBeacon 訊號的 minor 值來作判斷. 
minor = 2 時, 開燈. 
minor != 2 時 (沒訊號, 或是別的 beacon 時), 關燈.




(4) 成果展 & 檢討

來看成果. 用 LED 來充當枱燈, iPhone 來當做 iBeacon 發訊器. 這實驗基本上是有達到目標的. 



只是 iBeacon scanner 並不是時時都在偵測 iBeacon 訊號的 (電耗考量..). 因此, 打開或關掉 iBeacon 訊號後, 通常都會有一點延遲, 枱燈開關才有反應.  

想像應用情境, 這盞 iBeacon 感應燈, 拿來招呼 VIP 客人應該蠻適合的. XD.

(5) 加碼

Johnson 兄好厲害, 聚會完回家就 3D 列印了個燈罩出來, 真的做成 iBeacon 感應燈了.






[萊恩大兵的其它文章]

自製大四軸

自製大四軸, 實作分享@華山文創園區
自製大四軸, (1) 零組件篇, 遙控器 (Drone, Quadcopter, Futaba, Maker, Arduino, Animatronic Eye)
自製大四軸, (2) 零組件篇, 飛控板 (Drone, Quadcopter, MultiWii, Arduino, Futaba, Maker)
自製大四軸, (3) 零組件篇, 自行雷切木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (4) 零組件篇, 馬達與電變調整 (Drone, Quadcopter, Maker, Electric Speed Control, Motor)
自製大四軸, (5) 組裝篇, 四軸飛行器成形 (Drone, Quadcopter, MultiWii, Arduino, Maker, Electric Speed Control, Motor)
自製大四軸, (6) 調整篇, 飛行前兩三事 (Drone, Quadcopter, Maker, Futaba, Arduino, MultiWii)
自製大四軸, (7) 充電篇, iMax B6 充電器操作記要 (Charger, Battery)
自製大四軸, (8) 問題篇, 機架損壞維修 (Drone, Quadcopter, Laser Cut)
自製大四軸, (9) 改良篇, 方便拆卸的木質機架 (Drone, Quadcopter, Maker, Laser Cut)
自製大四軸, (10) 外飛篇, 新手的青蛙跳與遛狗 (Drone, Quadcopter, Maker, MultiWii)

自動報球速的棒球


CC2540 Bluetooth Low Energy
筆記, CC2540 Bluetooth Low Energy, (1) 開發環境 架設 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (2) 跑第一個範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (3) SimpleBLEPeripheral 簡單介紹 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (4) 在智慧手機上執行範例程式 (Bluetooth, CC2540)
筆記, CC2540 Bluetooth Low Energy, (5) 偵測與發送 iBeacon 訊號 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 發訊器 x 防丟器 (Bluetooth, CC2540, iBeacon)
實作, iBeacon 尋寶遊戲 (Bluetooth, CC2540, iBeacon, iOS app)
實作, BLE + iOS app, 遙控燈泡君 (Bluetooth, CC2540, iOS app)
做實驗, 用 iBeacon 做自動控制的可行性 (Bluetooth, iBeacon, CC2540, Automation, URL Scheme, iOS app)

藍色小鋪一起來做

藍色小鋪一起來做, (1) 用 beacon 控制開關的枱燈
藍色小鋪一起來做, (2) 講解 BLE CC2540 UART 通訊範例程式 (Bluetooth, CC2540, UART)
藍色小鋪一起來做, (3) 藍牙枱燈專案實作 (上) (Bluetooth, CC2540)
藍色小鋪一起來做, (4) 藍牙枱燈專案實作 (下) (Bluetooth, CC2540)
藍色小鋪一起來做, (5) iBeacon scanner 專案示範與解說 (Bluetooth, CC2540, iBeacon)
藍色小鋪一起來做, (6) 完成, 用 iBeacon 控制開關的枱燈 (Bluetooth, CC2540, iBeacon)
藍色小鋪, 初嚐樹莓派 (Raspberry Pi)
藍色小鋪, iBeacon 應用, 自動記錄到訪時間 (iBeacon, Geohopper, Zapier)
藍色小鋪, 菲力普的 Docker 應用分享 (Docker)
藍色小鋪, PTT地震文團隊分享三連發, (1) Maker 的 IOT 遊樂場 (PTT, Hackathon, Python, Xively, Internet of Things)
藍色小鋪, PTT地震文團隊分享三連發, (2) mbed 新手分享 (mbed, MPU6050, Hackathon, Internet of Things)

小惡魔 無線溫度感測器

108 大眼仔
Plot Clock

體驗, 原住民互動故事書@宜蘭大同鄉泰雅生活館
體驗, 蛋生音互動裝置@兒童美術館 (Arduino, 3D Printing, HC-SR04, Interactive)


實作, 電容感應音樂樹

0 意見:

張貼留言