가제트연구소

라즈베리파이로 디지털 액자 만들기 본문

소일거리/라즈베리파이

라즈베리파이로 디지털 액자 만들기

가제트연구소장 2016. 1. 6. 21:33


 

라즈베리파이가 뭔지 감 잡아 보려고 시작하는 프로젝트라 기술적 난이도 전혀 없는 초보 프로젝트입니다. 추가적으로 본업으로 IOT 부분에서 보안 취약점이나 침해 시나리오 등이 무엇이 있을지 탐구도 할 겸 등등

 

근데, 라즈베리파이 구성보다 액자 프레임 만드는 과정이 더 힘들었다는 점은 함정입니다.

 

재활용때 나온 작은 가구 하나 업어 와서 톱으로 잘라 액자 프레임을 만들고, 진한 월넛 시트지로 마감했습니다. LCD 패널은 고장난 노트북에서 때어 두었던 무려 15인치 IPS 패널을 사용했습니다.

 

거실 벽에 걸어 두니 동네 아줌마들이 퀄리티 좋다고 칭찬했다고, 마님께서 전해 주셨습니다. 어떤 아주머니는 애기 돌잔치때 빌려달라고 예약까지. ㅎㅎ  

 

 

우선 라즈베리파이 초보의 작품 자랑부터~~~

 

 

[자동꺼짐을 위한 PIR센서가 공돌이 틱해서 강아지 인형으로 위장]

 

 

만드는 과정은 너무 심플하지만 그래도, 저보다 더 초보님을 위해 디지털액자 제작 과정과 기능 추가 사항을 틈틈이 정리해 봅니다.(근데 진짜 디지털액자가 필요하신 분은 구매를 권해드립니다. 많이 저렴합니다. 그리고 유지 보수도 필요없답니다. -.,-) 

 


 

■ 전체 보기

[디지털 액자 전체 구성]

 

[라즈베리 파이 확대 사진]

 

[AD 보드 확대 사진]

 

■ LCD 패널

 

고장난 노트북에서 분리해 둔 패널에 AD 보드 장착해서 구성했습니다. 디지털액자는 시야각이 중요한데, 저가형 노트북 패널은 시야각이 형편없어 디지털 액자용으로는 별로입니다.

 

LCD 패널을 확보했으면 패널을 사용할 수 있도록 AD 보드를 구해야합니다. Gmarket, 옥션등을 보면 보유한 패널에 적합한 AD 보드를 맞춤으로 판매하는 곳 많이 있으니 이를 활용하면 쉽게 액자를 만들 수 있습니다.

 

 

■ 전원 부분

 

LCD 패널은 12V를 사용하고, 라즈베리파이는 5.5V 전원을 사용하니, 디지털액자에 전원선이 두개 필요합니다. 거실 벽에 설치 예정인데 선을 주렁 주렁 달면 보기 싫으니, LCD 패널용 12V 전원을 메인으로 사용하고, 12V 전원을 5.5V로 내려 라즈베리파이 전원으로 사용하도록 전원을 구성했습니다.

 

12V를 5.5 V로 내려주는 방법은 Step-down 회로를 직접 구성해도 되고, 전원 내려주는 모듈(5,000~ 10,000원) 구매해서 사용해도 좋지만, 차량용 USB 시거잭이 짱입니다. 시거잭을 분해해서 기판만 사용하면 손쉽고 아주 저렴하게 5.5V 전원을 해결할 수 있습니다.(시거잭 12V -> USB 5.5 V 변환)

 

화면 중앙의 둥근 USB 기판이 시거잭에서 분리한 전원 모듈입니다.

 

 

■ 사진 관리 

라즈베리파이에서 SMB를 설정하여 디지털 액자의 공유 폴더를 구성합니다. 이제 디지털액자의 사진 관리는 윈도우 탐색기에서 간단하게 정리할 수 있습니다.

 

[디지털 액자 공유 폴더 접근하기]

 

 

■ PIR 센서 기반 절전 기능 구성(2015.12. 26)

 

2주일 정도 디지털액자를 사용해 보니 단점이 하나씩 보이기 시작합니다. 제일 큰 문제가 사람이 있으나 없으나 늘 액자가 켜져있다는 점입니다. 전기 요금도 그렇고, LCD 패널 수명에도 영향을 주겠다 싶어 절전 기능을 구성했습니다.

 

우선 사람 감지를 위해서는 아래 그림과 같은 PIR 센서(2,000원 가량)를 라즈베리파이의 GPIO핀에 연결하고, 간단하게 C 프로그램 작성해서 테스트 해 봅니다. 사림이 있을 경우 LCD 및 백라이트를 켜주고, 없을 경우에는 LCD, 백라이트 꺼버리는 역활을 합니다. 리눅스는 기본적으로 다중 프로그램 실행이 가능하므로 슬라이드 프로그램 실행하고, 절전 프로그램 따로 실행하면 알아서 작동하니 아주 편하게 개발할 수 있어 좋네요.

 

 

[PIR 센서 입력값에 따라 LCD 및 백라이트를 OFF 하도록 구성한 C소스]

                         

 

