『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 782|回复: 1

[已解决] MQ5联动LED和蜂鸣器问题请教

[复制链接]

4

主题

16

帖子

176

积分

注册会员

Rank: 2

积分
176
金钱
160
HASS币
0
发表于 2023-3-27 14:46:50 | 显示全部楼层 |阅读模式
本帖最后由 rundyxing 于 2023-3-27 15:38 编辑

各位大神求助,目前正在学习esphome,在mq5联动灯光和蜂鸣器的测试中,有如下问题求助:总体需求是灯光和蜂鸣器随mq5触发启动和停止,灯光是闪烁,蜂鸣器是滴~ 滴~ 滴~
1. 目前代码灯光随mq5触发启动和停止正常,状态是制定的闪烁。这个没问题。
2. 蜂鸣器这块目前是可以随mq5触发,但是有两个问题:一个是触发期间如果时间较长,则只会执行代码中的那三声。另一个问题是如果出发时间短,比如1秒,则代码中的三声也是要执行完,而不是立即停止。
目前的代码如下:

esphome:
  name: mq5warning
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.111.159
    gateway: 192.168.110.1
    subnet: 255.255.254.0

web_server:
  port: 80

# Example configuration entry
i2c:
  sda: D2
  scl: D1
  scan: False

light:
  - platform: monochromatic
    output: pwm_output
    name: "kitchen_light_strip"
    #default_transition_length: 2s
    id: kitchen_light_strip
    restore_mode: ALWAYS_OFF
    # default_transition_length: 0s
    effects:
      - pulse:
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 0.5s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s   


binary_sensor:
  - platform: gpio
    pin: D5
    name: "kitchen_MQ5"
    device_class: gas
    filters:
      - invert:
      - delayed_on: 100ms
    on_press:  
      then:
        - light.turn_on:
           id: kitchen_light_strip
           brightness: 100%
           effect: "Fast Pulse"


        - output.esp8266_pwm.set_frequency:
            id: buzzer
            frequency: 200Hz
        - output.turn_on: buzzer
        - delay: 500ms
        - output.turn_off: buzzer
        - delay: 2s           
        - output.turn_on: buzzer
        - delay: 500ms
        - output.turn_off: buzzer
        - delay: 2s           
        - output.turn_on: buzzer
        - delay: 500ms
        - output.turn_off: buzzer
        - delay: 2s   

    on_release:   
      then:
        - light.turn_off: kitchen_light_strip
        - output.turn_off: buzzer


# Enable logging
logger:


# Enable Home Assistant API
api:

ota:

output:
  - platform: esp8266_pwm
    pin: D8
    #frequency: 1000 Hz
    id: pwm_output

  - platform: esp8266_pwm
    pin: D6
    id: buzzer


回复

使用道具 举报

4

主题

16

帖子

176

积分

注册会员

Rank: 2

积分
176
金钱
160
HASS币
0
 楼主| 发表于 2023-3-27 15:38:19 | 显示全部楼层
已经解决,但不一定是对的,希望大神指点。
esphome:
  name: mq5warning
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.111.159
    gateway: 192.168.110.1
    subnet: 255.255.254.0

web_server:
  port: 80

# Example configuration entry
i2c:
  sda: D2
  scl: D1
  scan: False
  
light:
  - platform: monochromatic
    output: pwm_output
    name: "kitchen_light_strip"
    #default_transition_length: 2s
    id: kitchen_light_strip
    restore_mode: ALWAYS_OFF
    # default_transition_length: 0s
    effects:
      - pulse:
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 0.5s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s   


binary_sensor:
  - platform: template
    id: buzzer_repeat
    internal: True
    on_press:
      while:
        condition:
          binary_sensor.is_on: buzzer_repeat
        then:
          - output.turn_on: buzzer
          - output.esp8266_pwm.set_frequency:
              id: buzzer
              frequency: "2000Hz"
          - output.set_level:
              id: buzzer
              level: "50%"
          - delay: 200ms
          - output.turn_off: buzzer
          - delay: 200ms
    on_release:
      then:
        - output.turn_off: buzzer
  
  
  
  - platform: gpio
    pin: D5
    name: "kitchen_MQ5"
    device_class: gas
    filters:
      - invert:
      - delayed_on: 100ms

    on_press:
      then:
        - light.turn_on:
            id: kitchen_light_strip
            brightness: 100%
            effect: "Fast Pulse"
        - binary_sensor.template.publish:
            id: buzzer_repeat
            state: True      
    on_release:
      then:
        - light.turn_off: kitchen_light_strip
        - binary_sensor.template.publish:
            id: buzzer_repeat
            state: False


# Enable logging
logger:


# Enable Home Assistant API
api:

ota:

output:
  - platform: esp8266_pwm
    pin: D8
    #frequency: 1000 Hz
    id: pwm_output

  - platform: esp8266_pwm
    pin: D6
    id: buzzer
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-3 02:24 , Processed in 0.045964 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表