Presentation is loading. Please wait.

Presentation is loading. Please wait.

IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라.

Similar presentations


Presentation on theme: "IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라."— Presentation transcript:

1 IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라

2 4. 라즈베리파이 카메라

3 파이 카메라 카메라 연결하기 흰색 커버를 들어올린 후 케이블을 밀어넣고 다시 커버를 닫음
고화질 FULL HD(1080p) 500만 화소 라즈베리파이 전용 카메라 흰색 커버를 들어올린 후 케이블을 밀어넣고 다시 커버를 닫음

4 파이 카메라 최신 버전 업그레이드 라즈베리 파이 설정에서 카메라 사용을 enable로 변경 사진 찍기 동영상 찍기
$ sudo apt-get update $ sudo apt-get upgrade 라즈베리 파이 설정에서 카메라 사용을 enable로 변경 $ sudo raspi-config $ 리부팅 사진 찍기 $ raspistill -o image.jpg $ raspistill --help 동영상 찍기 $ raspivid -o video.h264 $ raspivid --help

5 웹스트리밍 참고 사이트 폴더 생성 프로젝트 초기화 및 패키지 설치 소스 작성
폴더 생성 $ mkdir liveStreaming $ cd liveStreaming 프로젝트 초기화 및 패키지 설치 $ npm init $ npm install express socket.io --save 소스 작성 $ nano index.js $ nano index.html

6 소스 작성 Index.js Index.html
var express = require('express'); var app = express(); var http = require('http').Server(app); var fs = require('fs'); var io = require('socket.io')(http); var path = require('path'); var spawn = require('child_process').spawn; var proc; app.use('/', express.static(path.join(__dirname, 'stream')));   res.sendFile(__dirname + '/index.html'); app.get('/', function(req, res) { }); var sockets = {}; io.on('connection', function(socket) {   sockets[socket.id] = socket;   console.log("Total clients connected : ", Object.keys(sockets).length);   socket.on('disconnect', function() {     delete sockets[socket.id];     // no more sockets, kill the stream     if (Object.keys(sockets).length == 0) {       app.set('watchingFile', false);       if (proc) proc.kill();       fs.unwatchFile('./stream/image_stream.jpg');     }   });   socket.on('start-stream', function() {     startStreaming(io); http.listen(3000, function() {   console.log('listening on *:3000'); function stopStreaming() {   if (Object.keys(sockets).length == 0) {     app.set('watchingFile', false);     fs.unwatchFile('./stream/image_stream.jpg');     if (proc) proc.kill();   } } function startStreaming(io) {   if (app.get('watchingFile')) {     io.sockets.emit('liveStream', 'image_stream.jpg?_t=' + (Math.random() * ));     return;   var args = ["-w", "640", "-h", "480", "-o", "./stream/image_stream.jpg", "-t", " ", "-tl", "100"];   proc = spawn('raspistill', args);   console.log('Watching for changes...');   app.set('watchingFile', true);   fs.watchFile('./stream/image_stream.jpg', function(current, previous) {   }) <!DOCTYPE html> <html lang="en"> <head>   <meta charset="utf-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name="viewport" content="width=device-width, initial-scale=1">   <title>Stream My Lab </title>   <!-- Bootstrap CSS -->   <link href=" rel="stylesheet">   <style type="text/css">   #stream {     height: 99%;     margin: 0px auto;     display: block;     margin-top: 20px;   }   </style>   <!-- jQuery -->   <script src="   <!-- Bootstrap JavaScript -->   <script src="   <script src="/socket.io/socket.io.js"></script>   <script>   var socket = io();   socket.on('liveStream', function(url) {     $('#stream').attr('src', url);     $('.start').hide();   });   function startStream() {     socket.emit('start-stream');   </script> </head> <body class="container">   <h1 class="text-center">My Lab     <small>Powered by PI</small>   </h1>   <hr>   <button type="button" id="" class="btn btn-info start" onclick="startStream()">Start Camera</button>   <div class="row">     <img src="" id="stream">   </div> </body> </html> Index.js Index.html <script src="/socket.io/socket.io.js"></script>의 주소를 으로 변경

7 웹스트리밍 하부 폴더 생성 실행 브라우저로 접속 $ mkdir stream (이미지가 저장되는 폴더)
$ sudo node index.js 브라우저로 접속 로컬 접속 원격 접속

8 비디오 서버 raspberry-pi-mjpeg-server 소스 복사 설치 서버 실행 서버 접속
소스 복사 $ git clone mjpeg-server 설치 $ cd raspberry-pi-mjpeg-server $ npm install 서버 실행 $ sudo node raspberry-pi-mjpeg-server.js -w l 1024 서버 접속 Localhost:8080

9 사진 찍기 서비스 참고 사이트 소스 다운로드 설치
io/ 소스 다운로드 $ git clone streaming.git 설치 $ cd rpi-socket-streaming $ npm install


Download ppt "IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라."

Similar presentations


Ads by Google