본문 바로가기
개발Study/IP Camera

make IP camera using raspberry pi 4 (1) motion eye

by happy90 2022. 1. 11.
SMALL

항상 뭘 시도는 하는데 끝맺음이 없다. 그럼에도 자꾸 시도는 한다. 게으른 개발자....
약 두달 후면 나는 출산을 할 것이고, 아기를 보느라 바쁘겠지.
출산 전 두달동안 아기 돌볼 때 사용할 IP camera를 만들어보고자 한다.
구글링하면 엄청 많이 나온다.ㅎㅎ
주말에만 짬내서 해볼 것인데 될런지 모르겠다.


rpi에 웹서버하나 만들고, 카메라 달고, 안드로이드 웹앱하나 만들어서 영상을 볼 수 있도록 만들어보고자 한다.

일단 자료조사.
rpi ipcamera 를 구글링해보면 motionEyeOs가 많이 나온다.

Motion Eye Os?
motion이라는 프로그램이 있다. 이는 카메라로의 비디오시그널을 모니터링하는 프로그램이다. 캠쳐, 스트리밍, 레코딩 등 다양한 기능을 제공한다. 모션을 감지할 수 있다는것이 핵심이다. 더 자세히는 안봤지만 영상인식기능이 있다는 말이균.
참고 https://motion-project.github.io/
motion eye는 위의 motion을 지원하는 web front end이다. python으로 구현되어 있다.
이들을 통합지원하는 os가 motion eye os이다.
예전에는 raspbian os설치 후 motioneye package를  설치하여 사용했던 모양인데, 언젠가부터는 buildroot기반으로 만든 motion eye os가 제공되는 모양이다.

두가지를 진행했다.
1. motion eye os image를 그대로 올리는 방법
2. ubuntu설치 후 motion eye package를 별도로 설치하는 방법

원래는 1번을 하고자 했으나, filesystem이 너무 불편해서 2로 바꿈..
그래도 두가지 다 환경설정관련해서는 정리해놓고자 한다.

1. motion eye os image를 그대로 올리는 방법

1) micro sd에 motion eye os올리기
https://www.balena.io/etcher/
먼저 위 사이트에서 SD write program을 다운로드 받는다.

https://github.com/ccrisan/motioneyeos/releases
그리고 motioneye os 이미지를 다운로드 받은 뒤, 압축해제한다.

microsd를 컴터에 연결한 뒤, balena etcher를 실행시킨다.

flash from file을 클릭하여 다운받은 motioneyeos image를 선택한다.
다음으로 select target 버튼이 활성화되면 PC에 연결한 micro sd를 선택한다.
그럼 아래 스크린샷처럼 나온다. Flash! 버튼을 눌러주면 된다.

위는 write과정 스크린샷.

완료 화면.

그럼 이제 microSD를 꺼내서 raspberry pi에 넣고 부팅을 시켜본다.

network 연결안하면 혼자 열심히 재부팅한다. 꼭 연결해주자.

git bash를 열어 ssh 접속을 시도해보자.

ip는 공유기를 통해 알아냄.

 

2) 초기 계정 정보

id: admin

pw는 없다. 입력안해도 알아서 로그인 된다.

 

3) camera 영상 보기

motion eye os는 기본적으로 web server에서 camera 기능을 다룰 수 있게 제공하므로, 웹브라우저에 ip를 입력해본다.

우리집 천장이 나왔다~~

좌측 상단 사람모양을 누르면 로그인할 수 있다.

로그인하면 메뉴버튼(?)을 눌러 다양한 옵션들을 설정할 수 있게 된다.

 

2. ubuntu설치 후 motion eye package를 별도로 설치하는 방법

1) sd card에 rpi용 ubuntu image 쓰기.

https://ubuntu.com/download/raspberry-pi

위 사이트에서 ubuntu server를 다운로드받는다. desktop ui는 필요없다....
다운로드받은 xz파일의 압축해제 후 balenaEtcher를 실행시켜 불러온다.
PC에 sd를 연결시키고 선택한다. flash버튼을 누른다.

write가 시작된다.

flash가 완료되면 sd카드를 다시 rpi에 장착 후 부팅시킨다.

 

ssh로 접속한다.

초기 id: ubuntu pw: ubuntu

접속하자마자 아래처럼 pw 변경하라고 경고가 뜬다.

변경하면 접속이 끊긴다.

다시 접속하여 root pw까지 설정해준다.

sudo passwd root

명령어를 입력하면 root pw설정이 가능하다.

 

2) motion eye 설치하기

https://github.com/ccrisan/motioneye/wiki/%28Install-On-Ubuntu-%2820.04-or-Newer%29

다음으로 motion eye 설치하기.

package update한번 해주고 재부팅 후 upgrade 진행

sudo apt update
sudo reboot
sudo apt-get upgrade -y

motion과 필요한 패키지들 설치

sudo apt-get install motion ffmpeg v4l-utils -y

motion eye가 python2.7로 구현되어 있으므로 python2 및 관련 패키지 설치

sudo apt-get install python2 -y
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py

다음으로 motion eye과 필요한 패키지들 설치

sudo apt-get install libffi-dev libzbar-dev libzbar0 -y
sudo apt-get install python2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev -y
sudo pip2 install motioneye

motion eye 설정에 필요한 디렉토리와 config file 준비

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

motion eye 실행 준비

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

 

3) camera 인식시키기

일단 나는 rpi v2카메라를 쓰고 있는데, default 설정으로는 얘를 인식하지 못한다.
관련 설정을 해주어야 할 것 같다.

raspberry pi용 ubuntu를 설치한 것이라 필요한 드라이버와 라이브러리가 다 셋팅되어있을 줄 알았는데 그게 아니네.
rpi camera 구동관련 필요 패키지 설치...

sudo apt-get install libraspberrypi-dev -y

raspberry pi는 부팅시 /boot/firmware/config.txt의 값에 따라 모듈을 올린다.
이 파일을 열어 [all] 에 추가해줄 내용

start_x=1
gpu_mem=128

그리고 재부팅.

 

4) motion eye 실행 후 동작 확인

motion eye os를 설치했을 때와 다르게, motion eye의 초기 포트번호는 8765이다.
web browser에 ip:8765를 입력하면 motion eye os에서 봤던 페이지가 똑같이 나온다.
초기 로그인 계정 id는 admin 암호는 공백이다.

motion eye os와 달리 카메라 설정이 안되어있다.
camera type은 그대로 두고, 아래 camera에서 mmal service 16.1을 선택해준다.

다시 우리집 천장이 보인다.

 

LIST

댓글