這次代表公司參加 Ubuntu 黑客松的活動
主要是 Ubuntu 要推廣新的 IoT OS: Ubuntu Core
支援 x86, ARM(ex: Raspberry Pi)
運氣不錯,利用 “天台聚落” 這個 idea, 得到了一等獎
有趣的是,一等獎的獎品是自家 NAS…
所以,就捐出去了 XD
謎之學弟:你好像很適合比賽….XD
也很開心,台大創創這次的競賽,”天台聚落” 獲得下一階段的入圍.
今天要來介紹 Punch Through 所推出的 LightBlue Bluetooth BLE 方案的 start kit,目前推出的兩種裝置,都是透過 BLE 方式進行連結。
Bean 和 Bean+ (土豆和土豆進化版?)都是透過募資平台,然後經過一連串的研發、製作、測試,最後量產的產品,基本上去年年底下單到出貨,大概也歷經半年之久。
Bean 與 Bean+ 最大的差別,應該就是支持的 I/O 以及加入了 Grove 接口,並且從原本 Bean 使用的不能充電的鈕扣電池,改為可充電式鋰電池。另外最大的差別,我想就是 Bean 之前並沒有提供快速接口,甚至要使用還必需先準備烙鐵,把需要用的節點先焊上才可以使用。
軟體方面,Bean 系列都可以透過任何平台來進行開發,甚至還可以透過手機進行程式的修改,可以說非常的方便使用。至於 Bluetooth 最重要的 profile 竟然還支援多種類型,包含:
讓我們開始整合 Bean/Bean+ 到 NAS 吧!
在開始與 Bean/Bean+ 進行連線之前,需要先準備 BLE USB 裝置,在這邊我使用的是 SENSE 推出的 BLE 裝置,記得一定要有支援 BLE (Bluetooth LE) 功能的喔!
如果要確定是否有安裝成功,可以透過 SSH 進到 NAS,利用 lsusb 將目前的 USB 裝置列出,目前我使用的是 “Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)”
確認 USB 正確安裝成功後,接著安裝 Bean + Node-Red 的 docker image,此連結的 image 主要是已經將所需要的 Bean SDK 和 Node-Red 怖署完成的版本(連結包含相關教學)。
在這邊需要特別注意的是,無法直接透過 Container Station 的管理頁面進行 image 的佈署,要直接透過下面的指令去產生 image,最主要是要將 USB 相關裝置的資訊 pass-through 到 image 裡使用。
建立完成後的 image,可以透過 http://your-nas-ip:1880 開啟 Node-Red,並且可以看到已經預設安裝好的 LightBlue Bean Node-Red 模組。從下面的 node 模組可以發現,Bean/Bean+ 預設是支援溫度、三軸以及 RGB LED 感測器的功能,下面會一一介紹。
除了已經安裝好的相關模組外,為了快速取得目前手上的 Bean/Bean+ 裝置相關的 UUID,可以透過 http://your-nas-ip:1880/bleScan/ 已經透過 Node-Red 建立好的 BLE Scan API 取得現有的裝置資訊。
呼叫此 API 後,需要等待約 30s 的時間,如果 USB BLE 與 Bean/Bean+ 有正確開啟,基本上會取得 Bean/Bean+ 相關裝置的資訊(此 API 並不會列出非 Bean/Bean+ 裝置)。
取得 Bean/Bean+ 裝置的 UUID 後,我們要開始來設定 Bean node。下圖是新增 Bean node 的頁面,UUID 部份就是剛剛透過 BLE API 取得的資訊; Connection部份有兩種模式:
為什麼要分兩種連線方式呢?
主要是 BLE 雖然省電,畢竟並不是每一種狀況都需要讓 startkit 都在工作模式下,透過此方式也可以讓 Bean/Bean+ 更省電喔!
下圖是直接使用 Node-Red 拉好的 flow,可以快速的取得 Bean/Bean+ 裝置內建的溫度感測器資訊。
換試另一個三軸感測器的 node,可以馬上取得資訊。
如果想要改變 Bean/Bean+ 裝置上 RGB LED 的顏色,直接將 inject node 改送 red string 即可以改變狀置的 RGB LED 顏色。支援的格式有:
是不是覺得 NAS 整合 start kit 很方便啊!未來會分享更多 Bean/Bean+ 相關裝置的應用,像是: