文章總列表

假日嵌入式藍芽開發工程師:nRF51822 (2)

Introduction

這篇文章想介紹怎麼建構土炮研究BLE環境,包括我的2014/2016環境。在真的拿MCU寫BLE FW之前,先找個BLE裝置玩一下人家的產品比較有趣。


BLE Development Tool, 2014

我和BLE結緣是因為一邊跑步想一邊觀測心跳,所以我買了藍芽心跳帶。那時我的小米2s還停在Android 4.1.1,根本不支援BLE。我刷上了Ivan秋葉隨風提供的AOSP Android 4.4,然後就抓得到心跳錶了!

我買的心跳帶是雙揚i-GotU HRM-10,我懷疑他感應的是我的步伐而不是心跳,也常常抓不到,整個就很爛。最初懷疑是手機BLE收不好,我想透過Raspberry Pi和心跳帶打交道看看,畢竟Android/ Raspberry Pi都是基於Linux。我插上藍芽Dongle,編譯bluez,使用附贈的gatt-tool研究BLE原理。因為心跳帶很爛,研究做得很辛苦,BLE link經常斷線。但是從tool終究是看到心跳值,成就感滿點。

透過gatt-tool繼續探索BLE,在bluetooth的網站到處查那堆UUID,還真的給我參透了!我寫了兩篇文章講ATT/GATT,這兩篇點閱率滿高的,表示應該很多人都想研究BLE。如果我想賺100USD廣告費,多寫一點就對了(笑)。 後來我也成功在Android上寫程式讀到心跳。


BLE Development Tool, 2016

我還是推薦透過心跳帶研究BLE,平常運動可用,不研究也不會浪費。我推薦名世電子的Echowell DMH-30,他是BLE/ANT+雙介面,可以同時連到我的Garmin碼表(ANT+)和手機(BLE)。這間公司的產品和服務都很到位,比上面那間雙揚好多了。

2014年在Raspberry Pi開發BLE的方法還可以用,只是不大舒服,事實上我寫完文章就沒再去玩gatt-tool了。我改用Nordic Semiconductor的nRF Connect,可以直接在Android/ iPhone上和BLE裝置打交道。2016年的手機應該都有支援BLE,抓回來就能對BLE device開腸剖肚了。




nRF Connect簡介

接下來簡單介紹nRF Connect怎麼用,裡面有些BLE protocol可以參考上面2014兩篇ATT/GATT。使用Tool爽度一流,就算不看protocol大概都猜得出來。我建議先操作讀得到心跳以後,再啃一下ATT/GATT protocol。

  1. 先啟動手機的藍芽介面,現在手機low-power都做得不錯,我的藍芽都開著,耗電幾乎沒增加多少。把心跳帶裝好(或著其他BLE裝置,先上電)
  2. 啟動nRF Connect,裡面已經找到心跳帶,裡面還會顯示信號強度和broadcast interval。不要客氣,點下CONNECT吧
  3. 連線上去後,就可以看到BLE device提供的所有service。Profile of BLE Heart Rate規定要提供Heart Rate/ Device Information兩個service。另外裝置也提供了Battery Service可以參考。點下Heart Rate來讀心跳吧。
  4. Heart Rate service裡面有兩個characteristic,其中一個有CCC (Client Characteristic Configuration),點選下左圖紅框裡的橘框就能啟動BLE notification。然後心跳帶就會持續送出心跳讀數給手機了。下右圖是心跳測量結果顯示在tool上。


留言

這個網誌中的熱門文章

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

幼犬書桌椅選擇心得 升降桌 兒童桌椅

CANON G3000 廢墨瓶改裝