Wow Great Stuff

Sign in Subscribe Useless Projects

The Screamer

你是否想对着你的电子设备大喊大叫? Kevin O'Connor

Kevin O'Connor

2025年2月26日 — 3 分钟阅读 谁还记得 The Clapper? 很难忘记那个 jingle,它永远地印在了我的脑海里。 对于那些不熟悉的人来说,它是一个非常早期的智能开关,允许你拍两次手来打开和关闭开关。 早期版本非常糟糕,然后进行了一些改进,使其变得更好,而且显然他们 仍在销售它! 但是我们生活在2025年! 必须有更好的方法! 你是否曾尝试使用 Siri 或 Alexa 来关灯,结果却只想对着它大喊大叫? 好吧,现在你可以了!音量警告:我在这段视频中大喊大叫。 0:00 /0:14 1× 音量警告:我在大喊大叫

工作原理

对于这个项目,我想要一个“现成的”智能开关,所以我选择了 Sonoff S31。 由于 Sonoff 系列基于 ESP8266 构建,因此它们的可破解性受到广泛好评,因此你可以在它们上轻松运行 ESPHome。 这样你就可以从软件角度更改它的几乎所有工作方式,但仍然保留使其安全使用的硬件工程。 我在这里注意到 - ESPHome 可能有点过头了,但我已经大量使用它,所以我非常熟悉它,并且他们维护了一个 优秀的目录,其中包含有关该设备的信息。 如果你要从头开始使用自己的组件来完成此操作,你可能不会选择此选项。 我选择了使用 I2S 的 INMP441 麦克风,它相对容易设置。 我希望仅仅依靠 S31 的 ESP 来运行我的所有代码,但我认为 S31 没有足够的 GPIO 引脚来支持使用麦克风。 对于该项目的未来修订版,我将找到一个具有足够引脚的设备,以便在一个板上运行整个项目,但对于此版本,我最终使用了一个额外的 ESP32 板来进行尖叫检测。 我将运行尖叫检测的 ESP32 上的 GPIO 端口连接到 S31 上的 TX 引脚,并将其添加到 Sonoff 的 ESPHome 代码中:

binary_sensor:
 - platform: gpio
  pin:
   mode: INPUT_PULLUP
   number: TX
  on_press:
   - switch.toggle: relay

每当在此引脚上接收到信号时,内部 Sonoff 继电器就会切换,连接到它的负载(例如,灯)也会切换。 在 ESP32 上,我编写了 Arduino 代码。 它初始化麦克风并开始采样以按以下顺序检查内容:

如果所有这些问题的答案都是肯定的,我们会将连接到 Sonoff S31 的 TX 引脚的 GPIO 引脚拉低,然后在上面的 ESPHome 代码中切换继电器。 然后,我们将我最喜欢的变量名称 currently_screaming 设置为 True,并稍等片刻作为防抖动周期,然后再重新开始。

为什么你没有...

运行更高级别的程序(例如 Python 或在 Raspberry Pi 上运行)

最终,我希望有人能够插入它并立即开始工作。 完全不需要连接,并且拔下并重新插入它保证使软件堆栈处于某种已知的良好状态。

使用其他尖叫检测方法

可能因为我不知道! 如果你知道任何更好的方法,请告诉我。 这种方法似乎相当准确,但肯定存在一些限制 - 我还不确定是检测方法的问题还是麦克风的限制。

将其与其他软件集成以实现更高级的功能

也许你想通过尖叫来关闭车库门。 也许你通过尖叫来将灯光更改为红色。 可能性是无限的! 也许有一天。 保持 ESPHome 配置的参与使得它很容易与 Home Assistant 集成,“Scream Detected”引脚在那里被公开为一个实体。

为什么?

好问题。 这似乎很有趣,而且人们会从中获得乐趣。 我认为这已经足够了。 如果你:

然后请在这里注册! Subscribe Email sent! Check your inbox to complete your signup. No spam. Unsubscribe anytime. 感谢阅读。

阅读更多

ChatGPT repeating back lies it has been fed to the user. Lie to AI crawlers with Alie Lie to AI crawlers with Alie. By Kevin O'Connor 01 Apr 2025 ### Just show up You have a friend who is: playing in a band and invited you to their show? Just show up. coaching a volleyball team in the semi-finals? Just show up. showing their artwork or photography? Just show up. organizing a professional event/meetup? Just show up. hosting their kid's By Kevin O'Connor 31 Mar 2025 Exposure Learning Exposure Learning It's hard to find time for the important things in life, like wiring your brain to understand 24 hour time or learning numbers in Urdu. What if you just subtly exposed yourself to those things all the time instead, on a device you always use? This is my By Kevin O'Connor 14 Mar 2025 The Internet Desk The Internet Desk I remember The Internet Desk fondly. By Kevin O'Connor 27 Feb 2025 Wow Great Stuff Want to become a better programmer? Join the Recurse Center! Powered by Ghost