라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

안녕하세요 나도메이커의 나도비입니다.

오늘은 라즈베리파이를 이용한 CCTV를 만들어 보겠습니다.

계속 해서 영상을 촬영하고 그것을 저장하는 실습입니다

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

Raspberry pi [11월 초 입고]라즈베리파이 3B+, 5V/3.1A 아답터, 방열판 세트 - 전자부품쇼핑몰 아이씨뱅큐

전자부품쇼핑몰 아이씨뱅큐에서 판매하는 [11월 초 입고]라즈베리파이 3B+, 5V/3.1A 아답터, 방열판 세트으로 라즈베리파이 3 B+, Raspberry pi B+, 1.4Ghz, 듀얼밴드, BLE 4.2, PoE 지원, 라즈베리파이 재단 Approved Reseller (대한민국 유일)입니다.

www.icbanq.com

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

카메라 모듈을 위에 사진과 같이 연결해주세요!

카메라를 Enabled 해주시고

reboot를 해주세요!

sudo apt-get update sudo apt-get upgrade

실습 하기전에 업데이트와 업그레이드를 해주세요!

sudo apt-get install python-picamera

raspistill -v -o picameratest.jpg

카메라모듈 테스트를 위해 명령어를 입력해주세요

그러면 현재 디렉토리에 picameratest.jpg에 사진이 찍힌것을 볼 수 있습니다.

파일을 쉽게 볼수 있게 cctv 디렉토리를 만들어줍니다.

nano편집으로 cctv.py 를 만들어 줍니다.

import picamera import time import datetime def record(): with picamera.PiCamera() as camera: camera.resolution = (640, 480) now = datetime.datetime.now() filename = now.strftime('%Y-%m-%d %H:%M:%S') camera.start_recording(output = filename + '.h264') camera.wait_recording(5) camera.stop_recording() while True: record()

반복적으로 동영상을 녹화하여 저장하는 코딩입니다.

결과물입니다.

지정한 시간대로 반복적으로 영상을 찍고

그것을 저장 하는것을 볼 수 있습니다!!

이번실습도 즐거웠나요?

다음엔 더 재미있는것으로 찾아오겠습니다.

그럼 안녕~~

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

[나도메이커]HMI 스마트디스플레이, 쉬운 GUI제작 동영상 재생까지?||Nextion

Nextion 구입하러가기 ▶ https://www.icbanq.com/shop/templete_... 안녕하세요 여러분! 나도메이커의 토비입니다. 오늘은 생소하게 HMI 디스플레이라는 제품을 가져와봤습니다. Nextion HMI 디스플레이는 산업용으로 많이 쓰이는 컨트롤패널 디스플레이 인데요! 의료장비, 3D프린터, 미용장비, 자동차디스플레이, 생산라인 등에 많이 활용된다고 하네요! 이외에도 아두이노,라즈베리파이, 각종 MCU에 적용되는 디스플레이니 참신한 디스플레이를 원한다면 Nextion을 사용하는게 딱이겠죠? 자 그럼 오늘 내용도 유익하셨다면, 좋아요와 댓글, 구독으로 표현해주세요! 그럼 다음시간에 만나요~ 안녕~! --------------------------------------------------------------------------------- #Nextion #HMI #display #산업용 #디스플레이 #나도메이커 #DIY #오픈소스하드웨어 ICbanQ 쇼핑몰: https://www.icbanq.com/ ICbanQ 공식 강좌 및 소식 블로그: https://blog.naver.com/icbanq ICbanQ 공식 카페: https://cafe.naver.com/icbanq ICbanQ 마이크로비트 공식 카페: https://cafe.naver.com/bbcmicro ICbanQ 네이버TV: https://tv.naver.com/icbanq ICbanQ 페이스북: https://www.facebook.com/icbanq ICbanQ 인스타그램: https://www.instagram.com/icbanq/?hl=ko 

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

