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

物联沃分享整理
物联沃-IOTWORD物联网 » Python蓝牙库Pybluez测试可用完整版(二)

发表回复