라즈베리 파이 CCTV 만들기

라즈베리 파이는 카드 정도 사이즈의 초소형 컴퓨터입니다. 가격 또한 40~50 달러 정도로 살 수 있고 추가로 카메라 모듈과 USB 주변기기 장착을 통해 다양한 용도로 응용이 가능합니다. 이번 포스팅에서는 라즈베리 파이를 가지고 라즈베리 파이 CCTV (자작 감시카메라) 를 만들어 보려고 합니다. 라즈베리 파이 CCTV 에 필요한 준비물은 다음과 같습니다:

  • 라즈베리 파이 (1, 2, 3 버전 모두 사용 가능, 새로 구매하는 경우라면 최신 버전으로 사세요)
  • 라즈베리 파이 전용 카메라 킷 또는 라즈베리 파이에서 인식 가능한 범용 USB 웹캠
  • 8기가바이트 이상의 SD 카드
  • 라즈베리 파이와 호환 가능한 USB 무선랜카드 (저는 ipTime N100 mini 사용)
  • 전선 공사가 필요할 경우 드라이버, 니퍼, 절연 테이프, 전선 여분 등 기본 공구
  • 부팅 가능한 SD 카드를 만들기 위한 별도 컴퓨터(윈도우, 리눅스, 맥 모두 가능)
완성된 라즈베리 파이 CCTV (Raspberry Pi CCTV)
완성된 라즈베리 파이 CCTV (Raspberry Pi CCTV)
N100mini - 라즈베리 파이용 무선랜 USB(Wi-fi dongle)
N100mini – 라즈베리 파이용 무선랜 USB(Wi-fi dongle)

참고로, 라즈베리 파이에서 인식 가능한 범용 USB 웹캠은 모두 라즈베리 파이 CCTV 용으로 사용할 수 있지만 화질은 정품 카메라 킷이 제일 좋다고 하니 새로 사는 경우라면 카메라 킷을 구입하실 것을 권장합니다.

전체 절차

1. 라즈베리 파이에 카메라 모듈 설치
2. 라즈베리 파이의 sd 카드에 운영체제(Raspbian) 설치
3. 처음으로 부팅 및 기본 설정
4. Motioneye, Motion 등 필요한 패키지 설치
5. Motioneye 실행 및 세부 설정 조정

1. 라즈베리 파이에 카메라 모듈 설치

라즈베리 파이를 열고 카메라 모듈을 보면 카메라 모듈을 꽃을 수 있는 작은 슬롯 형태 부분이 보입니다. 여기에 사진과 같은 방향으로 카메라 모듈 케이블을 밀어 넣어 설치하시면 됩니다. 사진 정도로 밀어 넣으면 정상 설치된 것입니다. 앞/뒤가 뒤바뀌지 않게 방향을 잘 확인하세요.

Camera Kit 설치
Camera Kit 설치

2. 라즈베리 파이의 SD 카드에 운영체제(Raspbian)설치

상세한 설치 방법에 대한 내용은 별도 포스팅을 확인하세요.

이제 라즈베리 파이를 부팅시키기 위해서 별도 PC 상에서 SD 카드를 포맷하고 필요한 파일을 복사해야 합니다. 우선 SD 카드를 SD Card Formatter 등을 사용해서 FAT32 파일 시스템으로 초기화하시기 바랍니다.
포맷이 완료되었으면 다음 두 방법으로 설치방법이 나뉩니다:

 

  • NOOBS 다운로드하여 필요 파일 복수 후 sd 카드로 부팅하여 운영체제 설치
  • 이미지 파일 다운로드하여 이미지 덤프 툴 사용, Raspbian OS 를 SD 카드에 직접 설치

 

1번의 장점은 쉽다는 것이고 2번의 장점은 공간이 절약된다는 것입니다. 저는 가능하면 2번을 추천합니다. 그 이유는 전체 설치 시간도 빠르고 용량도 절약할 수 있기 때문입니다.

참고로 MotionEyeOS 라는 Motioneye 를 내장한 더 가벼운 운영체제(리눅스 배포판)도 있습니다. 저는 혹시나 하는 마음에 Raspbian 을 선택했는데, wi-fi 에서 인식 문제가 생길 경우에 시스템 설정을 변경해야 하는데 익숙한 운영체제가 Debian 기반의 Raspbian 이기 때문입니다. 그런데 막상 설치를 하고 보니 iptime n100mini 가 생각보다 잘 인식되는 것 같아서 다음에는 MotionEyeOS 로 시도해볼 예정입니다.
MotionEyeOS 링크

3. 처음으로 부팅 및 기본 설정

설치가 완료된 SD card 를 라즈베리 파이 SD 슬롯에 넣고 부팅하면 기본적으로 접속이 가능해집니다. 라즈베리 파이는 기본적으로 리눅스 머신이기 때문에 터미널 접속이 가능합니다만, 배포판 버전에 따라 SSH 접속이 비활성화된 경우도 있는 것 같습니다. 이런 경우에는 바로 터미널을 통한 접속이 불가능하므로 라즈베리 파이에 모니터를 연결하고 키보드와 마우스를 연결해서 직접 설정을 해 주어야만 합니다. 상세한 내용은 다른 포스팅 “라즈베리 파이 SSH 접속” 을 참고하세요.

로그인을 위한 기본 정보는 다음과 같습니다.

 

  • 기본 사용자: pi
  • 기본 암호: raspberry

 

이제 부팅 및 pi 사용자로 로그인이 완료되면 다음 명령을 실행하여 몇 가지 설정을 해야 합니다.
Sudo raspi-config

