在我年轻的时候,我最喜欢的摔跤手绝对是被称为“Heartbreak Kid”的Shawn Michaels。他是一个伟大的运动员和表演者,所做的一切都非常有趣。
从他进入大楼的那一刻开始,这首音乐响起:
这让我开始思考,如果Shawn Michaels可以以这种方式入场,为什么我不能?
是的,有了Raspberry Pi和Python chops,像我(或者您!)这样的家伙也许就可以拥有登场音乐了。 Raspberry Pi如何检测出您的登场?这里有几种选择。
我们可以检测出您的手机是否连接到无线网络。这很有用,因为Raspberry Pi可以确认是否是您本人在进入(而非您的室友或家人)。
缺点是它对您的距离的测定不太精确。我的意思是,这是登场音乐,对吗?它应该在您进门时开始响起。
您也可以改用PIR运动传感器。这可以将音乐与入门动作精确匹配,不过这种方法无法对正在进入的人作出区分。
所以,我们可以将这两者结合起来。Raspberry Pi将会在您的手机连接到无线网络时检测出您已经到家,然后等待传感器来检测出您进入的确切时间。
如果您更倾向于使用其中的一种,可以直接去除掉其他部分。 使用Python Subprocess模块本项目还会引入Python的subprocess模块。该模块在标准库中,您无需进行安装。
使用该模块,我们可以在Python内部运行shell命令。这非常方便。如果您已经知道这些命令行是如何执行操作的,只需直接运行该命令即可。
我们将使用的两个命令是mpg123和ping。
mpg123是一个用于播放mp3文件的命令行实用程序。我们需要安装mpg123。
您不需要安装ping,系统中已经有了。这是一个简单的工具,用于检查远程服务器或设备是否处于连通状态并作出响应。我们将使用它来检查您的手机是否连接到了您的无线网络。 所需组件对于本项目,您将需要以下组件: 带有电源、无线网卡以及一个
SD 卡的
Raspberry Pi | | 一个PIR运动传感器
(我使用的是XC-4444) | | Shawn Michaels所演唱的Sexy Boy高品质MP3文件(或者您也可以选择其他非常钟意的歌曲) | 从Raspberry Pi播放音乐的某种方式。连接到HDMI端口的家庭娱乐系统是比较理想的 |
您还需要一部智能手机、一个无线家庭网络和3根公对母跳线。
确保您的手机设置为自动连接到您家里的无线网络,并且没有使用任何省电设置,以防手机在不使用时禁用无线网络。
这里我们假设您已经了解PIR运动传感器和GPIO Zero库了。如果没有,请先查看这些相关介绍。您将从中了解该设备的工作原理,在本项目中我们将以大致相同的方式对其进行接线。
本项目用Raspberry Pi OS Buster进行了测试,但是旧版本的Raspbian应该也没问题。我们使用的Python模块和Linux命令都是存在已久的了。 设置Raspberry Pi我们首先为这个项目创建一个目录,并进入该目录。打开终端并输入:
mkdir ~/entrancemusic
cd ~/entrancemusic
用一种您喜欢的方式将mp3文件复制到此目录中。
然后用以下命令更新您的系统并安装mpg123:
sudo apt update && sudo apt upgrade -y
sudo apt install mpg123 连接PIR运动传感器这次我们不使用面包板。对于我们的项目来说,面包板将会产生阻碍。
拿起您的PIR运动传感器和跳线。将传感器的电源引脚连接到Raspberry Pi的5V电源引脚。然后将传感器的接地引脚连接到Raspberry Pi上的接地引脚。
然后将数字输出连接到一个GPIO引脚。我使用的是引脚24,因为它的位置比较方便。
这就是运动传感器的全部接线过程。将其摆放为面向您将要进入的门口。 为您的智能手机保留IP地址几乎所有家庭无线网络都使用DHCP来为所连接的新设备自动分配可用的IP地址。这很方便,因为它很可靠并且无需让您进行管理。
这也意味着特定设备的IP地址可能会不时发生更改。对于本项目,我们希望您的手机始终分配到同一个IP地址上,并且没有其他设备使用该地址。
大多数路由器为一个设备分配的IP地址至少会持续一天左右的时间。因此,如果您只打算执行本项目一次,那么可以愉快地继续进行,不必再为此困扰。
但是如果您想多次运行此脚本,那么您应该为您的设备保留一个IP地址。您可以通过登陆无线路由器的管理面板来执行此操作。不同的路由器对此的处理方式略有不同,但通常操作方式都比较容易。如果您遇到了困难,请使用搜索引擎查找您设备的手册。
我的手机保留的IP地址为192.168.0.5。您的IP地址可能会有所不同,只需按照说明对其进行替换即可。
当还有一点是—您是否有使用SSH通过本地网络访问Raspberry Pi的习惯?请也为其保留一个IP地址。如果它的IP地址是不会改变的,那就更方便了。 有奖问答:使用Ping检测您的手机是否已连接的代码 请规范答题,连续答错将无法获得奖励哦~
|