ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

踩坑树莓派BLE配置

2021-04-07 17:34:17  阅读:263  来源: 互联网

标签:树莓 蓝牙 64Bit 配置 系统 Raspbian BLE 安装


在为树莓派配置BLE的时候,遇到了各种问题,本文将介绍如何为树莓派配置BLE,这里主要针对的是可以支持64Bit系统的3B及后续的树莓派版本。

在文章开始前,先来枚举以下可能你遇到的坑或者将遇到的坑:

  • 使用官方提供的Raspbian系统,可以正常调用蓝牙功能,但无法安装新版本的Miniforge等conda包
  • 使用原生64Bit的Ubuntu系统,各种自动、手动安装bluez后,使用 hciconfig -a 却找不到蓝牙设备

如果你也遇到上述的问题,那么可以继续阅读下去,下面将会解决这些问题,避免你踩到同样的坑。

Raspbian问题

首先,如果你是使用树莓派3B以前的版本,反正也不支持64Bit系统,所以直接安装官方提供的Raspbian系统就可以了。因为官网提供的系统直接就安装好了支持,无论是 hciconfig hcitool 还是 gatttool 都是可以直接使用的。

但是,Raspbian存在一个问题,就是这个系统原生是32Bit的系统。虽然有提供转换64Bit的方法,但是通过修改 /boot/config.txt 来实现 64Bit 系统,然而修改完成后,安装 Miniforge 会报出 conda.exe could not found 的错误。该错误就是系统不支持64Bit原因所致。

为什么要执着要安装 Miniforge ?因为在支持树莓派 ARM 的 conda 环境,无非就只有 Miniconda 和 Miniforge,而 Miniconda 的版本还是停留在非常远古的时代,所以如果想愉快的使用 Python,那只有安装 Miniforge。但 Miniforge 又没有提供32Bit的版本。所以要么就使用64Bit版本的系统,要么就想办法让Raspbian支持64Bit系统。

上面修改 /boot/config.txt 方法的,我还在网上找到通过修改 so 文件的方法,但没有非常详细的方法,而且操作也比较复杂,所以我就没有尝试。另外,树莓派也有一个官方64Bit的bata版系统,但是那个系统好像是带有桌面的,而我只需要命令行远程连接即可。因此也没有尝试和测试那个系统。

所以这里,给出几个结论,希望可以帮助你避坑:

  • 不需要 python 环境或者64Bit软件支持的,只需要蓝牙功能,Raspbian是个不错的选择
  • 如果需要64Bit的支持,目前可以直接不用考虑Raspbian,不要折腾,也许有解决方法,但肯定不算方便

Ubuntu64Bit系统问题

使用Ubuntu 64位系统,那些64Bit软件的问题都可以完美解决。但是,这系统上默认没有蓝牙的支持。于是很自然的想法就是网上搜索蓝牙支持的安装。然而搜索出来的大多数是让安装bluez,而且很多还特地支持说不能使用apt install安装,要手动下载安装包,然后自己编译。但是通过我的测试,安装完成后,hciconfig 根本无法识别板载的蓝牙。因此根本无法使用。

然后我发现大多数文章的内容都和篇英文的博客内容相似,而这篇博客里面开头有很大篇幅是讲如何配置gpio连接一个usb线的,不知道是这篇博文解决的问题不是使用树莓派的蓝牙还是只是因为版本的不同导致不能使用。

以下是我在Stackexchange上面找到的解决办法,方法非常简单,只需要使用apt安装蓝牙包就可以。具体操作如下

sudo apt install -y pi-bluetooth

等待安装完成后,需要修改一个配置文件,该配置文件位于 /boot/firmware/usrcfg.txt

# 备份
sudo cp /boot/firmware/usrcfg.txt_bak
# 修改
vim /boot/firmware/usrcfg.txt

# 在文件最后添加以下内容
include btcfg.txt

完成保存文件,然后重启树莓派,就可以正常使用蓝牙了

# 测试
hciconfig -a

hci0: Type: primary Bus: UART
...

以上即为树莓派配置BLE的方法以及可能遇到的坑,如果你觉得文章对你用,记得关注收藏。你的关注和收藏是继续更新的动力哦。

标签:树莓,蓝牙,64Bit,配置,系统,Raspbian,BLE,安装
来源: https://blog.csdn.net/weixin_37272286/article/details/115490477

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有