文章總列表

假日藍芽工程師, 架設環境

因為運動的關係,我迷上用藍芽4.0低功率規格(BLE)。

我把小米手機刷了Android 4.4好支援這個規格,還買了藍芽心跳帶。我發現這個心跳帶剛開始都不準,想知道藍芽是怎麼回事。研究的平台選用最近買的玩具,Raspberry Pi (RPi),究竟這東西是有趣又好玩還是折磨自己,等等就知道了...


----


環境架設

Linux的藍芽堆疊棧是bluez,這是Qualcomm贊助的一個計畫,還是官方的Linux Kernel driver。不過有趣的是,Google和Broadcom合作的Bluedroid從Android 4.2開始取代了bluez。假日工程師選擇成熟的方案,bluez。

Raspbian內建的bluez在2014/9/28依然很舊,所以網路文章建議到官網抓新版的bluez。我抓的是5.23板,雖然RPi能跑gcc讓我驚豔,不過拿它來編譯程式,那個速度終究是原形畢露了(笑)。不管怎樣,我還是把bluez裝好,而且愉快的把環境準備好,準備開始做實驗。

Command list of get bluez
    mkdir blue
    cd blue
    wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.23.tar.xz
    xz -d bluez-5.23.tar.xz
    tar xvf bluez-5.23.tar

Command list of compile & install bluez
    cd bluez-5.2.3
    ./configure --disable-systemd
    make
    make install

Install gatttool to the system
    cp bluez-5.23/attrib/gatttool /usr/local/bin/


----


火力展示

經過一番折騰,終於把環境架起來了。下面的圖片顯示,已經有一個藍芽介面起來,上面還收發了不少資料。然後我讓試著搜尋手上的藍芽心跳表,真的有找到mac address耶~


bluez附贈一個sniffer(監聽器),可以偷看資料封包。執行畫面裡,0x180d是心跳帶,傳輸功率確實很低,RSSI只有-71,表示就算掛一整天心臟應該不會燒壞。


果然玩起來有夠折騰... 心跳都還出不來...


----


看到這個會很爽,到底是不是好事呢...


預告...

  1. 用gatttool和心跳帶打交道
  2. 解析藍芽低功率版怎麼和host溝通
  3. 第一次當藍芽工程師就上手
  4. 要顯示心跳? 我還不知道怎麼做...



留言

這個網誌中的熱門文章

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

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

CANON G3000 廢墨瓶改裝