<카메라 제어 시스템>
1. 라즈베리파이에 카메라 모듈 연결
2. 카메라 장치 설정
raspi-config > 3. Interface Options > Legacy Camera(I1) > YES 후 재부팅
sudo raspi-config
3. 카메라 실행
1) raspistill 명령어
raspistill -o img.jpg #카메라 촬영 (img: 파일 이름, 기본 시간은 5초 뒤 촬영)
raspistill -t 2000 -o img.jpg #-t의 단위는 밀리초, 2초뒤에 촬영
raspistill -vf -hf -o img.jpg #상하 좌우 반전
2) raspivid 명령어
raspivid -o vid.h264 #동영상 촬영 (vid: 파일이름)
#확장자 h264->mp4로 바꾸는 법
sudo apt-get install -y gpac
MP4Box -add vid.h264 vid.mp4
4. 카메라 제어
1) 5초 뒤에 사진찍고 해당 경로로 사진 저장
*파이 카메라 조도가 설정되는 시간을 기다려주기 위해 사진 찍기 전 최소 2초 정도 여유를 두는 것이 좋음
from picamera import PiCamera
from time import sleep
camera=PiCamera()
camera.start_preview()
sleep(5)
camera.capture('/home/DLETSGO/image1.jpg')
camera.stop_preview()
2) PiCamera의 rotation 메서드를 이용해 화면을 180도 돌려서 10초 뒤에 사진 찍고 해당 경로로 사진 저장
from picamera import PiCamera
from time import sleep
camera=PiCamera()
camera.rotation = 180
camera.start_preview()
sleep(10)
camera.capture('/home/DLETSGO/image2.jpg')
camera.stop_preview()
3) PiCamera의 start_recording 메서드를 이용해 10초간 영상 찍고 해당 경로로 동영상 저장
from picamera import PiCamera
from time import sleep
camera=PiCamera()
camera.start_preview()
camera.start_recording('/home/DLETSGO/video.h264')
sleep(10)
camera.stop_recording()
camera.stop_preview()
4. 카메라 화면 FLASK 파이썬 서버에 올려서 영상 스트리밍하기
=> 인터넷 브라우저를 통해 실시간 카메라 영상 확인 가능
*단, 인터넷에 접속한 기기는 라즈베리파이와 동일한 wifi에 연결되어있어야 함.
1) FLASK 패키지 설치 (+pip 설치)
sudo apt-get install python-pip #Flask 사용하기 위해서는 파이썬 패키지 매니저인 pip 설치해야함
sudo pip install flask
2) RPiPetFeeder 프로젝트 클론 [github]
git clone https://github.com/neosarchizo/RPiPetFeeder
cd RPiPetFeeder/
nano app.py
-해당 app.py에 다음의 코드 입력 후 저장하기
#!/usr/bin/env python
from flask import Flask, render_template, Response
from camera import Camera
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def gen(camera):
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
return Response(gen(Camera()),
mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True, threaded=True)
3) app.py 실행 후, 라즈베리파이 할당 IP 주소를 스마트폰의 인터넷 브라우저를 통해 입력하기
python3 app.py
192.168.217.164:5000
'라즈베리파이(Raspberry Pi)' 카테고리의 다른 글
(6) 라즈베리파이 토양수분센서/릴레이 모듈 (1) | 2023.12.04 |
---|---|
(5) 라즈베리 파이 가변저항 / ADC (1) | 2023.12.04 |
(3) 라즈베리파이 GPIO control (1) | 2023.12.03 |
(2) 라즈베리파이 온습도 센서 연결 (2) | 2023.12.03 |
(1) 라즈베리 파이 부팅 / 초기 설정 (2) | 2023.12.03 |