2014年8月23日 星期六

安裝 PyBluez

PyBluez 是給桌上型電腦使用的藍芽函式庫,您可以用它來跟附近的藍芽裝置溝通。如果是手機或平板,您可以安裝 LightBlue。


下載

切換至下載頁面 https://code.google.com/p/pybluez/downloads/list
點擊 PyBluez-0.20-win32.py2.7.exe。


安裝

雙擊 PyBluez-0.20-win32.py2.7.exe,然後依照視窗內的提示安裝即可。
官網說要在「命令提示視窗」內進行如下安裝

python setup.py install

但我發現這個動作可以省略。


搜尋藍芽裝置

本程式碼會搜尋並顯示附近的藍芽裝置的名稱和位址。

import bluetooth

print("performing inquiry...")

nearby_devices = bluetooth.discover_devices(lookup_names = True)

print("found %d devices" % len(nearby_devices))

for addr, name in nearby_devices:

    print("  %s - %s" % (addr, name))


執行過程如下:

performing inquiry...
found 2 devices
Ray's Nokia - 00:12:D2:5A:BD:E4
Ray's MacBook - 00:1E:C2:93:DA:6F


RFCOMM 服務

以下是基本的客戶端和伺服器端的程式,為了讓事情變得簡單,我們手動輸入伺服器藍牙設備的位址(00:12:D2:5A:BD:E4)和埠口;在下文中,客戶端連接到伺服器上的埠口為 3。

程式運作的方式如下圖:



客戶端(從)程式

from bluetooth import *

# Create the client socket
client_socket=BluetoothSocket( RFCOMM )

client_socket.connect(("00:12:D2:5A:BD:E4", 3))

client_socket.send("Hello World")

print "Finished"

client_socket.close()


伺服器端(主)程式

from bluetooth import *

server_socket=BluetoothSocket( RFCOMM )

server_socket.bind(("", 3 ))
server_socket.listen(1)

client_socket, address = server_socket.accept()

data = client_socket.recv(1024)

print "received [%s]" % data

client_socket.close()
server_socket.close()


1 則留言:

  1. 1. 請問你是怎麼成功執行,我看網路上的教學,利用底下方法都會出現 Error
    # python examples\simple\inquiry.py
    IOError: No Bluetooth adapter detected

    2. Bluetooth adapter 指的是什麼?

    回覆刪除