1) Raspbian 에서 카메라 모듈 설정

카메라 모듈은 Raspbian 설치 후 간단한 절차를 통하여 활성화할 수 있습니다.
Sudo raspi-config
여기서 camera module 에 대한 부분을 활성화해 주세요

raspi-config, Enable Camera
raspi-config 에서 Enable Camera 를 선택

이 상태에서 motioneye 로 바로 인식이 되는 것 같지는 않습니다(raspbian 2016.12월 패키지 기준). 따라서 다음과 같이 명령어를 실행하여 필요한 모듈을 로드해야 합니다.
modprobe bcm2835-v4l2
또한 매 부팅 때마다 modprobe 를 실행할 필요가 없도록 /etc/modules 파일 상에 bcm2835-v4l2 를 추가해 주세요. 이렇게 하면 매 부팅 때마다 자동으로 모듈이 로드됩니다.

2) 무선랜 설정

이제 무선랜 USB 가 정상적으로 인식이 되었는지를 다음과 같이 확인해 보시기 바랍니다.
sudo lsusb
정상적으로 USB 가 인식되었다면 Realtek Seminconductor…RTL8188CU… 와 같은 줄이 보여야 합니다. 인식이 되지 않았을 경우에는 무선랜 USB 가 장착된 상태에서 다음 명령어로 라즈베리 파이를 재부팅하여 시도해 보세요. 부팅 후에 USB 를 장착했을 경우에 주로 인식 문제가 있었습니다.
sudo shutdown -r now

인식이 정상적으로 되면 무선랜카드가 정상 인식되어 작동하는지 다음 명령어로 확인 가능합니다.
sudo iwconfig
이 명령어를 실행해서 wlan0 가 나와야 합니다.

이제 무선랜카드는 인식이 되었으므로 사용 중인 공유기의 무선랜 신호를 잡아 연결해야 합니다. 주변에 사용 가능한 무선랜 신호를 찾는 명령어는 다음과 같습니다:
sudo iwlist wlan0 scan
위의 명령어를 실행하였을 때 자신의 공유기의 무선랜 신호(SSID) 가 보인다면 정상적으로 무선랜카드가 작동하고 있는 것입니다. SSID와 공유기 접속 암호를 다음과 같이 업데이트해 줍니다. 예를 들어 SSID가 iptime 이고 공유기 암호가 PASSWORD 인 경우를 예로 들겠습니다.
먼저 nano editor 로 공유기 접속 정보를 담고 있는 파일을 엽니다.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
파일이 열리면 파일 마지막 부분에 다음과 같은 내용을 추가합니다.

network={
ssid="iptime"
psk="PASSWORD"
key_mgmt=WPA-PSK
}

참고로, 위의 예에서는 기본적인 암호 방식을 wpa-psk 로 하였습니다. 혹시 아직 wep 방식을 사용하고 있는 경우에는 보안상의 이슈도 있으니 wpa-psk 로 변경하시고 진행하시기 바랍니다. 최근 버전의 공유기 펌웨어라면 대부분 psk 가 적용되어 있을 겁니다.

필요한 내용의 추가가 완료되면 ctrl+o 를 눌러 저장한 후 ctrl+x 를 눌러 셸로 빠져나오면 됩니다.

4. Motioneye, Motion 등 필요 패키지 설치

다음과 같이 필수 패키지들을 설치해야 합니다.

Motion 설치
wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb
sudo dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb

FFMPEG 설치
wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_3.1.1-1_armhf.deb
sudo dpkg -i ffmpeg_3.1.1-1_armhf.deb

파이썬 포함, 필요 추가 패키지 설치
sudo apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5

MotionEye 설치 및 설정파일 초기화

sudo pip install motioneye
mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
mkdir -p /var/lib/motioneye


MotionEye 를 init 스크립트에 추가

cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye
systemctl start motioneye

이제 본격적으로 MotionEye 를 사용할 준비가 되었습니다. 다음 명령으로 라즈베리 파이를 재부팅하여 변경한 설정이 모두 적용되도록 합니다.
sudo shutdown -r now
이제 라즈베리파이가 재부팅되면서 터미널 접속이 종료됩니다. 한 1~2분이면 재부팅이 완료됩니다.

5. Motioneye 설정 및 세부 설정 조정

정상적으로 카메라 및 필요 패키지(의존성 패키지 포함)들이 설치되었다면 라즈베리 파이의 ip 주소를 통해서 motioneye 에 접속이 가능합니다. 웹페이지에 바로 ip 주소를 넣으면 기본 http 포트로 접속하기 때문에 motioneye 의 ip 주소 뒤에 :8765 를 써서 접속해야 합니다. 예를 들어 라즈베리 파이의 내부 ip 주소가 192.168.1.101 이라면 접속 주소는 192.168.1.101:8765 가 됩니다.

라즈베리 파이 CCTV - MotionEye 접속 화면
MotionEye 접속 화면

정상적으로 접속이 이루어지면 Motioneye 화면이 다음과 같이 나타납니다. 참고로 처음에는 아무런 카메라 화면도 나오지 않고 Add Camera 라는 옵션만 나오기 때문에 여기서 Local Camera 로 추가를 해야 합니다. 만약 라즈베리 파이 정품 카메라 킷을 설치했는데도 Local Camera 를 선택하는 옵션이 활성화되지 않고 Remote Camera 만 나온 경우 bcm2835-v4l2 모듈이 활성화되지 않은 경우이므로 modprobe 명령으로 다시 활성화한 후 실행해 보세요.

Leave a Reply

Your email address will not be published. Required fields are marked *