에어컨 원격제어
개요
나랑 아내는 낮에는 회사에 있지만 호두는 이 더운 날씨에 집에 있어야한다. 그래서 늘 외부에서 집안 온도를 모니터링하고 에어컨을 조작할 수 있는 방법이 필요하다고 느끼긴 했었지만 귀찮아서 차일피일 미뤄왔다. 그러다가 밍기적거리면서 우선 집안 온습도를 모니터링하는 부분을 만들었는데, 가는 날이 장날이라고 만들어둔 다음날 아침 출근길에 에어컨 끄는 걸 잊고 그냥 나와버린 것이다!!
그간 몽총하게 미뤄왔던 나의 게으름을 반성하지 않을 수 없게 되어버린 것이다... 그래서 만들어본 에어컨 원격제어 리모컨 개발기다.
적외선 리모콘의 원리
에어컨을 사면 리모콘을 같이 준다. 적외선 리모컨이다. 따라서 우리는 이 리모컨 신호를 똑같이 적외선으로 에어컨에 쏴주면 멍청한 에어컨을 속여서 동작시킬 수 있다.
그럼 이 리모컨은 어떤 원리로 작동할까?
리모컨의 버튼을 누르면 리모컨은 앞에 달린 적외선 LED를 통해 빛으로 신호를 발싸한다. 그러면 에어컨에 있는 적외선 수신부가 그 신호를 읽고 거기에 맞는 동작을 하는 것이다. 여기까진 아주 간단한 얘기지...
캐리어 주파수
리모컨의 빛은 특정 주파수대로 깜빡여야 한다. 신호와는 별개로 빛이 깜빡이는 빈도가 정해져있는데, 이 빈도를 맞춰주지 않으면 아무리 신호를 똑바로 보내도 에어컨은 '아 나한테 하는 말이 아닌가?' 하고 무시해버린다. 이걸 캐리어주파수라고 하는데 대부분의 가전제품은 38 ~ 40 khz 대역을 사용한다. 샘숭 에어컨도 38khz를 사용하기 때문에 빛이 켜져있는 동안은 초당 3만 8천회의 빈도로 빛을 깜빡깜빡해주면 된다. 아주 조금 어긋나는 거 정도는 보통 관용있게 받아들여주기 때문에 안심해도 된다.
통신 프로토콜
리모콘과 가전제품의 통신에 사용되는 규약에는 사실 딱히 표준이랄 게 없기 때문에 각 회사마다, 그리고 각 제품마다 지 멋대로 정해놓은 규약대로 통신을 한다. 그나마 TV같은 애들에 사용되는 신호들은 대체로 규격화가 되어 분석된 지 오래기 때문에 만능리모콘 같은 걸 집앞 수퍼에서 단 돈 몇천원에 살 수 있지만 에어컨은 좀 다르다.
내가 쓰는 샘숭 에어컨의 경우 리모컨 신호를 직접 받아서 여러가지로 뜯어본 결과와 웹서핑하면서 찾아낸 정보들을 통해 대략적인 프로토콜을 확인할 수는 있었지만... 멍청한 삽질이었다. 나는 그냥 켜고 끄기만 하면 되는데 왜 이런 짓을 했는지.....
(위와 같은 신호를 뽑아내기 위해 아주 많은 삽질이 필요했지만... 몽총한 짓이었따...후새드)
그냥 리모컨에서 나오는 전원 켜지는 신호와 꺼지는 신호를 복사해뒀다가 에어컨에 쏴주기만 하면 된다.
재료
mcu(마블 시네마틱 유니버스 아님)
집에서 굴러다니는 보드들 중에서 도무지 쓸 일이 없는 아두이노 나노를 하나 쓰기로 했다. 프로 미니 같은 애가 더 작긴 하지만 라즈베리파이와 usb 시리얼 통신을 하기 위해서는 usb 인터페이스가 내장된 보드가 편하기 때문이다.
그 외 재료
IR LED가 우선 필요하다. 이건 싸다. 개당 350원이었다. 더 싼 것도 찾아보면 나올거다 아마..
그리고 전선쪼가리랑... 1옴, 330옴 저항이 하나씩 들었고 트랜지스터(MPS2222A)도 하나 썼다.
적외선 송신부 제작
우선 IR LED를 아두이노로 켜기 위한 간단한 회로를 만들어서 기판에 부품들을 실장한다...고 쓰면 있어보이겠지? 후후후... 여튼 기판에 회로대로 때워 넣고, 아두이노와 연결한다.
아두이노에는 serial을 통해 입력을 받아서 led를 제어하는 간단한 프로그램을 넣으면 끝.
그렇게 만들어진 적외선 리모컨 모듈(!)을 라즈베리파이의 USB 포트에 꽂아넣으면 적외선 송신 준비 완료다.
웹 서버 제작
펫츠뷰 애견캠 에서 만들어서 쓰고있던 라즈베리파이 서버에 API를 추가해서 인증된 사용자로부터 특정 요청이 오면 시리얼 포트를 통해 아두이노로 신호를 보내는 기능을 추가했다. 그리고 프론트엔드에 에어컨 on / off 버튼을 넣어서 버튼이 눌릴 때 해당 요청을 보내도록 하면 끝! 아아아주 간단하지 않을 수 없다!
케이스 제작
사이즈를 재서 단순하게 모델링해서 3D 프린터로 뽑아서 케이스를 만들었다. 아주아주 앙증맞은 제어기가 되어서 매우 흡족!
결과
이제 회사에 있을 때나 바깥에 있을 때도 집안 온도를 보면서 에어컨을 맘대로 껐다 켰다 할 수 있게 되었다. 그 후로 낮에 집 온도가 너무 올라가면 에어컨을 잠깐씩 켜주면서 집을 적당히 쾌적하게 해주고 있는데, 호두한테 소감을 물어볼 방법이 없는 관계로 가장 큰 수혜 당사자의 총평을 들을 수 없는 점이 아쉽다.
나나 아내의 경우에는 리모컨 찾아 헤매이지 않고 에어컨을 맘대로 조절할 수 있는 점도 그렇고 외출했다가 돌아가는 길에 적당히 미리 에어컨을 켜는 등 편리한 점이 많아서 아주 만족하고 있다. 특히 나는 그간 미루고 미뤄왔던 거 하나를 해치워서 어찌나 후련한지...헤헿
사족
이번에 만든 송신기는 에어컨 뿐만 아니라 적외선 신호를 받는 다른 기기들도 제어할 수 있다. 티비, 셋탑박스같은 것들... 당장은 필요가 없어서 해당 기기들을 제어하는 명령 코드는 넣지 않았지만, 혹시나 필요해진다면 쉽게 집안의 다른 기기들을 제어할 수 있다는 점은 아주 큰 메리트라고 본다. 적외선은 지향성이 있기 때문에 그런 형태의 만능 리모콘을 만들게 된다면 적외선 LED를 몇 개 더 붙여서 사방팔방으로 적외선을 쏘게 해야 하겠지만.. 뭐 그런건 사실 별로 일도 아니기도 하고..
재료에는 써있지 않지만 적외선 신호를 복사하기 위해서는 적외선 수신 센서 모듈도 하나 사야 한다. 물론 그것도 몇천원 안 하기 때문에 큰 부담은 없다. 요즘 IoT니 뭐니 해서 이런 형태의 원격제어용 리모콘 제품들이 나오고 있던데... 보통 이런 가내수공업 제작품은 단가가 비싸게 마련이지만 이번만큼은 워낙 싼 재료들이라 집에서 만드는 것도 나름 가격 경쟁력이 있다. (인건비 들먹이면 할 말 없지만)