지난 포스트 CCTV 만들기-1에서 motion 프로그램을 설치하고 daemon으로 실행하는 것 까지 알아보았다. 이번 포스트에서는 실제로 CCTV 화면을 확인하기 위해 필요한 설정들을 알아보자. (이번 포스트에 있는 그림에서 보면 8081번 포트로 접속하는데 이는 지난 포스CCTV 만들기-1 에서 설정한 것과 다른 설정에서 화면캡쳐를 했기 때문이다. 8082번으로 접속한 것으로 보기 바란다.)

  이제 프로그램도 돌아가니 웹브라우저에서 CCTV 화면을 확인해보자. 웹브라우저 주소창에 http://아이피주소:8082/를 입력하면 아래와 같이 페이지에 접속할 수 없다는 메시지가 나온다. 웹캠 서버가 localhost에서 접속만 허용하도록 설정되어 있기 때문이다. '/etc/motion/motion.conf' 파일에서 'webcam_motion' 값과 'control_localhost' 값을 모두 off로 설정해줘야 한다. 지금까지 인터넷에 돌아다니는 자료에는 'control_localhost'에 대한 언급이 없는데 프로그램이 수정되면서 추가된 것으로 추정된다.

라즈베리파이 CCTV

 

  다시 웹브라우저에서 스트리밍 주소로 접속을 하면 인터넷 익스플로러의 경우 웹캠 화면이 보이는 것이 아니라 아래와 같이 다운로드하는 창이 뜰 것이다. 크롬을 사용할 경우는 다운로드하는 창도 뜨지 않을 것이다. motion 서버에서 뿌려주는 화면을 표시하려면 mjpeg stream을 제공해야 하는데 인터넷 익스플로러와 크롬은 이를 지원하지 않기 때문이다. 크롬은 오래된 버전의 경우 지원을 했었기 때문에 제대로 표시 할 수도 있다.

라즈베리파이 CCTV

 

   다행히 파이어폭스는 mjpeg stream을 지원하기 때문에 파이어폭스를 이용하면 아래와 같이 CCTV 화면을 확인할 수 있다.

라즈베리파이 CCTV

 

  이렇게 확인을 했지만 여전히 문제는 있다. 바로 계속 motion 서버가 죽는 것이다. 이는 사진을 저장할 때 권한 문제로 에러가 나는 것으로 추정된다. 따라서 폴더를 하나 만들어서 사진을 저장하도록 하자. 예를 들어 '/home/pi/motion/'이라는 폴더를 만들면 'target_dir /home/pi/motion/'라고 값을 변경하자. 그러면 아래와 같이 motion 폴더에 사진들이 저장되는 것을 알 수 있다.

라즈베리파이 CCTV


  이제 라즈베리파이를 CCTV로 쓰는데 큰 문제는 없다. 지난 포스트에서도 언급했듯 '/etc/motion/motion.conf' 파일에는 여러가지 설정을 변경 할 수 있다. 그 중에 몇가지만 소개하자면 width와 height 값을 변경하면 아래와 같이 더 큰 화면을 얻을 수도 있고, brightness, contrast, saturation, hue 등을 통해 화면의 밝기, 대비, 채도 등을 설정할 수도 있다. output_normal 값을 off로 바꾸면 움직임이 감지되더라도 저장하지 않고, 라이브로 감시만 가능해지기도 한다. 이 외에도 많은 설정이 가능하기 때문에 꼭 하나하나 읽어보길 추천한다.

라즈베리파이 CCTV

 

 

  지금까지 파이어폭스로 CCTV 화면을 확인하는 법을 알아봤는데 안드로이드 앱을 통해서 CCTV를 확인 하는 법을 알아보는 것으로 이번 포스트를 마치도록 하자.


  구글스토에서 mjpeg으로 검색을 하면 여러 앱이 검색된다. 이 중 어느 것을 사용하나 무방하지만 가장 위에 올라와 있는 MJpeg Viewer 앱을 선택해서 설치, 실행해보자.

Mjpeg Viewer Mjpeg Viewer


  실행하면 아래와 같이 매우 단순한 화면이 나온다. URL을 클릭하면 주소를 입력할 수있는 창이 뜨고, 주소를 넣고 확인을 누르고, Show 버튼을 클릭하면 CCTV화면이 나온다. 

Mjpeg Viewer Mjpeg Viewer


