这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

安装和示例

linux下安装 sudo apt-get install python-pip libglib2.0-dev

sudo pip install bluepy

官方示例 import btle

class MyDelegate(btle.DefaultDelegate):

def __init__(self, params):

btle.DefaultDelegate.__init__(self)#..

.initialise here

def handleNotification(self, cHandle,

data): #...perhaps check cHandle#...process 'data'

#

Initialisation-- -- -- -

p = btle.Peripheral(address)

p.setDelegate(MyDelegate(params))

# Setup to turn notifications on, e.g.#svc =

p.getServiceByUUID(service_uuid)# ch =

svc.getCharacteristics(char_uuid)[0]# ch

.write(setup_data)

# Main loop-- -- -- --

while True:

if p.waitForNotifications(1.0): #

handleNotification() was called

continue

print "Waiting..."#

Perhaps do something

else here

蓝牙通信模块pybluez的使用

选择蓝牙通信对象 import bluetooth

target_name = "My Device"

target_address = None

nearby_devices = bluetooth.discover_devices()

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)

else :

print(

"could not find target bluetooth device nearby"

)

查询设备服务 import 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("")

通过RFCOMM方式进行通信

采用类似于socket编程模型的方式进行蓝牙通信的编程

1.服务器端程序 import bluetooth

server_sock = bluetooth.BluetoothSocket(

bluetooth.RFCOMM)

port = 1

server_sock.bind(("", port))

server_sock.listen(1)

client_sock, address = server_sock.accept()

print "Accepted connection from ",

address

data = client_sock.recv(1024)

print "received [%s]" % data

client_sock.close()

server_sock.close()

2. 客户端程序 import bluetooth

bd_addr = "01:23:45:67:89:AB"

port = 1

sock = bluetooth.BluetoothSocket(

bluetooth.RFCOMM)

sock.connect((bd_addr, port))

sock.send("hello!!")

sock.close()

通过L2CAP方式进行通信

L2CAP的sockets方式几乎等同于RFCOMM的sockets方式,唯一的不同是通过L2CAP的方式,并且端口是0x1001到0x8FFF之间的奇数端口。默认的连接可以传送的可靠报文是672个字节。

1.服务器端程序 import bluetooth

server_sock = bluetooth.BluetoothSocket(

bluetooth.L2CAP)

port = 0x1001

server_sock.bind(("", port))

server_sock.listen(1)

client_sock, address = server_sock.accept()

print "Accepted connection from ",

address

data = client_sock.recv(1024)

print "received [%s]" % data

client_sock.close()

server_sock.close()

2.客户端程序 import bluetooth

sock=bluetooth.BluetoothSocket(bluetooth.L2CAP)

bd_addr = "01:23:45:67:89:AB"

port = 0x1001

sock.connect((bd_addr, port))

sock.send("hello!!")

sock.close()

调整MTU大小 l2cap_sock = bluetooth.BluetoothSocket( bluetooth.L2CAP )

# connect the socket

bluetooth.set_l2cap_mtu( l2cap_sock, 65535 )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

python蓝牙连接测试_基于python实现蓝牙通信代码实例相关推荐

  1. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

    背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...

  2. 使用python进行渗透测试_利用Python进行Web渗透测试(五):剖析HTTP请求

    本篇概要URL的结构 HTTP头域 HTTP状态码 一个完整的HTTPget请求 在上一篇我们简单介绍了HTTP协议的概念和知识,本篇我们来详细剖析一下HTTP的请求,将这两篇综合起来,我们就对HTT ...

  3. python数据接口设计_基于python的接口测试框架设计(一)连接数据库

    基于python的接口测试框架设计(一)连接数据库 首先是连接数据库的操作,最好是单独写在一个模块里, 然后便于方便的调用,基于把connection连接放在__init__()方法里 然后分别定义D ...

  4. 用python做双人五子棋_基于python的socket实现单机五子棋到双人对战

    基于python的socket实现单机五子棋到双人对战,供大家参考,具体内容如下 本次实验使用python语言.通过socket进行不同机器见的通信,具体可以分为以下四步:1.创建ServerSock ...

  5. python 工资管理软件_基于[Python]的员工管理系统

    基于[Python]的员工管理系统 -------------------------------- 简介 使用python语言来完成一个员工管理系统,员工信息包含:员工工号,姓名, 年龄,性别,职位 ...

  6. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法

    最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...

  7. python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现

    从高校校园网运维工作实际出发,论文提出了一种基于 Python 语言+SNMP协议的网络交换机监测系统设计思路与实现方法.整个系统系统采用B/S模式,基于轻量级的web开发框架web.py实现.后端采 ...

  8. 用python设计学生管理系统_基于python和tkinter实现的一个简单的学生信息管理系统...

    一个简单的学生信息管理系统基于python和tkinter 1.需求分析1.大学生信息管理系统使用tkinter接口创建一个窗口.使界面更漂亮.2. 实现与数据库的连接,教师和学生的信息可以保存或读取 ...

  9. python生成json接口_基于python的Flask框架写json接口并且结合eolinker进行接口测试

    一.前言 很多时候为了提高软件开发的效率,后端程序人员理想状态下应该编写程序测试接口供前端程序人员进行测试,以便前端的开发.笔者由于项目的需求近期尝试学习了一下测试接口的编写,以Python+Flas ...

  10. 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...

    背景 最近自己开发了一个小的接口,功能测完了,突然想测下性能,原来做性能测试,我一直用的是HP的LoadRunner,前一段时间正好看过locust,想想就用这个来测测性能吧. 由于对LR比较熟,正好 ...

最新文章

  1. java调用可执行程序 开销_java – 进行JNI调用的定量开销是多少?
  2. 不能解决,复选框在request对象获取的信息后显示在用户信息里面为中文的选项名...
  3. 用化学的方法分类键盘和鼠标
  4. C语言实现ternary search三分查找算法(附完整源码)
  5. 【UESTC 594】我要长高
  6. ASP.NET 2.0运行时简要分析
  7. 重磅!Nature盘点年度十佳论文,生命科学占据半壁江山,中国学者表现亮眼
  8. 遍历指定目录下的图片文件 显示在gridview 并添加点击事件
  9. 车辆特征系数——车速的计算
  10. 8003.ros2创建win10工程
  11. android内核读取file文件
  12. IDL | 实验一、IDL编码与运行
  13. Excel获取目标时间点/日期的方法
  14. Codeforces 1023G:Pisces(最长反链)
  15. 打开一个英文文本文件,编写程序读取内容,将其中的小写字母转换为大写,大写字母转化为小写
  16. 今日学习在线编程题:幻数
  17. C语言const和volatile关键字
  18. 田志刚新华信讲“你的知识需要管理”
  19. Windows权限设置
  20. SAP和Oracle的ERP是怎样被替代的?

热门文章

  1. python中eval()函数的作用及使用方法
  2. Android - scheme 一个app跳转另一个app、模块开发
  3. 本人初中生 历时5个月时间 我自己研制的基于Windows的操作系统终于开发完成
  4. 微生物群落基于KEGG预测功能的丰度分布图绘制
  5. 联想V450笔记本 加装固态硬盘
  6. (一)Activiti 数据库25张表——一般数据1 (ACT_GE_BYTEARRAY)
  7. 本地调试获取微信code网页授权,免部署(前端+开发者工具)
  8. Taro 如何开始微信小程序的开发
  9. Bootstrap3基础 img-rounded 图片的四个角改成圆角
  10. 闹钟(Alarm Clock)