用树莓派制作洗手计时器

这是一个四部分的教程。在第 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 秒洗手计时器!

分享到