pyqt5使用QtBluetooth与低功率蓝牙连接

开始

因为公司需要,从笔记本电脑连接蓝牙设备,所以就要开发一款比较方便的桌软。这里我使用了pyqt5里面的蓝牙模块(QtBluetooth),加上pyqt5进行排版。

效果图

 我是根据  PyQt5之QtBluetooth模块:低功耗蓝牙BLE通信  进行开发 同时自己也看官网、看源码,如果想白嫖的话请看这篇文章。

功能实现

  1. 搜索周边蓝牙
  2. 模糊搜索蓝牙
  3. 监听蓝牙回调(几秒钟停止)
  4. 蓝牙根据信号值排序
  5. 选中某个设备进行连接
  6. 获取服务ID
  7. 获取特征值
  8. 创建写入特性(判断该特征值是否开启)
  9. 如何写入数据
  10. 创建订阅特性(判断该特征值是否开启)
  11. 订阅返回的数据如何解析

实现代码

home.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'home.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
以下是使用 Pyqt5 中的 QBluetooth 模块进行蓝牙发送和接收的示例代码: ```python from PyQt5.QtBluetooth import QBluetoothDeviceDiscoveryAgent, QBluetoothSocket from PyQt5.QtCore import QIODevice, QBluetoothUuid, QByteArray from PyQt5.QtWidgets import QApplication, QDialog, QListWidget, QVBoxLayout, QPushButton, QHBoxLayout, QLineEdit import sys class BluetoothDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.devices = QListWidget() self.discovery = QBluetoothDeviceDiscoveryAgent() self.discovery.deviceDiscovered.connect(self.add_device) self.devices.itemDoubleClicked.connect(self.connect_to_device) self.connect_button = QPushButton('Connect') self.connect_button.clicked.connect(self.connect_to_device) self.send_button = QPushButton('Send') self.send_button.clicked.connect(self.send_data) self.input_box = QLineEdit() layout = QVBoxLayout() layout.addWidget(self.devices) layout.addWidget(self.connect_button) hbox = QHBoxLayout() hbox.addWidget(self.input_box) hbox.addWidget(self.send_button) layout.addLayout(hbox) self.setLayout(layout) def add_device(self, info): name = info.name() address = info.address().toString() self.devices.addItem('{} ({})'.format(name, address)) def connect_to_device(self): device = self.devices.currentItem().text() device_name = device.split(' ')[0] device_address = device.split(' ')[1][1:-1] socket = QBluetoothSocket(QBluetoothServiceInfo.RfcommProtocol) socket.connectToService(QBluetoothAddress(device_address), QBluetoothUuid.SerialPort) self.socket = socket self.socket.readyRead.connect(self.receive_data) def send_data(self): text = self.input_box.text() if not text: return data = QByteArray() data.append(text) self.socket.write(data) self.input_box.setText('') def receive_data(self): data = self.socket.readAll() print(data) if __name__ == '__main__': app = QApplication(sys.argv) dialog = BluetoothDialog() dialog.discovery.start() dialog.show() sys.exit(app.exec_()) ``` 该示例代码实现了蓝牙设备的搜索、连接、发送和接收功能。在搜索到蓝牙设备后,用户可以通过双击列表中的设备名称来连接设备。连接成功后,用户可以通过文本框输入需要发送的数据,点击 Send 按钮发送数据,并通过 receive_data 方法接收数据。注意,该示例代码只是一个简单的示例,实际应用中需要根据具体需求进行修改。
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值