2019年6月29日 星期六

MicroPython on ESP32 尚未支援藍芽

這幾天在玩 ESP32 板子, 覺得雖然比 ESP8266 模組貴 2.5 倍, 但接腳與功能都比較豐富, 計算能力也強很多, 特別是比 ESP8266 多了藍芽, 一個藍芽模組少說也要 120 元, 所以用 ESP32 較划算. 當然如果專案較簡單, 用不到藍芽, 其實 D1 mini 就可以了.

今天想說就來試試 MicroPython on ESP32 的藍芽功能, 但是引入 bluetooth 模組卻出現無此模組錯誤訊息 :

>>> import bluetooth 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: no module named 'bluetooth'

查詢網路才知道 MicroPython for ESP32 韌體尚未支援藍芽功能, 雖然 ESP32 開發板有藍芽也還不能用, 參見 GitHub 論壇 2018-05-28 這篇 :

https://github.com/micropython/micropython/issues/3809

開發者的回答是 :  "No, BLE on ESP32 is not yet implemented"

但我也找到高手分享的自行開發的藍芽韌體, 不過看起來還有些問題, 參見 :

ESP32 bluetooth basic support
https://github.com/icetomcat/micropython/tree/bluetooth

另外一個可跑 MicroPython 的 BBC micro:bit 板子雖然硬體支援 bluetooth, 但是因為藍芽堆疊需要 12KB 的 RAM 記憶體,  micro:bit 板上卻只有 16KB RAM, 如果跑藍芽的話其他功能就沒辦法玩了, 參考 :

https://microbit-micropython.readthedocs.io/en/latest/ble.html

看來目前大概只有 Pyboard 已經支援 bluetooth 模組, 但還是基本的藍芽連線, 尚無配對等進階功能, 也是處於開發階段 :

https://docs.pycom.io/tutorials/all/ble.html

現階段若要用到 ESP32 的藍芽功能必須使用 Arduino IDE 才行, 參考 :

How to Use Serial Bluetooth in ESP32
Getting Started with ESP32 Bluetooth Low Energy (BLE) on Arduino IDE


2019-07-15 補充 :

bpi::bit 的韌體有支援藍芽驅動, 範例參考 :

https://github.com/BPI-STEAM/BPI-BIT-MicroPython/releases
https://github.com/micropython/micropython/pull/4589

2019-07-24 補充 :

今天在下面這篇讀到, 原來也有人自行開發 ESP32 的藍芽套件 :

Getting Started with MicroPython on ESP32 – Hello World, GPIO, and WiFi
https://github.com/MrSurly/micropython-esp32/blob/dev-bluetooth/esp32/bluetooth_docs.md

2020-02-11 補充:

MicroPython 自 1.12 版韌體起支援 BLE 藍芽, 參考 :

MicroPython 1.12 釋出

沒有留言 :