總網頁瀏覽量

2020年12月23日 星期三

樹莓派3(Raspberry Pi 3)內建藍牙與APP INVENTOR 2的藍牙連線問題記錄(使用pyserial lib的API直接對/dev/ttyAMA0做存取)

這篇就當成一個實驗過程小記錄 (這篇和我之前的許多篇文章風格不同,在這篇文章不會去探究底層Linux device driver或者上層library的內容細節等等,僅從上層純應用Raspberry Pi的maker角度來作個簡單的記錄)

因為手邊的一個小需求,需要用樹莓派3 Model B之板子上的藍牙(實際硬體為BCM43438的藍牙+WiFi的二合一SoC chip)與APP INVENTOR2所開發出的Android的APP的藍牙功能進行連線

這次在樹莓派3上面執行的這個小應用程式是用python撰寫。起初使用bluetoothctl等一連串指令進行藍牙的連線配對後,使用pyserial lib的API直接對/dev/ttyAMA0做存取(也就是藉由UART來對板子上面的藍牙做存取)的方式(這相對類似比較沒有依賴現成藍牙API的作法。以前曾經在其他的專案的開發過程中和HC系列藍牙模組進行連線,當時這樣做是OK的)。而這次在測試與手機端Android App連線的時,在手機端Android App開啟藍牙連線的過程(與樹莓派3板子內建的藍牙連線)遇到問題(連線失敗)。

後來改搭配使用常見的libbluetooth-dev lib搭配PyBluez lib的API來撰寫樹莓派3上面執行的這個python小應用程式,就可成功連線了。

(或者就如同下sudo rfcomm0 watch hci0指令也可成功連線,當然只下指令的話還缺乏後續的應用,所以還是須要撰寫程式)

進一步的詳細過程內容和原因,如果在未來有時間和機會的話,再另外撰寫文章分享



沒有留言:

張貼留言