最近iBeacon很火,我也买了个树莓派搭建一个iBeacon玩玩。

首先,需要的设备有:

1. 树莓派及电源

2. 一个蓝牙模块(网上都是用蓝牙适配器,而我用的是HM-10的蓝牙模块)。

3. 连接线。如果买蓝牙模块的话,记得要买连接线。我忘了买,所以要专门跑到中关村买。

使用python 将树莓派4 蓝牙做低功耗外围设备_重启

 

第一步,连线

因为这篇文章是搭建iBeacon,所以树莓派安装系统等步骤就不赘述了。

我买的蓝牙模块虽然有六根针脚,但是只需要其中的四根即可(VCC,GND,TXD和RXD)。

HM-10蓝牙模块与树莓派之间的连接如下:

 

蓝牙模块

树莓派

VCC

+3.3V

GND

Ground

TXD

RXD

RXD

TXD


树莓派的GPIO定义如下:

使用python 将树莓派4 蓝牙做低功耗外围设备_iBeacon_02

树莓派还有一个5V的电源,而这个蓝牙模块只需要+3.3V。

使用python 将树莓派4 蓝牙做低功耗外围设备_重启_03

 

第二步:修改系统配置文件

 

建议修改前最好先备份一下。

ssh连接上树莓派,执行如下命令

 

sudo nano /boot/cmdline.txt

 

看到如下配置:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

其中console和kgdboc是我们需要修改的配置,我们需要删除这两项参数,修改后如下:

 

使用python 将树莓派4 蓝牙做低功耗外围设备_iBeacon_04

之后修改另一个文件

sudo nano /etc/inittab

 

定位到如下这行

 

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

注释掉:
#T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100

使用python 将树莓派4 蓝牙做低功耗外围设备_ios_05

文件修改完后,重启一下系统。

第三步:蓝牙模块设置



由于HM-10蓝牙模块自带iBeacon功能,所以就不需要像网上教程那样做,某种程度上说是减少了工作量。



当系统重启后,ssh连接上树莓派,下载minicom。minicom可以通过串口控制外部硬件设备。



 



sudo apt-get install minicom




下载完成之后,执行


 



minicom -b 9600 -o -D /dev/ttyAMA0



 


这样就可以通过minicom控制蓝牙模块了。


 



 



具体的AT指令可以查看使用文档。

在任何地方输入“AT",然后复制,之后在minicom中粘贴,这样就向蓝牙模块发送”AT"指令,蓝牙模块收到后返回OK

蓝牙模块出厂设置iBeacon功能是关闭的,所以我们需要打开它。

AT+IBEA1

返回OK+Set:1,之后重新上电或者输入

 

AT+RESET

这样才生效。

使用python 将树莓派4 蓝牙做低功耗外围设备_重启_06

到这里,iBeacon已经完成了,如果是ios手机的话,下载Locate iB即可探测到刚才建好的iBeacon。

(如需转载,请注明出处及作者Kent Wu,邮箱kent0113@163.com)

使用python 将树莓派4 蓝牙做低功耗外围设备_树莓派_07

使用python 将树莓派4 蓝牙做低功耗外围设备_iBeacon_08