2017年10月28日 星期六

聊聊天之 如何降低裝 App Effort 來使用 Beacon 服務

很久沒有寫 Beacon 相關文章, Beacon 這東西轉眼也已經 3-4 年歷史了, 結果老實說台灣還是沒有真得起來, 這幾年陸續有一些服務出現, 連便利商店也導入過, 但最後發現都沒有太多成效, 而胎死腹中

那去檢視失敗的原因, 有很多, 但我自己覺得, 最主還是 "綁 App" 這一個限制是最大的原因之一, 而此服務對使用者的吸引力不夠則是另一個主因, 但兩個是有關連的, 假設誘因很大, 使用者就會願意花時間下載安裝一個 App, 進而讓服務可以達成, 但因為大部分的誘因都不大, 導致讓人多裝一個 App 興趣缺缺, 服務也就因此沒達到效果

針對這個問題, 解決的方法有幾個

  • Beacon 由 App Level 開放到 OS Level, 也就是不用裝 App, 系統背景就會抓 Beacon 然後抓到就自己出現對應的功能, 類似 Android NFC 功能這樣, 系統設定打開後, 遇到 NFC Sense 就會自己有動作, 例如跳網頁
    • 目前還沒有 OS Level 的 Beacon 服務, 但因為 OS 廠商, Apple 有出 iBeacon, 而 Google 有出 EddyStone, 因此 Beacon 跟 NFC 一樣納入 OS Level 的機會也不是沒有的, 但目前沒有
    • 最大的問題我覺得還是因為距離, BLE 畢竟還是可以有個 10m-100m 距離, 不像 NFC 必須要很近的碰觸才會有 Event, 假如這一路真的搬到 OS Level, 應該會超級煩的, 我想這是目前未開放的主因
  • 由 "很多人裝的 App" 來驅動這個 Beacon 服務, 簡單來說就是因為大部分人都裝了此 App, 又假如此 App 有提供 Beacon 服務, 那就是用他的服務及 API 來開發你想要的 Beacon 服務 (當然可能就會被收錢)
    • Line Beacon [link] 就是一個例子, 當你經過 Beacon 附近, Line 會跳出來要你加入好友拿一些優惠
    • Facebook Beacon [link] 也是一個例子, 當你經過 Beacon 附近, 就會出現 Facebook Event
    • 目前我在台灣還沒看過這兩種服務, 在日本我是去 Uniqulo 有遇到 Line Beacon 的通知並加入好友
  • 將你的 App 改寫成 Web App, 這其實是上面那一點的延伸, 因為 Chrome 屬於 "多數人都有裝的 App", 所以假如今天 Beacon App 改成用 Chrome 開一個網址就可以運行, 那至少就少了一個安裝 App 的煩人的動作, 而假如想要連註冊的煩人動作都省下, 那就是把 FB or Google 之類的社群軟體登入給導入, 那大多數人有帳號就可以登入, 不用註冊
    • 目前我覺得這是 "自己做 App 要弄 Beacon" 比較好解法
    • 缺點是沒裝 Chrome 的還是得裝 Chrome
    • 至於如何導入 Web App URL, 可以考慮用 NFC or QR Code 的方式
    • 相關技術可參考: https://webbluetoothcg.github.io/web-bluetooth/

------------------------------------------------------
Copyright by Jackal Chen @ 2017
jackalchen737@gmail.com

2017年10月25日 星期三

Bluetooth SIG Developer Kit 簡介 - Bluetooth Developer Studio

Bluetooth SIG 有出一些工具, 叫作 developer kits, 整理如下網址

https://www.bluetooth.com/develop-with-bluetooth/developer-resources-tools/developer-kits

那本篇要介紹的是最後的那個 Developer Studio 讓你快速的建議 Custom Profile

基本上他就是一個托拉或填格子就可以完成設計 BLE Profile (Services, Characteristics) 功能的軟體, 假如你是用 SIG 已經訂好的, 那值接拖拉就好連填都不用, 然後等設計完後, 配合不同的 plug-in 他可以產生出例如針對某些 BLE IC Solution 的原始碼, 或是 HTML 的文件等等

https://www.bluetooth.com/develop-with-bluetooth/developer-resources-tools/developer-kits/bluetooth-developer-plugins

軟體介面如下, 就很簡單, 左邊是你的 Profile, 右邊是現成可以用的, 你也可以選 Custom Profile 自己填跟命名自己要的, 下面這是我隨便啦幾個現成的組出來的, 這個叫作 My Profile 的 Profile 下面有 Alert Notification / Device Information / Heart Rate 三個 Services, 而這些 Services 下面又有他們的 Characteristics, 裡面的設定也非常的完整





































等都設定好後, 接下來就是要做 Tool => Generate Code 來把這個 Profile 設計轉成真的可以拿來用的檔案, 那剛剛上面的網頁有列出了所有現在可以使用的 Plug-in, 有的是 IC 廠商如 TI / Silicon Labs 自行開發的 Plug-in, 可以把這個 Profile 轉換成為他們的開發工具可以吃的 XML 以及 .C 等原始碼檔案, 匯入就可以修改使用, 而有的則是產生如 HTML 的視覺呈現檔案, 可以用來做討論使用, 想要增加 Plug-in 的話就是下載後丟到 Plug-in 資料夾就可以, 如下圖是我現有已經放進去的 Plug-in