이번 포스팅에서는 라즈베리파이 4B 모델과 카메라 모듈을 이용해 스트리밍 환경을 구축해보겠습니다.

본 포스팅에서 스트리밍 환경 구축에 사용할 소스와 카메라는 mjpg-streamer와 NOIR CAMERA MODULE V2라는 카메라 모듈이지만, 카메라는 라즈베리파이의 카메라 포트에 연결 가능한 카메라라면 어떤 것이든 상관없습니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv
RASPBERRY Pi NOIR CAMERA MODULE V2

1. 라즈베리파이 카메라 포트 활성화

카메라를 사용하기 위해서는 라즈베리파이에서 카메라 포트를 활성화시켜야 합니다. 본 포스팅에서는 GUI에서 설정하는 방법과 와 터미널 환경에서 설정하는 방법 모두 설명하겠습니다.

먼저 GUI 환경에서의 방법입니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

작업 표시줄에서 기본 설정 > Raspberry Pi Configuration을 엽니다. root 권한이 필요합니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

인터페이스 탭에서 카메라 항목이 아마도 Disable로 설정되어있을 텐데, 이를 Enable로 바꿔 줍니다.

터미널 환경에서 설정하는 방법은 다음과 같습니다.

아래의 명령어로 설정에 진입합니다.

$ sudo raspi-config
라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

위 화면에서는 원하는 항목에 커서를 두고 Enter를 누르면 선택이 됩니다.

Interface Options를 선택해줍니다.

각 옵션들 항목의 순서는 라즈베리파이 OS 커널 버전에 따라 달라질 수 있습니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

카메라를 선택합니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

카메라 포트를 활성화할 것인지 묻습니다.

'예'를 선택해 카메라 포트를 활성화해 줍니다.

설정을 완료하면 첫 화면으로 돌아오는데 Finish를 누르면 재부팅할 것인지를 묻는데, 아직은 재부팅하지 않겠습니다.

2. 카메라 연결

우선 라즈베리파이를 완전히 꺼줍니다.

사실 그냥 기동하고 있는 상태에서 연결해도 연결은 되지만 연결하는 도중에 다른 연결선이 빠지거나 접촉 불량이 돼서 문제가 발생하는 불상사를 방지하기 위해 안전하게 전원을 끄고 전원 선을 뺀 다음 연결해주는 것이 좋습니다.

# 전원 종료
$ sudo shutdown -h now
라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

카메라 모듈은 위와 같은 15핀 리본 케이블로 되어있습니다.

리본 케이블은 앞면 뒷면이 구분되어 있습니다. 핀이 노출되어있는 부분이 Front입니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

위 사진에서 빨간 영역으로 표시한 부분이 카메라 포트입니다.

리본 케이블의 앞 뒷면을 잘 구분 해 체결해줍니다.

이제  전원을 연결하고 라즈베리파이를 기동하고 잘 연결되었는지 아래의 명령어로 확인합니다.

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

detected가 1 이면 잘 연결된 것입니다. 만약 0이라면 케이블 연결 방향등 제대로 체결되었는지 확인합니다.

3. mjpg-streamer 다운로드 및 컴파일

카메라 스트림을 이용하기 위해 사용되는 소스는 여러 가지가 있지만 본 포스팅에서는 mjpg-streamer를 사용하도록 하겠습니다.

mjpg-streamer를 사용하기 위해서는 컴파일 도구와 필요 패키지를 선행 설치해주어야 합니다.

$ sudo apt-get install gcc g++ cmake libjpeg8-dev

깃 허브에서 mjpg-streamer를 clone 하고 컴파일합니다.

$ git clone https://github.com/jacksonliam/mjpg-streamer.git

# 소스파일에 이동
$ cd mjpg-streamer/mjpg-streamer-experimental

# 컴파일
$ make distclean
$ make CMAKE_BUILD_TYPE=Debug
$ sudo make install

4. 스트리밍

