1、依赖包的版本与python的版本要匹配
下载python的国内源:https://mirrors.huaweicloud.com/python/
2、官网:https://docs.python.org/zh-cn/3.9/看自带的文档,搜索 “python 库名”,找到官网(有 github 地址的也算),如果有,看上面的说明,如果没有,参见
3、利用 Python 的帮助系统,安装的第三方库也是可以通过 help
获取的。不过鉴于它没官网 doc,估计其中的 docstring 也不会太详尽,所以不如直接跳到
4、看源码
5、可用网站:
1)https://pybluez.readthedocs.io/en/latest/index.html
2)…
参考:https://blog.csdn.net/weixin_50396804/article/details/109823229
1、如何连接成功import bluetooth
import sys
import time
name='小米手机10pro' #需连接的设备名字
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(nearby_devices) #附近所有可连的蓝牙设备
addr=None
for device in nearby_devices: #遍历查看nearby_devices列表中有无需连接的设备小米手机10pro,有就打印出来
if name==device[1]:
addr = device[0]
print("device found!",name," address is: ",addr)
break
if addr==None: #nearby_devices列表中没有需连接的设备小米手机10pro
print("device not exist")
services = bluetooth.find_service(address=addr) #find_service用于查找可用的蓝牙服务。搜索结果将是一个列表
print(services)
for svc in services: #svc依次表示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"]) #打印蓝牙设备的各种属性
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) #代表蓝牙连接的一端的蓝牙套接字。套接字将使用的协议RFCOMM
sock.connect((addr, 2)) #将套接字绑定到本地地址和端口。
print("连接成功,端口:")
i=0
while i<255: #当 while 的 <i<255>为 True 时运行【语句块】,【语句块】运行结束后,再次进入 <条件表达式>进行 判断,如果 <条件表达式>结果为 True 则再次运行【语句块】, 以此循环直到 <条件表达式> 结果为 False 结束循环。
try:
sock.connect((addr, i))
print("连接成功,端口:",i)
break
except Exception as e:
print("端口:",i,"连接失败",e)
i=i+1 #遍历端口号,进行连接
2、连接与进入通讯循环
import time
import sys
import bluetooth
#uuid = "98B97136-36A2-11EA-8467-484D7E99A198"
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(nearby_devices)
uuid = "00001101-0000-1000-8000-00805f9b34fb"
service_matches = bluetooth.find_service( uuid = uuid ) # match匹配
if len(service_matches) == 0:
print("couldn't find the FooBar service")
sys.exit(0)
first_match = service_matches[0]
print(first_match)
port = first_match["port"]
name = first_match["name"]
host = first_match["host"]
print("connecting to \"%s\" on %s" % (name, host))
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((host, port))
print("连接成功")
while True: #进入循环,不然通讯会自动关闭
sock.send("12345".encode('utf-8'))
sock.send("hello".encode('utf-8'))
data=sock.recv(1024) #1024为数据长度
print("received:",data)
time.sleep(5)
蓝牙协议栈bluez移植
看看:https://blog.csdn.net/gatieme/article/details/48751743
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)