Windows下 python bleson 安装使用记录
目录
- 前言
- 安装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 安装使用记录相关推荐
- windows下python如何安装模块或包? How to install package or module in windows OS when using PYTHON?
摘要:本文介绍了在windows下利用cmd安装第三方模块或包的方法. 更新20170531:作为小白,发现使用setup.py安装并不是万能的,找到了使用pip安装的方法,步骤为配置好环境变量后(参 ...
- 菜鸟在 windows 下 python 中安装 jupyter 踩坑要点 、被神化的 VsCode
我平时用不到 python ,更没用过 jupyter ,因此我的 python知识仅限于知道有 python 这么个编程语言,会写个 print("Hello World!!!" ...
- python官网安装步骤-新手Windows下Python下载安装教程及配置注意事项
新手如何下载安装Python以及配置环境变量呢?初学者选择Python2还是Python3呢?Windows下安装简单,初学者建议直接选择Python3- 首先分享Python下载方式 到Python ...
- Windows下Python新手安装教程
一.下载Python Python的官方站点地址是:http://www.python.org ,我们可以从Python的官方站点下载到Python的安装文件,当我们打开Python的官方站点之后,可 ...
- Windows下python环境安装scrapy
Scrapy这个神奇的爬虫框架,我弄了几乎一个晚上,几乎绝望的时候,却绝处逢生了.安装Scrapy库也是根据以前一样的思路,安装过程中缺少什么就下载什么,安装完了一个接着安装另一个.可在Scrapy面 ...
- Windows下Python的安装
注:此安装版本是为验证<利用Pyhon进行数据分析>中例子,所以选择和书中相近的安装版本Epd_Free-7.3-2-win-86.msi(最好能找到一模一样的安装包,但我没找到 ) 一. ...
- python numpy安装windows_windows 下python+numpy安装实用教程
如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. ...
- windows下python常用库的安装
windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...
- windows下python依赖包_windows下安装python拓展包
安装Python集成开发环境IDE 2.IPython:方便今后编译其他扩展库,占用空间92.8M: sudo apt-get install python-dev IPython 为了安装最新版的I ...
最新文章
- 并发编程总结4-JUC-REENTRANTLOCK-2(公平锁)
- C++ 使用move来删除用户指定的文件
- k8s-自动横向伸缩pod 根据CPU使用率,QPS访问数监控指标
- linux ftp 操作命令
- 【点阵液晶编程连载五】液晶驱动代码的移植
- 如何启动php程序下载,php – 最好的方式来启动下载?
- scala 基础入门
- Java从入门到精通 第19章 异常的捕获和处理
- 初中信息技术考试:Python试题及答案
- 201871010114-李岩松《面向对象程序设计(java)》第一周学习总结
- 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
- wox无法启动解决办法:
- 第四次作业—四则运算
- 幂乘法求最大特征值和特征向量
- 安装Nvidia显卡驱动和CUDA
- 运维面试题(面前准备)
- 单位根检验、协整检验和格兰杰因果检验三者之间的关系
- STM32——MG90S数字舵机驱动
- PHP ajax 远程下载PDF文件保存在本地服务器
- 2.Cairo图形库-定义