가제트연구소

스마트 TV에 절전 기능을 넣어 봅시다 : 아두이노, IR, PIR, OLED(1/2) 본문

소일거리/아두이노

스마트 TV에 절전 기능을 넣어 봅시다 : 아두이노, IR, PIR, OLED(1/2)

가제트연구소장 2022. 5. 8. 20:39

아이들이 있다보니 우리집 TV는 늘 혼자 켜져있습니다.

우리집 전기 요금의 상당한 지분을 가지고 있는 TV...

 

거실에 사람이 없으면 자동을 꺼지도록 스마트BOX를 만들어 보겠습니다.

 

※ 포스팅에서 언급한 모든 소스는 첨부 파일로 공개하니 자유롭게 사용하세요.

필요한 재료들

1. 아두이도

2. PIR 센서

3. 적외선 다이모드(IR)

3. OLED

 

PIR 센서

사람이 없는 상태 감지는 PIR 센서를 사용합니다.

보통 아래와 같이 2가지 형태를 가지는데, 나중에 케이스에 탑재할 것을 고려해서 오른쪽 형태의 센서를 사용합니다.

PIR 센서는 digitalRead 함수로 간단하게 센서값을 읽어 올 수 있습니다.

 

TV 끄기 : IR 다이오드, IR Remote

PIR 센서값에 따라 TV를 꺼는 방법은 쉬운 밥은 릴레이나 SSR로 전원을 직접 차단하는 방법입니다.

그런데 이 방법의 문제는 전원을 자동 차단 후 나중에 TV를 다시 보려고 할 때 TV 리모컨으로 TV를 켜지 못하고 다른 방법으로 전원을 다시 연결해 주어야하는 불편함을 가집니다.

그리고, 요즘 스마트 TV는 TV에 별도의 O/S를 가지고 있어 TV 전원을 강제적으로 차단하고, 자주 반복되면 TV에 영향을 줄 수 있어 권장할 방법은 아님니다.

 

그리서 리모컨으로 TV를 꺼는 효과를 주기 위해서 적외선을 송신할 수 있는 IR 다이오드와 아두이노 IR Remote 라이브러리를 사용합니다.

LG 스마트 TV를 꺼는 소스 코드는 다음과 같습니다.

이 중 '0x20DF10EF'가 LG 스마트TV의 전원 버튼 시그널입니다. TV 벤더마다 이 코드가 다르니 TV에 맞게 사용하시면 됩니다.

 

감지 상태 출력 : 0.96 인치 OLED 디스플레이

PIR 센서의 감지 상태를 보여주기 위해 0.96인치 OLED 디스플레이를 사용했습니다. 대략 3000원 정도의 저렴한 가격으로 구매가능한데, DIY 제품의 완성도를 높여 주는 좋은 아이템입니다.

 

OLED 디스플레이는 SPI 타입과 I2C(IIC) 타입이 있는데, I2C 방식이 선 4개로 연결할 수 있어 보다 간편하게 사용할 수 있습니다.

 

I2C 타입은 SCL, SDA, VCC, GND 4개의 단자를 가지며, 아두이노의 SCL, SDA 단자와 연결하고, VCC는 아두이노의 3.3V 핀에 연결, GND는 아두이노 GND에 연결하면 됩니다.

OLED 제어는 Adafruit_GFX 라이브러리를 사용하면 간단

하게 컨트롤 할 수 있습니다. 아래 내용은 화면에 간단한 원을 그리는 소스입니다. 센서의 상태값을 그래픽으로 보여주는 방식입니다.

 

회로 구성

PIR 센서는 좌우측으로 감지 범위를 늘리기 위해서 2개를 적용하였고, IR 다이오드, OLED 디스플레이도 연결하였습니다.

 

테스트 결과

PIR 센서이 감지 범위에 한계가 있어 절반의 성공을 보였습니다.

대략 1m 이내 거리에서는 작은 움직임을 잘 감지하였고, 1m~2m 거리에서는 아주 큰 동작을 할때만 감지하고, 2m를 넘어가니 감지 자체가 불가능했습니다.

 

TV와 소파 사이가 3m~4m 거리라서 지금 적용한 PIR 센서로는 부족해 보였습니다.

대체할 수 있는 센서를 알리 익스프레스에서 찾아보니 5.8Ghz 대역의 마이크로웨이브를 사용하는 Radar 센서가 있어 주

문을 넣어 보았습니다. 가격도 4천원 대라 좋은 선택일 듯 합니다.

5월 26일 배송이니 배송 받으면 2차 포스팅 하도록 하겠습니다.

 

소스 코드

관련 전체 소스코드는 첨부 파일로 올렸습니다. 소스 코드 설명은 아래 영상으로 대체합니다.

AutoPowerOff.zip
0.00MB