这篇文章主要介绍了基于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写安卓app控制蓝牙_基于python实现蓝牙通信代码实例相关推荐

  1. 用python写脚本筛选原创微博_基于python编写的微博应用

    本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...

  2. python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  3. python编程控制机器人_基于Python开发的微信图灵机器人

    在过去的几个月中,由于在新生群中回答问题费时费力,同时又有许多重复而又有固定答案的回答,我受到一些知乎文章的启发,维护了一个基于itchat的群聊机器人.从刚开始接入图灵机器人时只会尬聊的机器人,之后 ...

  4. 用Python写安卓APP,你怕不怕

    我们知道了Python可以开发桌面应用(PyQt.wxPython等),可以开发服务端(twisted等),可以开发web端(Django.Flask等),开发爬虫(pyspider等),开发硬件st ...

  5. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  6. python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现

    计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...

  7. python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx

    湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...

  8. python的图书管理项目教程_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

  9. python检测微信好友是否删除_基于Python+adb实现微信是否好友检测

    本文介绍的基于Python+adb实现的微信好友检测,是通过adb操控手机,模拟人的点击.截屏操作,对应用无侵入,无需扫描登录即可实现好友检测. 网上看到一些文章类似功能的实现,总结起来千篇一律的引入 ...

最新文章

  1. 自动泊车技术短暂困境,前景可期
  2. Java对象引用与对象的区别
  3. vue 离开页面事件_【必看】58 道 Vue 常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度...
  4. java 避免重定向_java重定向与转发的问题
  5. 阿里大文娱:不存在“优酷自制团队转入阿里影业”一说
  6. 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
  7. PIE SDK波谱运算
  8. (转)美国进入智能投顾竞争时代
  9. word表格内插入某月某日星期几_Word文字技巧—如何在Word中自动生成日历
  10. 单片机的C语言应用程序设计实训教程,单片机的c语言程序设计实训
  11. 【C语言】俄罗斯方块的源代码
  12. Meshing Tutorials(网格划分教程)
  13. python大作业设计报告_python大作业.doc
  14. react Hook useReducer()和useContext()实现Redux效果
  15. A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHM
  16. 使用CE找天龙八部基址(图解)毛头小伙制作
  17. pcs增加mysql资源_PCS集群的一些命令总结!非常好!
  18. 回溯模板+leetcode——78. 子集 + 90. 子集 II
  19. 想成为单片机高手?这3步是必经之路
  20. scapy sniff 无法启动网卡

热门文章

  1. OCR助手-免费OCR工具
  2. 找不到模块“./App.vue”或其相应的类型声明。ts(2307)
  3. Http-超文本传输协议-详解
  4. ffmpeg:获取视频帧数
  5. 树莓派基础实验17:温度传感器实验
  6. 阅读笔记5:神经支持决策树(可解释性)
  7. android实现软键盘弹出,editText随键盘上移,背景不动
  8. 立志成事【管理学之八】
  9. VC++常用数据类型及其操作详解 [
  10. 西安互联网公司记录---kalrry