目录

  • 前言
  • 安装bleson
  • 运行官方例程
    • basic_observer.py
    • basic_advertiser.py
  • Internal API

前言

系统:Windows10 企业版
IDE:pycharm2020
python版本:3.8.12
环境创建: Anaconda3
电脑:台式机 外接蓝牙

bleson github地址:https://github.com/TheCellule/python-bleson

本来想试试pybluez(py3.8)的,但是安装报错Windows SDK相关的错误,懒得搞了(后来试了py3.6,轻松安装),所以搜集下信息,找到了bleson,不过bleson用的人很少,就试试水,顺便记录使用过程。bluepy只支持Linux,有点伤

安装bleson

官方文档:https://bleson.readthedocs.io/en/latest/installing.html

进入你conda配好的环境 我这是 activate py38 (我已经事先用Anaconda创建了py38的环境)

控制台输入命令 pip install bleson
第一遍安装卡着了。。。第二遍问题依旧

重启pycharm,重新安装,比较慢 不过成功安装。

运行官方例程

运行例程记得打开蓝牙

如果没有打开,会出现报错,如 RuntimeError: Start watcher failed : 000001D6A093A13C

basic_observer.py

扫描周围蓝牙设备,并打印相应蓝牙信息

#!/usr/bin/env python3import sys
from time import sleep
from bleson import get_provider, Observer# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10def on_advertisement(advertisement):print(advertisement)adapter = get_provider().get_adapter()observer = Observer(adapter)
observer.on_advertising_data = on_advertisementobserver.start()
sleep(WAIT_TIME)
observer.stop()

