这是一个四部分的教程。在第 1 部分中,您将学习如何将树莓派连接到外部扬声器,以及如何通过 Python 脚本通过 VLC 播放音乐片段。第 2 部分全部涉及添加 16X2 LCD 屏幕和调整对比度。在第 3 部分中,我们添加了超声波传感器并学习了如何测量距离。在第 4 部分中,我们通过使用超声波传感器触发音乐和倒数显示,将所有内容组合在一起。
建立洗手计时器需要具备的条件
- 树莓派 3B 或更高版本 (3B +, 3A + 或 4)
- 电源 / 键盘 / 鼠标 / 显示器 / HDMI 电缆 (适用于树莓派)
- 超声波传感器
- 带有 I2C 背包的 16x2 液晶屏
- 小螺丝刀可调节 LCD 屏幕的对比度
- 3.5 毫米公对公音频电缆
- 带有 3.5 毫米辅助音频插孔的便携式扬声器
- Breadboard
- 跨接线组 (M 对 F , M 对 M 和 F 对 F)
- 2 个电阻 (330 欧姆和 470 欧姆)
可选: 3D 打印洗手盒
此设计还需要 4 个 M2.5 螺钉和相应的螺母来固定 LCD 屏幕,并需要 4 个短 M2.5 螺钉来将树莓派固定到基座上。
第 1 部分:在树莓派洗手计时器上播放音乐
将扬声器连接到树莓派的 3.5 毫米插孔。如果通过 USB 充电,则可以从 Pi 的一个端口为其供电。
1 引导您的树莓派。
2 右键单击扬声器图标以选择” 模拟” 输入。您会在屏幕的右上角找到它。设置” 模拟” 输入后,左键单击同一扬声器图标可将音量设置为中间 (或您想要的水平)。
4 打开终端
5 输入以下命令安装 VLC for Python
sudo apt install python-vlc
6 克隆此存储库
git clone https://github.com/carolinedunn/Handwashing_Timer_Display
7 导航到您刚刚创建的目录
cd Handwashing_Timer_Display
8 通过输入终端测试您的设置
python test_music.py
如果有音乐播放,则转到下一步;否则,请返回并进行故障排除。
注意:音乐应该播放 (20 秒剪辑),然后每首歌曲之间要有 5 秒的暂停。
故障排除技巧–检查连接。确保扬声器已开启。检查您的网络连接。 奖金:您可以通过替换音乐文件来替换自己的音乐,但请保持 1.mp3 、 2.mp3 等命名约定,以免重写代码。我使用 Audacity 将音乐削减到 20 秒。本教程中包含的音乐是免版税的音乐。
您需要关闭树莓派并拔下电源。
第 2 部分:树莓派洗手计时器的 LCD 显示
从 LCD 屏幕上的 I2C 背包 (使用 4 条母对母跳线):
1 将 GND 连接到树莓派上的接地引脚。
2 在树莓派上将 VCC 连接到 5V (引脚 2)。
3 将 SDA 连接到树莓派上的引脚 3 。
4 将 SCL 连接到树莓派上的引脚 5 。
5 启动您的树莓派
6 从 Raspbery Pi OS GUI 的” 首选项” 菜单中打开树莓派配置工具。
7 在” 接口” 标签上启用”I2C”。
8 从 Geany 的 Handwashing_Timer_Display 文件夹中打开 lcd_disp.py 。最简单的方法是使用文件管理器导航到该文件夹,右键单击该文件并选择 Geany 作为编辑器。
9 点击 Geany 中的纸飞机图标,运行 lcd_disp.py 。
现在,您应该在 LCD 屏幕上看到文本。
10 使用螺丝刀在屏幕背面调整对比度转盘,直到您对输出感到满意为止。
关闭您的树莓派并拔下电源,以进行下一步。
第 3 部分:树莓派洗手液上的超声波传感器
1 将母对公跳线连接到超声波传感器的每根导线上。
2 按顺序将跳线的公端插入面包板。
3 将超声波传感器的 VCC 引脚连接到树莓派的 4 引脚以获取 5V 电源。
4 将 TRIG 连接到树莓派的 GPIO 18 。
5 将 ECHO 连接至 330 欧姆电阻器。
6 将电阻器的另一端连接到树莓派的 GPIO 24 。
7 将 330 欧姆电阻器中的 470 欧姆电阻器连接到 GND 轨。
8 将 GNC 引脚从传感器连接到 GND 导轨。
侧面说明:对于测试,我发现将超声波传感器的 4 针直接插入面包板并从那里进行连接是最容易的。在实际操作中 (实际洗手),在超声波传感器和面包板之间添加 4 条公对母跳线,使我能够将传感器放置在最佳位置。
9 启动您的树莓派
10 打开超声.py ,以使用 Geany 进行编辑。
11 点击 Geany 中的纸飞机图标,运行 ultraonic.py 。
当您将手握在超声传感器上时,应该测量传感器和手之间的距离并显示在终端中。
12 按 Ctrl-C 退出程序。
第 4 部分:将所有内容组合在一起
1 测量 / 估算您的手与超声传感器之间的距离,以确定要设置为触发传感器的距离。
2 在 Geany 中打开 ultrasonic_display 进行编辑
3 将第 51 行上的 dist \ _trig 调整为您确定的触发传感器的距离 (以英寸为单位)。默认值为 7 英寸。
4 保存您的更改。
5 运行 ultrasonic_display
6 将手放在超声波传感器上,直到达到触发洗手计时器的设定距离。一旦您的手移到比在第 51 行上设置的距离近的位置,音乐就应该开始播放,并且显示屏应该倒计时。
歌曲结束后,显示屏应显示为:
“很好!
全干净”
在返回” 准备运动” 状态之前,显示屏应暂停至少 5 秒钟。这样可以防止洗手定时器触发得太频繁。
洗手传感器复位后,显示屏上应显示” 准备运动”。
7 单击停止图标以停止洗手计时器。
8 如果希望每次启动计算机时都能够运行树莓派,请设置超声 \ _display.py 以运行。我们在此处说明了如何设置脚本以在树莓派上启动。
旁注:第 2 部分和第 3 部分似乎都可以与树莓派 OS (Thonny 和 Geany) 中的两个默认 Python 应用程序一起使用。 python 代码 test \ _music.py 和 ultrasonic \ _display.py 不适用于 Thonny ,因为 Thonny 无法调用 VLC 播放音乐文件。请使用 Geany 或在终端命令中运行 > python 超声 \ _display.py
可选:当您的项目开始运作时,您可以 3D 打印一个外壳来封装洗手计时器。
设置洗手定时器以在 Boot 上运行
此步骤将树莓派设置为始终运行 ultrasonic \ _display.py 脚本以在引导时运行。
1 打开终端
2 输入 sudo nano /home/pi/.bashrc
3 在.bashrc 的底部输入以下文本
python /home/pi/Handwashing_Timer_Display/ultrasonic_display.py
4 按 Ctrl-X 退出,按 Y 保存。
5 重启您的 Pi 。 重启您的 Pi 。
Pi 重新启动后,它将每次自动运行 ultrasonic_display.py python 脚本。
享受您的 20 秒洗手计时器!