본문 바로가기

집 꾸미기/스마트한 집

usb 선풍기를 스마트 선풍기로 개조하기

반응형

부제: usb 선풍기를 wifi 로 제어하고 home assistant 에 연동하기 (ESPHome, Wemos d1 mini)

 

집에 장미를 들였는데 흰가루 병에 걸렸다.

수국 흰가루병

 

 

바람을 자주 쐬어줘야 좋다는 이야기를 듣고 굴러다니는 usb 선풍기를 찾아서 켜주곤 했는데,

매일 켜고 끄는것도 일이어서 자동화를 시동해 보았다.

 

먼저 선풍기를 뜯어서 어떤식으로 동작을 해야할지 생각해야 한다.

딱 보니까 뜯어서 푸쉬버튼을 누르는 동작을 릴레이나 트랜지스터로 구현하면 될 것 같다.

 

선풍기

 

 

뜯어봤다.

 

usb를 통해서 5v 입력을 받는데 여기서 선을 따서 wemos d1 mini(esp8266) 을 구동하면 될듯 싶다.

그리고 푸쉬버튼과 기판 프린팅을 보고 연결해야 할 부위를 찾는다.

 

아래 그림에서 보듯이 푸쉬버튼을 누를때 하나가 빨간선 두쌍을 연결해준다.

 

 

준비물

  1. 인두
  2. wemos d1 mini  ( + 롬라이팅용 usb 케이블 )
  3. 2n2222A BJT 트렌지스터 3개 또는 필요 수량
  4. 저항 1k옴 전후 3개 또는 필요 수량
  5. 연결용 전선
  6. 잘 셋팅된 Home assistant 와 esphome 애드온

 

 

 

작업사진

wemos d1 mini d5 와 d6 를 켜줄때만 push 버튼 양단이 통전 되도록 해준다.

보통때는 잘 열리지 않도록 d5, d6에 저항을 물려줬다.

 

 

 

D5(또는 D6) 가 트랜지스터 2번 핀에 연결되어야 하고, 1,2 는 push 버튼 양단에 연결해주면 된다.

보통은 3->1 방향으로 전류가 흐르기 때문에 3번을 ground 에 연결해주면 된다.

(반대로 해도 큰 상관 없을 것 같다.)

 

트랜지스터 구조

 

 

건전지 넣는 위치를 뜯어서 선을 빼주자.

 

 

 

이제 esphome 롬파일을 만들자.

 

esphome 에 들어가서 우측 하단 +를 눌러서 Create New node 를 해보자.

1. node name은 원하는 내용을

2. device type 은 wemos D1 mini 를 고르고

3. wifi는 사용하는 와이파이를 누르고 

4. finish 를 하면 완성이 된다.

 

그리고 아래와 같이 넣어줬다. 버튼 하나는 켜고 하나는 끄는 버튼을 할당해줬다.

당연히 계속 버튼이 눌려있으면 안되니까 시간 간격을 두고, 혹시 모르니 두번씩 눌리게 했다.

 

 

esphome:
  name: usb_fan
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: "YOUR_SSID"
  password: "YOUR_PASSWORD"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Mini-Usb-Fan Fallback Hotspot"
    password: "YByZ8eeeekW"

captive_portal:

# Enable logging
logger:
  level: DEBUG #기본값

# Enable Home Assistant API
api:
  password: "YOUR_API_PASSWORD"

ota:
  password: "YOUR_API_PASSWORD"


switch:
- platform: gpio
  pin: D6
  id: btn_off
- platform: gpio
  pin: D5
  id: btn_on

- platform: template
  name: "Usb Fan"
  optimistic: true
  turn_on_action:
  - switch.turn_on: btn_on
  - delay: 0.1s
  - switch.turn_off: btn_on
  - delay: 0.3s
  - switch.turn_on: btn_on
  - delay: 0.1s
  - switch.turn_off: btn_on
  turn_off_action:
  - switch.turn_on: btn_off
  - delay: 0.1s
  - switch.turn_off: btn_off
  - delay: 0.3s
  - switch.turn_on: btn_off #press off button twice just in case
  - delay: 0.1s
  - switch.turn_off: btn_off

 

 

 

이제 home assistant 에서 통합구성요소를 추가하면 된다.

esphome 을 찾아서 선택하고 위에서 만들어진 녀석 ip를 넣어주면 된다.

 

 

이제 home assitant 에서 switch 로 인식이 된다.

끄고 켜는것 모두 잘 된다. 이제 자동화나 스케쥴 등록이 가능하다.

 

 

반응형