2014/11/09




(感謝鋼鐵人實作聯盟阿立的帶領.)

萊恩大兵參加 BLE 研究會, 最開始的期待, 大抵就是能對 CC2540 和 BLE 4.0 技術有些認識就夠了. 可是.. 瑞凡 BLE 這東西得搭配一個使用介面, 整個的呈現才比較實際. 既然頭都洗下去了, 那只好再加碼去學 iOS 程式開發了. 這條路走到這邊, 風景已經大大超出萊恩大兵的預想了. 


萊恩大兵摸索 BLE 和 iOS 程式開發的歷程, 可參考這幾篇文章的分享.
上次的 iBeacon 發訊器, 只是單純的接收藍牙廣播封包而已. 這回, 萊恩大兵設定的目標, 是要連上某個裝置, 再下指令來操控它.

從阿立那邊拿到一組 LED 燈板, 剛好無錫谷雨那邊也有個藍牙枱燈 (SimpleBLEPeripheral_DeskLamp) 的示範. 就用它們來做個遙控電燈開關好了.

需要的硬體裝置有:

* CC2540 開發板


得燒錄 SimpleBLEPeripheral_DeskLamp 的軔體

* LED 燈板



說明一下: 

CC2540 得燒錄上無錫谷雨藍牙枱燈專案 (SimpleBLEPeripheral_DeskLamp) 的軔體, 這隻程式 (藍牙枱燈) 會對 P0.7 GPIO 針腳送出 0 或 1 的訊號. 

CC2540 和 LED 燈板的連接方式如下:
3.3V (CC2540 ) <-> 電源針腳 (LED 燈板)
P0.7 (CC2540) <-> LED 針腳 (LED 燈板)




iOS app 的名字叫做 遙控燈泡君.


AppIcon

Launch Image

這隻 app 開啟後, 會自動搜尋附近四周的藍牙裝置, 並和它建立連線. 再透過 (Service = "FFF0"Characteristic="FFF1") 介面去控制 LED 的亮滅. 很簡單的一個功能.

萊恩大兵擔心它的畫面太樸素不好看, 花了一些工夫, 把它包裝得好看一點. 看圖就大概可以了解它的操作流程.





關於這隻 app, 有兩個特點要說.

(1) 它和藍牙裝置連線後, 或是送出開燈/關燈指令後, 會先去查詢 characteristic 值狀態 (亮/滅), 再依 characteristic 值來顯示正確的圖檔 (燈泡亮/燈泡滅). 並不是盲目的變更 app 端的圖檔, 這有比一般的紅外線遙控器厲害一點. 

(2) 它的程式碼就是 iOS 的 Core Bluetooth framework 裡, 很基本的 BLE Central Manager 連線實作. 這邊萊恩大兵就列幾個 keyword 供有興趣的朋友 google-ing.
centralManagerDidUpdateState
- didDiscoverPeripheral
- didFailToConnectPeripheral
- cancelPeripheralConnection
- didConnectPeripheral
- didDiscoverServices
- didDiscoverCharacteristicsForService
- didUpdateValueForCharacteristic
- didUpdateNotificationStateForCharacteristic
- didDisconnectPeripheral

詳細程式開發細節, 可參考這幾篇文章.
iOS 7 SDK: Core Bluetooth - Practical Lesson
Performing Common Central Role Tasks

這隻程式的程式碼已放上 Github (https://github.com/GoGoPrivateRyan/CBRemoteController), 請自行取用.

最後說一點想法.. 萊恩大兵個人觀點, 這整個 (iOS app, CC2540 開發板, LED 燈板) 的整合, 看起來很炫. 其實只是很直觀的無線搖控應用而已. 還沒摸到雲端或物聯網. 以後有機會, 萊恩大兵會再嚐試加入雲端或物聯網的成份進來.



[萊恩大兵的其它文章]

自製大四軸

自製大四軸, 實作分享@華山文創園區
自製大四軸, (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)
藍色小鋪, 空中提升軌道車, 作品進化分享 (Pneumatic Tube System, Force of Friction, Mini 4 WD)
藍色小鋪, 數字管時鐘, 作品進化分享 (Nixie Tube, VFD)

OpenCV 學習路徑

記錄, OpenCV 學習路徑, (1) 環境安裝與第一個範例 (OpenCV, Python)

小惡魔 無線溫度感測器

108 大眼仔
Plot Clock

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


實作, 電容感應音樂樹

3 意見:

張貼留言