센서 값 감지는 루프가 아닌, 인트럽트를 사용해야 즉각 반응하는데, 디지털액자는 센서 값에 즉각 반응할 필요가 없어 루프 돌면서 센서값을 읽는 형태로 간단하게 로직을 구성했습니다.

 

센서 주변 반경 5~6M까지 잘 감지합니다. 조금만 움직여도 감지할 정도록 센서가 민감하네요.

정확하게 말하면 적외선을 감지하는 것이 아니고 적외선의 변화를 감지하는 센서입니다. 그래서 사람이 가만히 있으면 감지가 불가하며, 움직인다던지, 팔을 올린다던지 해서 적외선의 변화가 생기면 센서라 반응하는 구조입니다.

 

2분 동안 사람이 감지되지 않으면 LCD 패널 및 백라이트를 꺼버리고, 사람이 감지되면 즉시 백라이트 및 LCD가 켜지도록 간단하게 C 프로그램을 코딩했습니다.

 

소비 전력을 측정해보니 LCD 포함하여 0.89A , 10W 정도를 사용하는데, 모니터를 절전으로 변경하니 0.16A, 1.9W 정도의 소비 전력이 나옵니다. 일단은 뭐 성공적입니다. ㅎㅎ

 

인터넷 정보를 조금 찾아 보니 WiFi 동글이 소비전력 많이 먹는다는 정보가 있어 동글을 빼 보니 0.16A -> 0.13A로 조금 낮아지는데 전체적인 소비 전력을 기준으로 크게 의미없는 수준이라 보여집니다.

 

소비 전력 10W 기준, 하루 7시간 정도 가동된다고 추정해서 한전 홈페이지에서 계산해 보니 한달 전기 요금은 1.140원 정도로 계산되는군요. 라즈베리파이로 디지털 액자를 만드니 본의 아니게 절전형 가전 제품이 완성되는군요. ㅎㅎ

 

■ 자동 실행 기능 구성(2015. 12. 26)

 

디지털 액자 전원을 켜면 리눅스가 부팅되고, 잠시 후  X-Window 떡하니 올라와서 멍하니 대기하고 있습니다. 그럼 마우스 연결해서 절전 프로그램 가동하고, 슬라이드 프로그램 실행하고 등등 무지 귀찮네요. 파는 제품들은 다 자동인데 말입니다. ㅎㅎ, 그럼 저도 자동으로 구성~~

 

 

리눅스 초기 설정 및 X-Windows 설정을 변경합니다. X-Window가 구동된 후 특정 프로그램을 자동으로 실행하고 싶은 경우 ~/.config/lxsession/LXDE-pi/autostart 파일에 실행할 프로그램을 등록하면 됩니다. 저같은 경우 디지털 액자에 전원 연결하면 자동으로 부팅 시작하고, X-Windows 실행하고, 절전 프로그램 실행, 슬라이드 프로그램 실행까지 한방에 자동으로 실행되도록 설정을 했습니다.

 

이제야 조금씩 편해지는 것이 점점 디지털 액자처럼 보이는군요. 

 


 

■ 향후 개선 방향

 

1. 파이썬으로 이미지 뷰어 직접 개발

     - 이미지 위에 추가 정보를 제공하려면 아무래도 통제 가능한 이미지 뷰어가 필요

 

2. PIR 센서 응용해서 절전 기능 적용[적용]

     - 액자 주변에 사람 움직임이 없으면 20분 이후 액자 끄기

 

3. 온도 정보 제공

     - 실내 온도(온도 센서), 외부 온도(기상청) 표시

 

4. 실시간 자막 뉴스

     - 뉴스 피드 파싱해서 하단에 자막으로 뉴스 제공 등등

 

5. GPIO 활용 피벗 기능 추가

     - 외부 버튼 누르면 피벗 기능 제공 

 

6. Google Drive 연동

     - 디지털 액자의 사진 소스를 구글 드라이브와 연동 구성

     - 고향에 계신 어머니께 선물, 사진은 구글 드라이브로 원격 업로드 구성

 

7. 시계 기능 제공

     - 인터넷 시간 서버(NTP)를 통해 오차 없는 완벽한 시간을 제공하는 기능 구성

 

8. 전원 버튼 추가

     - 디지털액자를 껴야될 경우, 외부 버튼 누르면 리눅스 Shutdown 하는 기능 추가

  

■ 마무리

 

라즈베리파이 처음 받아서 사진까지 띄워주는데 반나절 정도면 충분할 정도로 플랫폼을 쉽게 만들어 두었네요. 사실 윈도우나 리눅스 포멧 한번 해 보신 분은 금방 구성할 수 있는 수준입니다.

 

근데, 기술적으로는 복잡하거나 난이도 전혀 없는 초급스런 작품인데, 의의로 감성이 돋는군요. 애기들도 , 집사람도 좋아하고, 할일 없을때 액자 보면서 멍 때리기 좋네요.

 

기술이란게 꼭 복잡하거나, 어마어마한 포스가 없어도 의의로 생활에 소소한 즐거움을 줄 수 있다는걸 느꼈네요. ㅎㅎ