이제 mjpg-streamer/mjpg-streamer-experimental/에 있는 mjpg_streamer 명령을 이용해 스트림 서버를 기동 합니다.

$ export LD_LIBRARY_PATH=./mjpg-streamer/mjpg-streamer-experimental/
$ mjpg_streamer -o "output_http.so -w ./www -p 9090" -i "input_raspicam.so -fps 30 -preview"

-o -i 옵션은 각각 output input을 의미합니다.

위 옵션은 포스팅을 위한 예제입니다. 화면 사이즈, 회전율, 프레임 등 다양하게 옵션을 줄 수 있습니다.

여기서 -o 옵션의 -p 9090은 서버 포트를 의미합니다. 만약 9090 포트가 사용 중이라면 다른 번호를 할당합니다.

-p 옵션을 설정하지 않으면 8080으로 할당받습니다.

각 옵션에 대한 자세한 설명은 아래 링크를 참조해주세요.

https://github.com/jacksonliam/mjpg-streamer

jacksonliam/mjpg-streamer

Fork of http://sourceforge.net/projects/mjpg-streamer/ - jacksonliam/mjpg-streamer

github.com

라즈베리파이 카메라 cctv - lajeubelipai kamela cctv
라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

명령어를 입력하면 위와 같이 연결 정보와  옵션이 표시됩니다.

HTTP TCP port가 제대로 적용되었는지 확인합니다.

이제 아래와 같이 브라우저에서 접속해보면 카메라를 통한 영상을 확인할 수 있습니다.

http://라즈베리파이의 IP:9090/?action=stream
라즈베리파이 카메라 cctv - lajeubelipai kamela cctv

카메라가 제대로 작동하고 있음을 확인했습니다.

여기서 ffmpeg나 파이썬 등을 이용해 CCTV나 블랙박스같이 영상을 저장하는 등의 프로그래밍도 가능하니 여러 가지를 시도해보는 것도 좋을 듯합니다.

5. 부록

아래는 설치와 서버 실행을 좀 더 편리하게 이용하도록 간단히 작성한 쉘 스크립트입니다.

아래 스크립트를 sudo chmod +x mjpg-streamer_manager.sh로 실행 권한을 부여하면

sh mjpg-streamer_manager.sh 명령으로 손쉽게 설치 및 서버를 구동할 수 있습니다.

mjpg-streamer_manager.sh

0.00MB

#!/bin/bash

install(){ 
    echo 'Download & Install mjpg-streamer' 
    echo 'update apt' 
    sudo apt-get update
    
    echo 'upgrade apt'
    sudo apt-get upgrade
    
    echo 'package install'
    sudo apt-get install gcc g++ cmake libjpeg8-dev
    
    echo 'Download mjpg-streamer...'
    git clone https://github.com/jacksonliam/mjpg-streamer.git
    
    echo 'Building...'
    cd mjpg-streamer/mjpg-streamer-experimental
    
    make distclean
    make CMAKE_BUILD_TYPE=Debug
    sudo make install
    
    echo ''
    echo 'Download & Install Complete!'
}

run(){
    export LD_LIBRARY_PATH=./mjpg-streamer/mjpg-streamer-experimental/
    mjpg_streamer -o "output_http.so -w ./www -p 9090" -i "input_raspicam.so -fps 30 -preview" 
}

start(){
    echo 'mjpg-streamer Load Manager By overload'
    echo 'Select Your Action''s'
    echo '======================'
    echo '1) mjpg-streamer Install'
    echo '2) mjpg-streamer Run'
    echo 'any) cancel'
    echo '======================'
    
    echo -n 'number: '
    read num
    
    case $num in
        1)
            install
            ;;
        2)
            run
            ;;
        *)
            echo 'cancel'
    esac
}

start

이것으로 라즈베리파이와 카메라 모듈을 이용한 실시간 스트리밍 포스팅을 마칩니다.