3948|7

654

帖子

27

TA的资源

版主

树莓派蓝牙基础——bluezero库的使用 [复制链接]

本帖最后由 lb8820265 于 2021-8-8 22:50 编辑

       linux系统中有很多操作蓝牙的库,这里介绍一个我认为最好的,bluezero库。

       bluezero一个封装库,是基于最底层的BlueZ的蓝牙协议栈,和最上层的DBus API的,让使用者能够更加方便的使用蓝牙功能,API 方便简单,包含Central和Peripheral角色。有趣的是bluezero还提供了三个复杂度等级的库,Level 1对应傻瓜式操作,使用者不需要太多的BLE知识和蓝牙协议栈知识,Level 10和100则更加接近底层操作,需要了解BlueZ,DBus和蓝牙协议栈。

1. 安装树莓派操作系统

       可以参考我之前的帖子:树莓派4不同操作系统跑分测试

2. 修改python路径

       树莓派系是安装了python2和python3的,默认是使用python2,操作BLE需要使用python3。

       打开终端,查看python的版本号,输入:

python –version

        如果是2.x则进行下面的操作,显示python的安装路径,输入:

whereis --python

1.png         一共有两个python,记住python3的安装路径,修改默认python的路径,输入:

alias python='/usr/bin/python3.7'

3. 安装bluezero库

        树莓派系统是默认安装了BlueZ的,输入:

bluetoothd -v

        查看BlueZ版本号,不能低于5.5版本。

        查看BlueZ运行状态,输入:

systemctl status bluetooth

2.png           显示的running为正常,否则需要打开。

        在终端中就可以通过BlueZ的接口函数,进行扫描、连接、发送等操作,这里不进行详细介绍。

        安装dbus-python库和bluezero库,输入:

pip3 install dbus-python
pip3 install bluezero

        安装完成后可以输入pip3 show bluezero查看库的状态。

        bluezero库并非官方库,代码托管在github上,github上有详细的介绍和大量的例程,方便进行学习和参考。

        github位置:https://github.com/ukBaz/python-bluezero

4. bluezero库例程展示

       下面介绍树莓派作为Peripheral角色的两个例程。

cpu_temperature.py例程

       将github上的代码下载下来,examples文件夹中,该例程可以不断的向手机发送温度数据,在Thonny中打开该例程,直接点击运行,在手机端打开nRF Connect软件,连接叫做“CPU Monitor”的设备,点开服务,然后开启Notification,就可以看到不停跳动的温度数据了,如下图。 3.jpg ble_uart.py例程

        该例程可以实现手机和树莓派间的相互通信,用Thonny打开运行,用nRF Connect软件链接BLE UART的设备,打开服务然后点击发送特性的发送箭头,输入要发送的字符,如下图。

4.jpg         然后在Thonny的Shell的窗口就会打印出接受到的信息,如下图。 5.png          

是不是很简单,很神奇?!

最新回复

不错,python开发简单   详情 回复 发表于 2021-8-9 19:03
个人签名QQ:252669569

回复
举报

654

帖子

27

TA的资源

版主

本帖最后由 lb8820265 于 2021-8-8 23:04 编辑

有对树莓派感兴趣的小伙伴吗?计划用树莓派来做一个有趣的玩具,届时会分享制作过程,同时开源。

欢迎大家踊跃讨论希望用树莓派做个什么哦!!!

个人签名QQ:252669569

回复

6636

帖子

0

TA的资源

五彩晶圆(高级)

看楼主的介绍,确实pythonzero库是 linux系统中的最好的蓝牙的库,赞同。

点评

哈哈,是的,看了下文中写错了,应该是python bluezero库,你也玩过linux下的蓝牙通信吗?  详情 回复 发表于 2021-8-8 22:55

回复

654

帖子

27

TA的资源

版主

Jacktang 发表于 2021-8-8 22:09 看楼主的介绍,确实pythonzero库是 linux系统中的最好的蓝牙的库,赞同。

哈哈,是的,看了下文中写错了,应该是python bluezero库,你也玩过linux下的蓝牙通信吗?

个人签名QQ:252669569

回复

2万

帖子

71

TA的资源

管理员

好物分享:)

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)


回复

2971

帖子

0

TA的资源

五彩晶圆(中级)

树莓派能做太多的东西了。楼主想做什么呢???


回复

1942

帖子

3

TA的资源

版主

语音识别,类似小爱同学那样的。


回复

1237

帖子

67

TA的资源

纯净的硅(中级)

不错,python开发简单


回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表