TV 리모컨으로 조명과 선풍기 제어하기: 심플 DIY IR 프로젝트
부품 및 소모품
| 부품 | 수량 | 비고 |
| IR 수신 모듈 (TSOP 계열) | 1 | 38kHz 변조 신호 수신 |
| 아두이노 우노 | 1 | 영구 납땜 회로 시 ATmega328P 단독 사용 가능 |
| HL-525 릴레이 모듈 (2채널 이상) | 1 | 타 릴레이 보드도 사용 가능 |
필요한 도구
프로젝트 개요
소파에 앉아 TV 리모컨으로 방 조명과 선풍기를 무선 제어하는 프로젝트입니다. 단거리 무선 통신에 가장 적합한 TSOP 수신기를 선택했습니다.
선택 이유
- 매우 저렴함 (인도 기준 약 10루피, 한국에서도 수백 원대)
- 송신기(TV 리모컨)가 이미 집에 있음
TV 리모컨은 38kHz 주파수로 적외선 신호를 보내며, 구입한 TSOP 수신기는 36~40kHz 대역을 수신합니다.
TSOP 수신기 핀아웃 (모델별로 다를 수 있음)
TV 리모컨은 고주파로 IR LED를 ON/OFF하며 펄스를 보냅니다. IR LED가 ON이면 TSOP 출력은 LOW, OFF면 HIGH (유휴 상태도 HIGH)입니다.
2채널 릴레이 모듈 (HL-525)
이 릴레이 모듈은 입력 신호가 LOW일 때 릴레이가 켜집니다 (스위치 '닫힘').
TV 리모컨으로 릴레이 ON/OFF하는 영상을 촬영했습니다. 작동하는 연장 코드와 전구 소켓이 없어 램프 점등 영상은 추후 올리겠습니다. 램프-릴레이 연결 방법은 다음과 같습니다:
릴레이를 이용한 램프 제어 회로
제 모듈도 왼쪽부터 NC(상시연결), COM(공통), NO(상시개방) 순입니다. 전원 라이브 선을 그림과 같이 전구에 연결하세요. 전체 프로젝트를 납땜하여 스위치 박스 내부에 설치하면 형광등, 선풍기, 스탠드 등을 제어할 수 있습니다.
중요: 릴레이 모듈 왼쪽에 DVcc, Vcc, GND 3핀이 있습니다. 점퍼를 제거하고 DVcc에 별도 5V를 공급하세요. DVcc는 옵토커플러와 연결되어 있어 고전압 스파이크로부터 마이크로컨트롤러를 보호합니다.
코드
주의: 본인의 리모컨 버튼마다 다른 HEX 코드가 나옵니다. 아래 코드의 코드는 설명용 예시입니다.
이 코드는 "IRremote" 라이브러리를 사용합니다. 라이브러리 매니저에서 설치하세요.
릴레이는 LOW 신호에서 켜집니다. 특정 HEX 코드 수신 시 1번 릴레이 핀에 LOW, 다른 코드 수신 시 HIGH로 릴레이 OFF.
#include <IRremote.h>
#include <IRremoteInt.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(3, OUTPUT); // 릴레이 1 제어 핀
pinMode(4, OUTPUT); // 릴레이 2 제어 핀
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
translateIR();
irrecv.resume();
}
}
void translateIR() {
switch(results.value) {
case 0x80BFC13E: digitalWrite(3, LOW); break; // 릴레이 1 ON
case 0x80BF4BB4: digitalWrite(3, HIGH); break; // 릴레이 1 OFF
case 0x80BF837C: digitalWrite(4, LOW); break; // 릴레이 2 ON
case 0x80BF9966: digitalWrite(4, HIGH); break; // 릴레이 2 OFF
}
}
회로도
IR 수신기: OUT→핀11, VS→5V, GND→GND. LED 캐소드→핀3 (LOW 시 점등)
LED 대신 릴레이 핀 연결. DVcc에 별도 5V 공급 필수
시리얼 모니터에 리모컨 버튼별 HEX 코드 표시
첨부 파일: ir.fzz (프릿징 파일), 데모 영상 2개