網頁最後修改時間:2014/07/29
USB 藍牙卡與樹莓派 |
樹莓派本身沒有藍牙裝置,最常使用的就是 USB 藍牙卡 ( Bluetooth USB Dongle ) 與藍牙轉串列介面模組,這兩樣東西都是賣場藍牙入門套件其中的一樣配件,之後都會在部落格中提到。而在這篇網頁中,將會說明如何在樹莓派裡安裝藍牙所需套件,正確安裝以及啟動藍牙管理器 ( Bluetooth Manager ) 連接外部藍牙裝置。
安裝與測試藍牙裝置會需要進入到樹莓派的桌面,若是不直接使用 AV 或是 HDMI 輸出視頻,請至網頁最下方所提供的部落格連接,至少安裝編輯環境中的第二發與第三發的軟體,這樣就可以遠端連線至樹莓派或是其桌面下進行必要的操作。
所使用的硬體環境為:
- Raspberry Pi Model B 512MB RAM ( Wheezy-Raspbian )
- Bluetooth USB Dongle
- 有線網路
使用 SSH 或是 VNC 連線到樹莓派,在未插上任何東西在樹莓派 USB 插槽上時,在命令提示視窗下輸入 lsusb 查看 USB 設備
pi@raspberrypi ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
插入 USB 藍牙卡後,再一次下同樣的指令,這次新出現的就是關於藍牙卡的 USB 資料
pi@raspberrypi ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
解釋最後一行新增的部分:Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001:表示第一個控制器。
Device 005:表示系統給 USB 藍牙卡設備的裝置號碼
ID 0a12:0001:表示 USB 裝置的ID。前面 ( 0a12 ) 表示廠商識別碼 ( Vendor ID),等於 Cambridge Silicon Radio, Ltd;後面 ( 0001 ) 表示裝置識別碼 ( Product ID ),等於 Bluetooth Dongle (HCI mode)。
關於 USB Vendor ID 以及 Product ID 的查詢可以到 "List of USB ID's" 按 "Ctrl + F" 做搜尋。
( 進入到桌面,) 或是輸入下面指令開啟 VNC Server,再使用 VNCViewer 連線到樹莓派
pi@raspberrypi ~ $ vncserver :1 -geometry 1600x900
按下左下角圖示,選擇 Preferences 就會看到系統並未有關於藍牙相關的應用介面在上面
未安裝 Bluetooth Manager 之前 |
#### 更新套件列表 pi@raspberrypi ~ $ sudo apt-get update ...<< 過程省略 >> ... #### #### 安裝藍牙所需的套件 pi@raspberrypi ~ $ sudo apt-get install -y bluetooth bluez-utils blueman ... << 過程省略 >> ...
這時再按下桌面左下角的圖示,選擇 Preferences 就會看到了新增了一個 Bluetooth Manager 的圖示 ( 但此時請勿按下執行,因為應該是開不起來的,後面有解決的方法 !!! )
安裝 Bluetooth Manager 之後 |
#### #### 確認藍牙的狀態 pi@raspberrypi ~ $ /etc/init.d/bluetooth status [ ok ] bluetooth is running. #### 或使用下面指令亦可 pi@raspberrypi ~ $ service bluetooth status [ ok ] bluetooth is running.
接著再輸入下面指令,使用 USB 藍牙卡搜描附近的藍牙裝置 ( 至少要額外開啟一個藍牙裝置 ),掃到了就會出現藍牙裝置的 ID 與名稱
#### #### 使用 Dongle 掃描藍芽裝置 pi@raspberrypi ~ $ hcitool scan Scanning ... D0:##:62:##:A8:## XPERIA P
現在按下桌面左下角的圖示,選擇 Preferences / Bluetooth Manager,如果可以正常的開啟並出現藍牙管理器視窗的話,恭喜你 ! 接下來的步驟就都不需要了。但是,若是很不幸運的開不起來,不用急著升級 ( upgrade ) 套件,因為這樣做沒用!
切換到命令提示視窗輸入指令下來打開 Bluetooth Manager,迸出了一堆錯誤訊息。奇怪!剛剛不是可以正常掃描藍牙裝置嗎 ? 真是糾結 !!!
pi@raspberrypi ~ $ sudo blueman-manager X11 connection rejected because of wrong authentication. /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning) Loading configuration plugins X11 connection rejected because of wrong authentication. (blueman-manager:2296): GConf-WARNING **: Client failed to connect to the D-BUS daemon: /usr/bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed. Skipping plugin gconf No D-BUS daemon running No suitable configuration backend found, exitting
注意一下上面故意標橘色字的地方,可以發現因為錯誤的身分驗證而不成功,所以朝著這個方向就是 pi 使用者群組設定的問題。
輸入下面指令修改 /etc/group 檔案,修改之前先備份原始檔案
pi@raspberrypi ~ $ sudo cp /etc/group /etc/group.orig
未修改前的 /etc/group 檔案 |
pi@raspberrypi ~ $ sudo nano /etc/group
修改後的 /etc/group 檔案 |
因為修改群組的關係,為了讓修改生效,輸入下面指令讓樹莓派重開機
pi@raspberrypi ~ $ sync;sync;sudo init 6
重開機之後,不管是在命令列或是進入到 VNC 桌面就可以順利打開 Bluetooth Manager。
Bluetooth Manager 開啟的畫面 ( Bluetooth Devices ) |
手機與樹莓派的藍牙連接
現在,來試一下使用手機來連樹莓派 !
首先在桌面左下角按下選擇 Preferences / Bluetooth Manager
01-打開 Bluetooth Manager |
在手機輸入樹莓派 USB 藍牙卡連線密碼 |
手機端按下連線樹莓派 USB 藍牙卡的同時 |
連線手機端藍牙裝置,密碼輸入視窗 |
輸入手機端藍牙裝置的連線密碼 |
手機與樹莓派藍牙配對成功 |
使用藍芽傳送檔案測試 |
手機端收到樹莓派 "檔案傳輸" 要求訊息 |
是否接受或是拒絕檔案傳輸的要求 |
反過來,使用樹莓派連手機也行 !
結論
這網頁是做為藍牙入門套件的第一篇使用說明。安裝基本的設置之後,就可以確保在手機與樹莓派之間的藍牙通訊沒有問題,在使用藍牙入門套件,這部分一定要先搞懂,尤其是藍牙配對的操作,即便是很簡單的過程,但是這會用在 HC-05 主從一體藍牙模組的指令以及程式撰寫上,並方便我們接下來的各項藍牙實驗與測試 !
<< 部落格藍牙相關網頁連結 >>
- HC-05 主從一體藍牙模組初體驗 01 ( 硬體接線、從動角色 )
- HC-05 主從一體藍牙模組初體驗 02 ( AT 指令說明與使用演示、主動角色 )
- HC-05 主從一體藍牙模組初體驗 03 ( BTSCmode.apk Eclipse 編譯環境說明 )
- Bluetooth USB Dongle 初體驗 - Windows 篇 ( 7:免驅;8:BlueSoleil )
- { Client 篇 } Bluetooth USB Dongle 初體驗 - Linux 篇 ( BlueZ , Serial Port Profile)
- { Server 篇 } Bluetooth USB Dongle 初體驗 - Linux 篇 ( BlueZ , Serial Port Profile )
<<樹莓派編輯環境設置系列文章>>
- 在 Windows 設置 Raspberry Pi (樹莓派) 遠端編輯環境 [第一發] 工欲善其事,必先利其器
- 把 Windows 桌面當作是 Raspberry Pi (樹莓派) 的螢幕 [第二發] 工欲善其事,必先利其器
- 遠端桌面 - VNC [第三發] 工欲善其事,必先利其器
Sublime Text 2 與遠端 (樹莓派) 資料夾連線畫面 |
MobaXterm: Windows 作業系統下開啟樹莓派作業系統的 LXDE 桌面 |
VNC |
想請問版主 如果我兩邊都是用HC-05 一邊接arduino 一邊接樹莓派的GPIO接腳 請問也可以用同種方式嗎? 還是說會有不同呢?
回覆刪除這裡說明的是一邊使用 USB 藍牙卡,另一邊使用 HC-05 藍牙模組;若兩邊都是使用 HC-05 就要設定一個為 Server,另一個為 Client,然後將兩者作藍牙連線,連線成功後就可以離開 AT 模式直接傳送訊息了。
刪除詳細的說明都在網頁最下方<>。
版主首先感謝您的撥空回復
刪除在這還想請問如果硬體上是跟上面一樣(一邊用USB藍芽卡,一邊用HC-05模組)
但HC-05模組還有另外接Arduino和溫度感測器去偵測溫度數值
想請問這樣要如何在樹莓派中顯示和提取偵測出的數值呢?
是參考照做另一篇的server篇嗎?
這要看 HC-05 是設定為 Server 或是 Client,選一個你覺得方便使用的就可以。另外若是不想實現在樹莓派實現 SPP 協議,可以 Google 一下如何在 Linux 利用設定的方式做 RFCOMM 的通訊,就類似 Windows 使用設定的方式來達到虛擬通訊埠的方式。只要設定成功,就可以使用 Serial 通訊的方式寫程式發送資料給 Arduino,這可能會比較簡單。
刪除用Client端的方式終於順利顯示出資料了,感謝版主!
刪除請問 反過來,使用樹莓派連手機有教學嗎?? 我可以成功從樹莓傳檔給手機 但反過來一直失敗
回覆刪除我沒開機去確認,但應該是樹莓派藍牙少了接收設定的問題,可以看一下下面網頁中的設定說明
刪除Windows:http://www.7tutorials.com/transfer-files-between-devices-your-windows-7-pc-bluetooth
uBuntu:http://askubuntu.com/questions/131570/how-do-you-make-ubuntu-accept-files-sent-over-bluetooth
感謝 但後來發現是因為我要傳給樹莓的檔案不能太大 只能小於3xxKB的檔案才能接收
刪除作者已經移除這則留言。
回覆刪除您好:
回覆刪除查一下藍牙命令列工具,例如 hcitool、hciconfig...等指令使用方法 ( http://lang.idv.tw/doku.php/os/linux/linux%E4%B8%8B%E4%BD%BF%E7%94%A8_bluetooth_usb_dongle )。開啟藍牙之後,要視用途開啟功能,例如要建立一個 RFCOMM 通道 ( http://www.heatxsink.com/entry/how-to-pair-a-bluetooth-device-from-command-line-on-linux ),或是 OBEX、Headaudio ... 等 ( http://wiki.openmoko.org/wiki/Manually_using_Bluetooth ),花時間找一下就有資料可供參考。
另外,sudo reboot 之後,終端機就會與系統斷線,此時必須要等作業系統完全開啟之後再重新連接即可。
請問版主 我前面都OK 但是到手機連接Raspberry pi藍芽那裏就不行了 我手機藍芽搜尋一直偵測不到它的藍芽裝置
回覆刪除請問這跟藍芽型號有關係嗎? 我用的是 嘻哈部落 SBD-40 的USB藍芽
您好:
回覆刪除如果使用 hcitool scan 有搜尋到你的手機藍牙,那反過來不行的話!請開啟樹莓派藍牙可被搜尋的選項,預設好像是關閉的,使用前要打開,不然會看不到!
有時候會因為藍牙密碼輸入的延遲導致配對不成功,多試幾次!並在成功之後將上面加號、鑰匙和星星符號都按一次加入你的手機藍牙到系統列表中,下次就會自動連線!
感謝版主 我配對到了!!
刪除我現在用樹莓派傳檔案可以到手機
但手機傳檔案給樹莓派時 樹莓派端應該要跳出接收提示 他都沒跳出來 我也不知道要點哪裡才能確認接收
有辦法把他調成會跳出提示之類的方法嗎? 不然樹莓派根本無法接收檔案...
看一下上面其他人的的留言,已經有答案。
刪除你好:
刪除我在傳送 TXT檔給手機的時候出現了
The name org.freedesktop.NetworkManager was not provided by any .service files
這該怎麼解決呢
我沒遇過這問題,若要尋求協助,請詳細的說明起始,不然我也愛莫能助!
刪除你好:我在安裝完成後檢查status,卻出現bluetooth is not running...failed,我重複試了很多次依然一樣,是不是需要另外啟用裝置 https://drive.google.com/file/d/0B9pbQWCq-pN-YVdoSGUwYjhVNHM/view?usp=sharing
回覆刪除lsusb 列出的裝置在螢幕上輸出一樣,安裝相關的套件之後輸入 /etc/init.d/bluetooth status 應該要跟網頁上的一樣。
刪除先重開機再是一次指令,如果不行就看下面的建議與想法:
建議與想法:
1. 請完全照著網頁上面的步驟一步一步做,應該不會出現這問題!如果還是出現就看第2點。
2. 因為不知道你的系統是不是全新的安裝,所以請使用一片全新安裝作業系統的記憶卡重新啟動系統在依照網頁中的步驟重新做一次試試!
謝謝回覆,在我重開機之後,再打status就出現[ ok ] bluetooth is running 了
刪除版主你好,我確定照你的教學去做但是藍芽管理員就是只會在那裏轉圈圈(執行中的意思),大約5.6秒後
回覆刪除還是啥事都沒發生過一樣,請問還有哪方面是可能沒設定好的嗎?(已看你的教學步驟,確認無誤的情形下發問)
尋求幫助,感謝!
單憑這些資訊很難確定問題所在!
刪除猜一下好了!
藍牙驅動沒成功,導致沒法搜尋裝置!
您好,我在安裝時出現"bluez-utils has no installation candidate"是說沒有這個包,我該如何能解決呢?
回覆刪除請您協助我一下,謝謝您
您好我在安裝時會遇到bluez-utils無法安裝的問題,他會出現沒有這個封包,我該如何解決呢?我使用樹莓2
回覆刪除你是不是有改過 apt-get 的 repository 設定 ? 應該不會有這個問題 !
刪除不管如何,直接上官網下載 tar 壓縮的檔案解壓所後自行安裝就可以了!
http://www.bluez.org/download/
安裝方法,解壓縮之後看README檔案。
我嘗試看看,謝謝您給與我幫助。
刪除我是把-utils 去掉後就開始跑安裝了
刪除想請問版主你用的USB bluetooth 是用哪個牌子的??
回覆刪除因為聽說會有系統支援的問題
重要的不是牌子,而是它裡面所使用的晶片!
刪除lsusb 就會出現藍牙的相關敘述,網頁用的是這一個
Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
請問 Bluetooth USB Dongle 有推薦哪一款?
回覆刪除上面有回覆了 ! 如果要用隨便買便宜的就可以用 ! 但如果要學,就要可以切換 class 的,但這個要靠運氣買,有些不一定可以切換。
刪除看網頁前面有說到這部分 !