You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Raspberry Pi、SW-420振动传感器与Python的洗衣机检测问题求助

解决SW-420振动传感器检测洗衣机状态时的误报问题

嘿,这个问题我之前帮朋友调试类似的家电振动检测项目时也碰到过——SW-420本质是个触发式振动开关,它的输出是高低电平跳变,很容易被洗衣机运行过程中的短暂停振(比如脱水前的停顿、注水后的间歇)误导,误判成停机状态。给你几个经过实际验证的解决方案:

1. 增加时间窗口滤波(最易实现)

不要仅凭单次传感器状态就判定停机,而是统计一段时间窗口内的振动触发频率。比如设定:只有连续3-5秒内,振动触发次数低于某个阈值(比如2次),才认定为真正停机。

举个简单的Python实现示例,用滑动窗口统计触发次数:

import time
import RPi.GPIO as GPIO

SENSOR_PIN = 17
# 配置参数:5秒窗口内至少触发3次才算有振动
TIME_WINDOW = 5
MIN_TRIGGERS = 3

def setup_gpio():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

def get_vibration_status():
    trigger_count = 0
    start_time = time.time()
    # 在时间窗口内统计触发次数
    while time.time() - start_time < TIME_WINDOW:
        if GPIO.input(SENSOR_PIN) == GPIO.HIGH:
            trigger_count += 1
            time.sleep(0.2)  # 防抖,避免同一振动被重复计数
    return trigger_count >= MIN_TRIGGERS

def main():
    setup_gpio()
    washer_running = False
    try:
        while True:
            has_vibration = get_vibration_status()
            if has_vibration and not washer_running:
                print("洗衣机已启动")
                washer_running = True
            elif not has_vibration and washer_running:
                print("洗衣完成!触发Hue灯泡闪烁")
                # 这里插入你的Hue灯泡控制代码
                washer_running = False
            time.sleep(1)
    finally:
        GPIO.cleanup()

if __name__ == "__main__":
    main()

2. 调整传感器硬件灵敏度

SW-420模块上有个小型电位器,你可以用螺丝刀微调它:

  • 顺时针拧:降低灵敏度,只对较强的持续振动有反应
  • 逆时针拧:提高灵敏度,轻微振动就会触发

现场调试时,可以边拧边观察传感器输出,直到它能过滤掉洗衣机运行时的短暂间歇,同时又能准确捕捉停机后的无振动状态。

3. 引入多维度判断(进阶方案)

如果条件允许,搭配一个电流检测模块(比如ACS712),同时监测洗衣机的电流消耗:

  • 洗衣机运行时,电流会维持在一个稳定区间(比如1-3A,取决于机型)
  • 停机后,电流会骤降到接近0

在Python里通过ADC读取电流模块的数值,把振动状态+电流状态做逻辑与判断,误报率会大幅降低。比如:只有当振动消失+电流低于阈值时,才触发停机动作。

4. 优化状态机逻辑

设计一个简单的状态机来管理洗衣机状态:

  • 初始状态:待机
  • 当检测到连续10秒内多次振动,切换到运行中
  • 只有在运行中状态下,连续10秒无振动,才切换到已完成,触发Hue灯泡闪烁

这种方式能有效过滤掉运行过程中的短暂停振,避免误触发。

内容的提问来源于stack exchange,提问作者Jakov Grams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:48:21