구형 공기청정기에 IoT 적용하기
10년 가까이 써온 삼성 공기청정기(AX40H5000GMD)의 용도가 최근 변경됐다. 얼마전까지 아들 방에서 미세먼지 제거라는 본연의 임무를 잘 수행하고 있었지만, 겨울이 오면서 강제환기용 청정기로 쓸 녀석이 필요했기 때문이다.
전열교환기가 없기 때문에 미세먼지가 극성을 부리는 겨울엔 마땅히 환기를 시킬 방법이 없다. 그래서 강제 환기 키트를 구입해 아래와 같이 구성했다. 밖에서 공기를 흡입해 필터를 거쳐 집 안으로 밀어넣는 구조다.
그런데 날씨가 많이 추워지면서 외부 공기를 그대로 집어 넣으니 집이 추워졌다. 그래서 너무 추울 땐 공기청정기를 끄고 싶은데, 이 공기청정기는 IoT 기능이 없는 구식이란 점이 문제다. 추운 베란다에 나가서 일일이 버튼을 눌러 켜고 꺼야한다는 얘기다. 그래서 재주를 좀 부려봤다.
우선 위의 블로그를 참조해서 분해 방법과 내부 구조를 알아봤다. 검색을 통해 대부분의 공기청정기는 12V로 동작하고, 기판에서 PWM 제어로 풍량을 조절한다는 정보도 입수했다.
전원 부분을 열어서 테스터기로 찍어보고 이렇게 ESP32을 연결해서 테스트해봤다. 자세한 설명은 바로 이어서.
전원부서 팬으로 나가는 배선 부분을 자세히 찍은 것. 5핀 커넥터에 4개 선이 연결돼 있다. 맨 오른쪽 빨간선이 12V, 한칸 건너뛰고 그 다음 검은색 선이 그라운드, 그 다음 노란선이 PWM 제어선이다. PWM은 다행이 3.3v였다. Level Shifter 없이 GPIO 핀에 직결해주면 됐다. (레벨 쉬프터 한 보따리 중국서 들어오고 있는 건 비밀!) 그라운드와 PWM 선을 ESP32의 Gnd와 GPIO26에 연결해줬다.
ESP32 구동을 위한 5V 전원은 센서에서 땄다. 주말 오후 잠깐 짬난 사이 작업해서 맘이 급해 센서 사진은 못찍었는데, 이 공기청정기에는 미세먼지 센서와 VOC 센서가 각각 달려있다. 메인 기판서 케이블로 각각 연결된다. 어차피 이제는 둘 다 필요가 없다. (엄밀하게 얘기하면 제어 기판도 필요없다. 오직 12V와 ESP32만 있으면 되니까) 둘 중 3선을 쓰는 VOC 센서를 포기하고 5V와 그라운드를 각각 땄다. 위 사진 3핀 커넥터에서 빨간색이 5v, 파란색이 그라운드다.
esphome으로 뚝딱 yaml 만들어서 펌웨어를 입히면..
이렇게 HomeAssistant에서 제어할 수 있게 됐다. 외부 기온이 0도 밑으로 내려가면 환기청정기를 끄고, 0도 위로 올라가면 켜도록 자동화도 설정했다. 0도가 적절한 기준인지는 모르겠지만...