运行效果如下,扫到很多没有name的,不过庆幸的是扫到了我的小米手环,还算正常(ps:默认是扫描10s,如需修改可传参20s 例 python basic_observer.py 20

我们简单修改下代码,过滤下空name的打印

#!/usr/bin/env python3import sys
from time import sleep
from bleson import get_provider, Observer# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10def on_advertisement(advertisement):# <class 'bleson.core.types.Advertisement'># print(type(advertisement))if len(advertisement.name) > 0:print(advertisement)adapter = get_provider().get_adapter()observer = Observer(adapter)
observer.on_advertising_data = on_advertisementobserver.start()
sleep(WAIT_TIME)
observer.stop()

又多扫描到了一个设备

不过我手机就在旁边却扫不到(打开“设置”,蓝牙打开,发现手机以前配过对,删除配对后,使用 系统的扫描)

再次回到程序,进行扫描,恩,还是扫不到,大无语事件。。。


打印蓝牙设备mac地址,追加 print(advertisement.address),参考文档:https://bleson.readthedocs.io/en/latest/api_datatypes.html#device

basic_advertiser.py

#!/usr/bin/env python3import sys
from logging import DEBUG
from time import sleepfrom bleson import get_provider, Advertiser, Advertisement# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10print('WAIT_TIME =', WAIT_TIME)print('get_provider().get_adapter()...')
adapter = get_provider().get_adapter()advertiser = Advertiser(adapter)
advertisement = Advertisement()
advertisement.name = "bleson"advertiser.advertisement = advertisementprint('advertiser.start()...')
advertiser.start()
sleep(WAIT_TIME)
print('advertiser.stop()...')
advertiser.stop()

就挺莫名其妙,而且程序无法正常结束。。。大无语事件

修改下源码,以日志形式打印

#!/usr/bin/env python3import sys
from logging import DEBUG
from time import sleepfrom bleson import get_provider, Advertiser, Advertisementfrom bleson.logger import log# 设置日志等级
log.setLevel(DEBUG)# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10log.debug("WAIT_TIME={}".format(WAIT_TIME))log.debug('get_provider().get_adapter()...')
adapter = get_provider().get_adapter()advertiser = Advertiser(adapter)
advertisement = Advertisement()
advertisement.name = "bleson"advertiser.advertisement = advertisementlog.debug('advertiser.start()...')
advertiser.start()
sleep(WAIT_TIME)
log.debug('advertiser.stop()...')
advertiser.stop()
log.debug('run over...')


看源码和日志应该是开始广播一段时间,然后停止,不过实际用下来 无事发生,换个程序算了。

Internal API

官方文档:https://bleson.readthedocs.io/en/latest/api_internal.html

其实可以发现,这个库实现的功能并不多呀,就广播、扫描,搞个beacon玩玩,没有蓝牙连接 读写的相关功能,这。。。我白给了

Windows下 python bleson 安装使用记录相关推荐

  1. windows下python如何安装模块或包? How to install package or module in windows OS when using PYTHON?

    摘要:本文介绍了在windows下利用cmd安装第三方模块或包的方法. 更新20170531:作为小白,发现使用setup.py安装并不是万能的,找到了使用pip安装的方法,步骤为配置好环境变量后(参 ...

  2. 菜鸟在 windows 下 python 中安装 jupyter 踩坑要点 、被神化的 VsCode

    我平时用不到 python ,更没用过 jupyter ,因此我的 python知识仅限于知道有 python 这么个编程语言,会写个 print("Hello World!!!" ...

  3. python官网安装步骤-新手Windows下Python下载安装教程及配置注意事项

    新手如何下载安装Python以及配置环境变量呢?初学者选择Python2还是Python3呢?Windows下安装简单,初学者建议直接选择Python3- 首先分享Python下载方式 到Python ...

  4. Windows下Python新手安装教程

    一.下载Python Python的官方站点地址是:http://www.python.org ,我们可以从Python的官方站点下载到Python的安装文件,当我们打开Python的官方站点之后,可 ...

  5. Windows下python环境安装scrapy

    Scrapy这个神奇的爬虫框架,我弄了几乎一个晚上,几乎绝望的时候,却绝处逢生了.安装Scrapy库也是根据以前一样的思路,安装过程中缺少什么就下载什么,安装完了一个接着安装另一个.可在Scrapy面 ...

  6. Windows下Python的安装

    注:此安装版本是为验证<利用Pyhon进行数据分析>中例子,所以选择和书中相近的安装版本Epd_Free-7.3-2-win-86.msi(最好能找到一模一样的安装包,但我没找到 ) 一. ...

  7. python numpy安装windows_windows 下python+numpy安装实用教程

    如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. ...

  8. windows下python常用库的安装

    windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...

  9. windows下python依赖包_windows下安装python拓展包

    安装Python集成开发环境IDE 2.IPython:方便今后编译其他扩展库,占用空间92.8M: sudo apt-get install python-dev IPython 为了安装最新版的I ...

最新文章

  1. 并发编程总结4-JUC-REENTRANTLOCK-2(公平锁)
  2. C++ 使用move来删除用户指定的文件
  3. k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
  4. linux ftp 操作命令
  5. 【点阵液晶编程连载五】液晶驱动代码的移植
  6. 如何启动php程序下载,php – 最好的方式来启动下载?
  7. scala 基础入门
  8. Java从入门到精通 第19章 异常的捕获和处理
  9. 初中信息技术考试:Python试题及答案
  10. 201871010114-李岩松《面向对象程序设计(java)》第一周学习总结
  11. 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
  12. wox无法启动解决办法:
  13. 第四次作业—四则运算
  14. 幂乘法求最大特征值和特征向量
  15. 安装Nvidia显卡驱动和CUDA
  16. 运维面试题(面前准备)
  17. 单位根检验、协整检验和格兰杰因果检验三者之间的关系
  18. STM32——MG90S数字舵机驱动
  19. PHP ajax 远程下载PDF文件保存在本地服务器
  20. 2.Cairo图形库-定义

热门文章

  1. Python字典比较
  2. android 自定义Gifview显示gif图片
  3. android 9.0去掉前置摄像头闪光灯功能
  4. 【彩彩只能变身队】用户需求分析(二)—— 调查结果
  5. Arduino UNO数据手册
  6. 库文件、静态库(lib)与动态库(dll)的生成与使用
  7. 二叉树非递归后序(后根)遍历
  8. c#验证两个QQ头像相似度
  9. 年少轻狂,漫漫职业路
  10. 小码哥与机器人 马蹄集