有了 Plug-in 後去做 Generate Code 就會問你要使用哪一個來產生, 舉個例子假如我選用 HTML 的話, 他就會產生出 HTML 檔案, 這邊的 Level 1/2/3 就是深度, 選擇 1 可能就只是把 UUID 列一列 (如下圖), 選擇 3 可能還會把所有的 Properties 等都列出來, 看需求, 幾如只想看文字檔的話可以選 Enumerate All 出來就是文字檔案






那假如是要產生原始碼呢? 以 Silicon Labs 來說, 他有出一個教學, 可以參考, 先用 Studio 把 Profile 建立後, 就可以產生出他們可以接受的原始碼

https://www.silabs.com/documents/login/quick-start-guides/qsg126-btds.pdf














下圖是隨便一個 .C 檔案的隨便一段 Code, 基本上因為 BLE 的模式滿固定的, 不同的 access 方式其實就是會有固定的 Code, 因此可以產生出 Code Template, 當然後續還是得依照應用需求再加 Code 上去, 但其實省了滿多力氣的, 所以說這工具真的滿推薦的, 不過偶爾好像也會產生出怪的 Code 或是編譯不過的, 所以還是要看一下產生的 Code Template 有沒有問題
















------------------------------------------------------
Copyright by Jackal Chen @ 2017
jackalchen737@gmail.com



2017年9月30日 星期六

聊聊天之 智慧家庭使用半年心得

最近超忙, 完全沒 fu 寫 Blog, 所以空了大概一個月有了吧, 而且欠的文章越來越多 (一堆後續寫一半沒寫完的), 終於能理解漫畫家拖稿的心情了 (誤

Anyway 聊聊天系列比較沒壓力可以隨便講, 大約今年初, 就在家裡陸續佈建了小米智能家庭, 基本上我全部都有買有用, 細節可以參考

https://lelifetw.blogspot.tw/2017/02/1.html

使用心得不多就是了, 簡單來說他有很多功能, 例如門窗跟人經過的 sensor 可以觸發一些事件 (但我就放廁所門口, 上廁所會自己開燈這樣...), 另外就是有按鈕以及魔方, 可以拿來當遙控器使用, 例如開關空氣機, 開關燈, 開關智慧插座等等

另外也有買了紅外線轉接盒, 例如電視或是冷氣, 他們是用紅外線開關的, 透過這個紅外線轉網路的 Gateway, 就可以達到按按鈕開關冷氣的效果, 或是廣告那樣, 你回家前先幫你開冷氣之類的沒啥用的功能都可以做到

基本上是真的滿炫的, 我大概做了幾種設定


  1. 床頭黏一個 Button, 長按開關大一點的燈, 短按開關小一點的燈
  2. 人物偵測放在廁所, 經過開燈, 五分鐘自己關掉
  3. 電蚊香半夜 0-6 自動開啟殺蚊子
  4. 空氣機定時開關, 魔方可控制開關
  5. 掃地機器人定時開關, 魔方可控制開關
  6. 魔方開關電視
  7. 魔方開關 CD Player
印象中大概這樣吧, 其中也玩了一些功能但後來覺得有點煩就拿掉了, 那直接講重點, 半年心得, 只要需要手機控制的功能, 前 1-2 個月會用, 後來幾乎不用了, 也就是我好幾個月沒開過小米智能 App 了 (設定之後就都不管了)

留下來的全部都是不用 App 可以控制的功能, 我覺得這是一個滿大重要的點, 就是真正的智能家庭, 是不需要 App 介入的, 這樣才直覺, 以往電池我們控制, 就不用 App 只是手去按操控的面板, 反應速度也很快, 按下去馬上反應, 現在導入 App, 優點是不用跑到電器旁邊按, 但缺點是光操作那個 App 就要花不少時間, 且大部分電器使用, 本來就要走到旁邊 (我微波東西結果不走過去微波爐旁邊這樣不是搞笑...), 所以改成 App 除了噱頭真的沒其他優點了

這跟有一派智能家庭主張的不同, 有一派主張因為人手一機, 所以用手機當做智能家庭媒介很直覺, 因而挑選手機支援的方式或介面 (例如用 Bluetooth & WiFi) 來做控制, 而且把控制的 Client 定義成手機 App, 結果或許這只是一個智能家庭的暫態而已, 最終型態是不用開手機開 App, 就拿開燈來說, 聰明一點的自己幫你開燈, 笨一點的至少我按一下就可以開燈 (跟現在家裡我開燈方式一樣), 假如還要我拿出手機, 按按指紋, 開開 App, 在去開燈, 來回花個 20-30 秒, 這完全不合理啊!!!

總之小米智能家庭使用半年心得就是, 我有在享受他帶來的便利性, 但我完全沒用到手機了, 這也是跟我所預期的智能家庭發展方向類似, 下面是去年底我去中正大學演講的時候, 投影片其中一部分的內容, 講到智能裝置的幾個發展階段, 基本上就跟我的心得是一樣的, 最終還是得靠裝置之間自己溝通來優化人類的生活













































最後, 順便提一下, 一堆置能設定後, 我最常用到的功能是用智能按鈕開關燈... 也就是一個傳統到不行的功能, 這也真的是滿有趣又充滿啟發的一個結果...


------------------------------------------------------
Copyright by Jackal Chen @ 2017
jackalchen737@gmail.com