Python蓝牙库Pybluez测试可用完整版(二)
上一篇讲解了如何下载Python,这一篇就讲怎么去使用Pybluez
一、下载编辑器
首先使用Pybluez我们要用一个编辑器,这里我用pycharm,也可以用别的看自己的情况,但是不演示详细安装方法了,有需要的可以看一下这篇,讲的挺详细的
PyCharm安装教程(超详细2024新版),零基础也能看懂_pycharm2024安装教程-CSDN博客
二、下载Pybluez2
这几天要用Python写蓝牙通讯,但是各种报错搞的我头都大了,搞了一个周都没搞定,网上各种资料都搜过,怎么都弄不好,不是环境有问题就是蓝牙库有问题,来回换Python版本实在太累了,本来想放弃,突然发现一个视频,讲的是Pybluez2的使用,按照他的方法试了一下,直接成功
Pybluez一共有两个版本分别是Pybluez和Pybluez2,这两个版本都有一些问题
首先是Pybluez,目前网络上只有0.22和0.23版本,0.22版本已经废弃了,只有Python3.5的版本还是32位的,所以只能选择0.23版本,但是0.23版本有一个小bug,connect和find_service函数会报错,原因尚不清楚,所以Pybluez在我这边是用不了的,也许之前可能有人能用,但是这种不稳定的就不在这推荐了
可以进入以下网站看一看,里面都是Pybluez的下载资源
2.3版本:PyBluez · PyPI(无32位)
2.2版本:PyBluez · PyPI(版本较老,最高支持python3.5)
重点在这!!!
一、软件下载
我们需要Pybluez2这个蓝牙库,首先打开pycharm创建一个新的项目,创建main.py文件,接下来去配置解释器,文件—>设置
找到项目,然后点击Python解释器,
点击添加解释器,添加本地解释器
选择我们刚下载的3.9.7版本的Python,然后选择好点确定
配置完成后,会出现这个页面,我们可以选择+后在软件里面下载Pybluez2
搜索Pybluez2,然后指定安装0.37版本,不选最新版本是因为新版需要依靠的环境太复杂,老版本一样用而且没有这么多要求,如果遇到这个软件库打不开或者安装不上的,可以试一试开流量能不能打开或者安装,如果也不行,可以采用pip下载
二、pip下载
老样子还是win+R打开输入cmd打开终端,输入下面命令,最好开流量下载,我用WiFi有时候会下载错误
pip install Pybluez2==0.37
然后下载成功,一般来说都能正常安装上,因为这个版本没有什么要求,安装非常简单,新版本要求特别多,很容易安装失败
三、测试Pybluez2
接下来去测试,还是回到解释器界面,看看有没有安装成功,可能用多个解释器的,要自己指定一下
上代码,测试没问题,有些报错是正常情况,不存在没法用的情况
import bluetooth
import time
def get_locol_address():
print("本机蓝牙MAC地址:", bluetooth.read_local_bdaddr())
def find_buletooth(target_name):
nearby_devices = bluetooth.discover_devices()
target_address = None
for bdaddr in nearby_devices:
if target_name == bluetooth.lookup_name(bdaddr):
target_address = bdaddr
break
if target_address is not None:
print("found target bluetooth device with address ", target_address)
return 1
else:
print("could not find target bluetooth device nearby")
return 0
def san_bluetooth():
nearby_devices = bluetooth.discover_devices(lookup_names=True)
for addr, name in nearby_devices:
print(" %s - %s" % (addr, name))
services = bluetooth.find_service(address=addr)
for svc in services:
print("Service Name: %s" % svc["name"])
print(" Host: %s" % svc["host"])
print(" Description: %s" % svc["description"])
print(" Provided By: %s" % svc["provider"])
print(" Protocol: %s" % svc["protocol"])
print(" channel/PSM: %s" % svc["port"])
print(" svc classes: %s " % svc["service-classes"])
print(" profiles: %s " % svc["profiles"])
print(" service id: %s " % svc["service-id"])
print("")
return
def socket_client(bd_addr, port):
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
try:
sock.connect((bd_addr, port))
sock.send("hello123B!!")
while True:
data = sock.recv(1024)
if not data:
break
print(f"接收到数据: {data}")
if data == b'disconnect':
sock.close()
except bluetooth.btcommon.BluetoothError as e:
print(f"蓝牙连接错误: {e}")
return
# find_buletooth("JDY-31-SPP")
san_bluetooth()
# socket_client("12:34:56:A8:AD:4F", 1)
# get_locol_address()
# bluetooth.bt.connect("41:42:C5:BF:2C:32", 1)
OK,到这就完成了蓝牙包的安装,如果有想学习蓝牙库的可以去下面这个视频看看,里面也讲了如何安装蓝牙库
01_Python的蓝牙模块pybluez调试设计_哔哩哔哩_bilibili
作者:未闻557