Arduino + 藍芽 BLE 模組

        物聯網一詞是今年相當熱門的話題之一,靠著萬物皆可連的概念讓未來的生活多出很多的想像空間。2015年初,金屬中心智慧系統組提出一個手持裝置偵測器的想法,首先浮出腦海的方式就是採用藍芽與手機連通。自從一兩年前開始,手機的藍芽規格逐漸發展並升級到4.0,加上有了低功耗的連接模式,資料擷取的應用便越來越多,比如家庭或工業上的監控訊號擷取,醫療量測的資料擷取...等。

        為了開發設計出手持裝置偵測器,我們從網路上找到 HC-08 藍芽 4.0 模組,它讓使用者能比較快速進入藍芽通訊的領域,透過串列端口控制這塊模組的各項參數,縮短的開發時程。雖然藍芽模組縮短我們進入的門檻,但模組的擴充性卻有所限制,因此需要從外部搭配 MCU 晶片來整合全系統。不過,初步來看這樣的設計還不夠完美,卻也能達到基本的要求。下面的圖示就是以 Arduino Pro Mini 為控制核心,再加上藍芽模組所組成的系統。

圖一:Arduino Pro Mini + HC08 BLE 4.0 模組

        設計一個手持裝置遇到最大的麻煩就是耗電,要解決這個問題,以目前的電路設計而言,分成運算時脈和系統的工作電壓兩點。以同等級的 MCU 來說,時脈變慢的話通常耗電量會降低 (雖然運算速度也變慢),假設裝置的運算量不複雜的話,倒是可以盡量讓輸入 MCU 的時脈變慢。通常市面上的 Arduino 板子都是 16MHz,不過用這個概念,我們找到 Arduion Pro Mini 8MHz 3.3V 的開發板。另外,要減少耗電量還可以考慮降低系統的電壓,選用的元件也盡量以低電壓為主,這樣整體耗電會比較低。

        此外,在解決耗電問題上,可從 Arduino 韌體設計考慮,當藍芽未連接的情況下,讓 Arduino 進入 power down 模式,這樣可以達到省電的效果。而這塊藍芽模組也有四種操作模式可以設定,只要進入休眠情況,整體系統的耗電都能改善不少。底下是實驗的數據

<全速情況>
         Arduino Pro Mini 耗電流大約 6 ~ 7 mA
         HC-08 Bluetooth 4.0 耗電流大約 10 mA

        底下影片是操作的過程。我們實際操作時,在藍芽未連接,系統總耗電流小於 2 mA。在藍芽連接後,兩塊模組都已全速運作,總耗電流約 17 mA。另外,藍芽模組也可以調整發射功率大小,如果應用面在於短距離,倒是可以將發射功率降低到欲操作的距離。

        最後一點,如果開發的時程充裕的話,應該直接使用德州儀器的 cc2540 藍芽晶片開發,這樣可節省一顆外部 MCU 的耗電,系統的零件費用也能降低。



影片:系統操作的過程

留言

  1. 想詢問~~HC-08的設定是和HC-05一樣嗎?供電是3.3V或5V嗎?我已嘗試,卻無法連線設定AT><

    回覆刪除
    回覆
    1. 我沒有試過HC-05,需要研讀製造商的文件說明。AT 指令的最後不需要加 "換行"...等多餘的字元 (不用回車與換行),通常 UART 通訊設定好之後,傳送 "AT" 後,藍芽模組就會回應了。
      電源的部分,模組只需要 3.3V,不過市面上有的藍芽模組上有5V 轉 3.3.V 電路,這時就要輸入5V。

      刪除
  2. 你好 想請問你 如何讓hc08在arduino上進入at模式 另外 程式碼是跟多數網路上找到的一樣嗎?
    不好意思 因為電腦藍芽收尋不到 可是手機app可以 想說是否哪裡出錯

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除
  4. 老師您好,日前購入HC-08藍芽模組,打算搭配Pro mini 使用。

    首先利用Uno進入ATmode 更改baud rate 為57600,在更改完之後發現電腦找不到該藍芽裝置。

    但是手機app(lightblue iOS)可以找得到該裝置,而我的mac 卻無法找到該裝置,想請問該問題可能是在哪個環節出錯?

    回覆刪除
    回覆
    1. 如果你懷疑是更改baud rate造成的,那將它改回原本的預設值,再試試看。
      另外,把手機APP的該裝置徹底移除,再重新尋找一次,看能否再次找到。(有可能手機原本就記錄著舊資訊)

      刪除
    2. 老師您好,我使用全新的一片,拆封後僅供電,如此還是搜尋不到該裝置

      刪除
    3. 藍芽BLE裝置,檢查看看 MAC 有沒有支援。舊款手機也不見得能支援 BLE

      刪除
  5. 您好:
    目前也正在使用HC-08藍芽模組,但是現在出現一個問題,現階段兩利用兩塊HC-08模組進行Slave & Master的連線配對傳輸,但是在Master端發現沒有關於連線Slave的AT Command可以使用,想請教一下關於Master連接Slave的方法,跪求指點!!感謝!!

    回覆刪除
  6. 我接通後, 在Android手機上看到HC08的網置, 可是連接他的一直卡在Pairing的步驟, HC08藍芽模組上的紅燈也一直亮起, 然後等一會, 手機上的Pairing就停止了, 回到未連接的狀態, 藍芽也是回到緩慢亮-->關-->亮-->關的迴圈...

    請問是不是錯了甚麼...

    回覆刪除
    回覆
    1. *在Android手機上看到HC08的裝置

      刪除
  7. 您好請問一下,我用arduino做了4台機器車,想用藍牙BLE讓4台車互相溝通可以辦到嗎?

    回覆刪除
  8. 如果讓藍芽4.0只接正負有辦法接收以及發射訊號嗎?

    回覆刪除

張貼留言

這個網誌中的熱門文章

Android APP 藍芽範例說明 -- BluetoothChat

Android APP BLE範例程式 -- BluetoothLeGatt

三軸重力加速計 Accelerometer