Mjpeg Viewer

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  이번 포스트에서는 라즈베리파이를 이용하여 간단한 CCTV를 만드는 법을 알아보자. 인터넷에 이와 관련해서 여러 블로그 자료가 있는데 그대로 따라했음에도 불구하고 제대로 작동하지 않아 답답한 사람들이라면 이번 포스트를 통해를 해결 할 수 있길 바란다.

 

  우선 CCTV를 만들기 위해서는 카메라가 필요하다. 카메라는 아래 왼쪽과 같은 라즈베리파이용 카메라 모듈을 사용할 수 있지만 일반 웹캠을 사용해도 무방하다. 사용할 수 있는 웹캠의 종류는 여기서 확인 할 수 있다. 이 포스트는 아래 오른쪽 사진에서 보이는 마이크로소프트사의 HD-3000을 기준으로 설명한다. 

라즈베리파이 CCTV라즈베리파이 CCTV

 

  일반 usb웹캠을 사용하게 되면 전력이 부족해서 라즈베리파이가 작동되지 않는다. 따라서 웹캠에 전원을 공급할 수 있도록 usb 허브를 사용해야한다. 필자는 지난 포스트에서 소개했던 MBF-H04 USB 허브를 이용하였다. 

USB 허브

 

  카메라를 usb 허브를 통해 라즈베리파이에 연결한 후, 제대로 연결되었는지 lsusb 명령어로 확인해본다. 아래 그림에서 웹캠이 Device 006으로 인식된 것을 확인 할 수 있다. 

라즈베리파이 CCTV

 

  라즈베리파이를 CCTV로 만들기 위해 사용되는 프로그램은 몇가지 있지만 그 중에 가장 많이 사용되는 것으로 보이는 motion 프로그램을 설치해보자. motion은 리눅스용으로 개발된 mjpeg 스트리밍 프로그램으로 카메라에 움직임이 포착될 때 사진을 저장하는 기능이 있어 CCTV 프로그램으로 쓰기에 좋다. 아래와 같이 'sudo apt-get install motion'을 입력하면 설치가 완료되는데 설치 전에 'sudo apt-get update' 명령으로 업데이트를 먼저 할 것을 추천한다.

라즈베리파이 CCTV

 

  프로그램 설치가 끝났으면 프로그램을 실행하기 전에 'nmap localhost' 명령으로 지금 사용되고 있는 네트워크 포트를 확인해 보자. nmap이 설치되어 있지 않다면 apt-get으로 쉽게 설치가 가능하다. 아래 그림에서 22, 80, 3389, 8080, 9090번 포트가 열려있는 것을 알 수 있다. 

라즈베리파이 CCTV

 

  이제 'sudo service motion start' 라고 입력하여 프로그램을 실행시켜보자. 원래 프로그램이 daemon 으로 실행, 즉, 백그라운드에서 실행되야 하지만 아래에서 보듯 실행되지 않는다. daemon 실행이 되지 않도록 기본값이 설정되어 있기 때문이라 설정을 바꿔줘야 한다.

라즈베리파이 CCTV

 

  우선 '/etc/default/motion' 파일을 열어서 'start_motion_daemon' 값을 yes로 바꾼다.

라즈베리파이 CCTV


  둘째로 '/etc/motion/motion.conf' 파일을 변경해야 하는데 이 파일에는 프로그램의 모든 설정사항들이 포함되어 있으므로 하나씩 읽어보길 권장한다. 우선 daemon으로 실행하기 위해 'daemon' 값을 on으로 바꾼다. 또한 포트 8080번은 xbmc에서 사용하고 있으므로 다른 포트로 사용해야 두 프로그램을 모두 원활하게 사용할 수 있다. 필자는 webcam_port 8082, control_port 8081으로 설정했다.

라즈베리파이 CCTV


  이제 다시 프로그램을 실행시켜보면 실행이 된다. 'nmap localhost' 명령으로 확인해보면 8081, 8082포트가 새로 열린 것을 알 수 있다. 8082 포트는 라이브 웹캠 화면을 볼 때 사용하는 포트이고 8081 포트는 http를 통해 컨트롤하는데 사용된다.

라즈베리파이 CCTV

 

  우선 192.168.1.9:8081에 접속하면 아래와 같은 화면을 볼 수 있다. 이 간단한 페이지를 통해 motion 프로그램의 설정 값을 가져오고 설정할 수 있다.

  이번 포스트에서는 motion 프로그램을 실행시키는 것 까지 알아보았다. 다음 포스트에서는 실제로 CCTV화면을 확인하고, motion 프로그램을 설정하는 법을 알아보자.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,