알리에서 저가 5v led strip을 구매 후 usb relay에 연결해 싱크대 수조위에 설치. 조명의 페이드인/아웃 기능이 아쉬워 구글링해보니 esp8266에서 소프트웨어 pwm 컴포턴트를 쓸 수 있었음.
바로 esphome이 플래싱된 usb relay에 pwm 설정하고 테스트해보니 꽤 만족했고 주방 재실센서에 연결해 자동화.
교류전원에 연결되는 led전구는 아쉽게 중간에 AC 디밍 모듈이 필요. 그리고 esp32에선 ESP32 LEDC 컴포넌트를 통해 구현.
usb-relay-1.yaml
esphome:
name: usb-relay-1
area: Kitchen
friendly_name: USB Relay1
esp8266:
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
status_led:
pin:
number: GPIO16
inverted: false
output:
- platform: esp8266_pwm
id: pwm_output
pin: GPIO5
frequency: 1000 Hz
inverted: false
light:
- platform: monochromatic
name: "USB Strip"
output: pwm_output
id: usb
default_transition_length: 1s
- platform: status_led
name: "USB-Relay-2 LED"
restore_mode: ALWAYS_OFF
entity_category: config
pin:
number: 14
switch:
- platform: restart
name: "USB-Relay-1 Restart"
- platform: template
id: "switch1"
name: "USB-Relay-1"
lambda: |-
return id(usb).current_values.get_state();
turn_on_action:
- light.turn_on:
id: usb
turn_off_action:
- light.turn_off:
id: usb
binary_sensor:
- platform: gpio
id: button
pin:
number: GPIO04
mode: INPUT_PULLUP
inverted: True
on_press:
- switch.toggle: "switch1"