Presentation is loading. Please wait.

Presentation is loading. Please wait.

시스템소프트웨어 1401552 김 영욱 1401586 양 오석. 목적  라즈베리파이에서 GPIO 를 이용하여 초음파 센서를 연결하고 거리를 측정해 일 정한 거리안에 사람이 들어오면 파이 카메라를 이용하여 사진을 찍고 데이터 베 이스에 올려 웹에서 사진을 보고 검색을.

Similar presentations


Presentation on theme: "시스템소프트웨어 1401552 김 영욱 1401586 양 오석. 목적  라즈베리파이에서 GPIO 를 이용하여 초음파 센서를 연결하고 거리를 측정해 일 정한 거리안에 사람이 들어오면 파이 카메라를 이용하여 사진을 찍고 데이터 베 이스에 올려 웹에서 사진을 보고 검색을."— Presentation transcript:

1 시스템소프트웨어 1401552 김 영욱 1401586 양 오석

2 목적  라즈베리파이에서 GPIO 를 이용하여 초음파 센서를 연결하고 거리를 측정해 일 정한 거리안에 사람이 들어오면 파이 카메라를 이용하여 사진을 찍고 데이터 베 이스에 올려 웹에서 사진을 보고 검색을 할 수 있게 했습니다.

3 프로젝트 재료  라즈베리파이  카메라모듈  초음파 센서

4 Flow chart 화면에 출력 사진을 찍고 저장한뒤 파일 이름을 db 에 저장한다 시작 앞에 물체 있는지 판단 Db 에 파일이 있는지 판단 없으면 있으면 없으면 있으면

5 회로도

6 프로젝트 과정  라즈베리파이에 Python 과 mysql 을 연동시켜주는 파일을 설치하고 초음파 센서 와 카메라 모듈을 연결하여 python 을 이용하여 일정거리 안에 들어오면 사진을 찍고 mysql 에 접속하여 파일명을 DB 에 저장하였습니다.  Apache2,mysql,php 를 설치하여 웹서버를 구축하고 php 를 이용하여 mysql 에 접 속하고 DB 에서 파일명들을 불러와 태그를 이용하여 DB 에 저장되어있는 이미지들을 불러오고 검색할 수 있게 하였습니다.

7 Python 소스  #-*- coding: utf-8 -*-  import RPi.GPIO as GPIO  import time  import picamera  import MySQLdb   mysqlid='root'  mysqlpasswd='1234'  database='image'   GPIO.setmode(GPIO.BCM)  GPIO.setwarnings(False)  # 20 번 GPIO 를 출력 방향, 21 번 GPIO 를 입력 방향으로 설정 한다.  TRIG = 20  ECHO = 21

8 Python 소스   GPIO.setup(TRIG, GPIO.OUT)  GPIO.setup(ECHO, GPIO.IN)   GPIO.output(TRIG, False)  time.sleep(2) # Wait for sensor settle  while True:  GPIO.output(TRIG,True)  time.sleep(0.00001) #why?  GPIO.output(TRIG, False)  # 음파를 방출  while GPIO.input(ECHO)==0:  s_time= time.time()

9 Python 소스  # 반파를 송신  while GPIO.input(ECHO)==1:  e_time= time.time()   # 비행시간측정  duration = e_time-s_time   # 거리 = 시간 * 속도 /2  distance = duration *17150   # 소수 둘째자리까지 반올림  distance = round(distance, 2)   print "distance :", distance, " cm"

10 Python 소스  if(distance<50):  db=MySQLdb.connect('localhost',mysqlid,mysqlpasswd,database);  with picamera.PiCamera() as camera:  camera.start_preview()  now=time.localtime()  s="%04d_%02d_%02d_%02d_%02d_%02d.jpg"%(now.tm_year,now.tm_mon,now.tm_md ay,now.tm_hour,now.tm_min,now.tm_sec)  print s  file="/var/www/image/"+s  camera.capture(file)  camera.stop_preview()

11 Python 소스  cur=db.cursor()  cur.execute("insert into img(name) values(\'"+s+"\')")  db.commit()  cur.close()  db.close()  time.sleep(10)  GPIO.cleanup()

12 Python 설명  ECHO 를 21 번에 TRIG 을 20 번에 연결하고 gnd 를 끌어다 echo 에 저항 3K 를 연결 하였습니다.  Rpi.GPIO 모듈을 이용하여 초음파센서를 설정하고 초음파가 갔다 오는 시간을 duration 변수에 넣고 거리를 시간 * 속도 /2 를 하여 계산을 하였습니다.  MySQLdb 모듈과 picamera 모듈을 이용하여 거리가 50 미만이면 사진을 찍고 DB 에 저장을 하게 하였습니다.

13 웹 소스 (Index.php)  http://www.w3.org/TR/html4/loose.dtd   Double-Y   Index  Img

14 웹 소스 (Index.php)   Image  Date 

15 웹 소스 (Index.php)  HTML 소스를 이용하여 웹에 대한 기본틀을 짜고 PHP 소스를 이용하여 다른 php 파일을 include 하였습니다.  태그를 이용하여 표를 만들고 표안에 이미지를 넣게 하였습니다.

16 웹 소스 (mysql.php)  <?php  $hostname="127.0.0.1";  $username="root";  $password="1234";  $dbname="image";   $connect=mysql_connect($hostname,$username,$password) or die("MySQL Fail");  $dbconn=mysql_select_db($dbname,$connect);  $result=mysql_query("select name from img");  echo " ";  while($row=mysql_fetch_assoc($result)){  $n=$row['name'];

17 웹 소스 (mysql.php)  $date = substr($n,0,4)."/".substr($n,5,2)."/".substr($n,8,2)." ".substr($n,11,2).":".substr($n,14,2).":".substr($n,17,2);  echo " ";  echo $date;  echo " ";   }  echo " ";  mysql_close();

18 웹 소스 (mysql.php)  Hostname 과 username, password, dbname 을 변수로 선언하여 저장해놓고 mysql_connect 를 이용하여 mysql 에 접속하여 connect 변수에 상태를 넣었습니 다.  Mysql_select_database 를 이용하여 데이터베이스를 설정하고 dbconn 변수에 넣 었습니다.  Img 테이블에 있는 모든 name 컬럼을 가져오는 Sql 문인 ‘select name from img’ 을 Mysql_query 를 이용하여 result 변수에 저장하였습니다.  mysql_fetch_assoc 를 이용하여 result 변수에 있는 것들을 배열로써 불러와 컬 럼명을 이용하여 접근할수 있게 하였습니다.  Substr 을 이용하여 문자열을 잘라 찍은 시간을 볼 수 있게 하였습니다.  태그를 이용하여 이미지를 불러오고 width 와 height 를 이용하여 크기를 조정하였습니다.

19 웹 소스 (search.php)   Double-Y   Index  Img 

20 웹 소스 (search.php)   ~ 

21 웹 소스 (search.php)  Html 로 기본적인 웹 틀을 작성하고 태그를 이용하여 검색버튼을 누르면 검색을 하는 파일이 있는 경로로 가 그 파일을 불러올 수 있게 했고, 태 그를 이용하여 text 를 넣는 창과 검색버튼을 넣을수 있게 하였습니다.

22 웹 소스 (s_m.php)   Index  Img 

23 웹 소스 (s_m.php)  <?php  $Date1 = $_POST["date1"];  $Date2 = $_POST["date2"];  $hostname="127.0.0.1";  $username="root";  $password="1234";  $dbname="image";  $connect=mysql_connect($hostname,$username,$password) or die("MySQL Fail");  $dbconn=mysql_select_db($dbname,$connect);

24 웹 소스 (s_m.php)  $result=mysql_query("select name from img where name between '".$Date1.".jpg' and '".$Date2.".jpg'");  echo " ";  echo " Img Date ";  echo " ";  while($row=mysql_fetch_assoc($result)){  $n=$row['name'];  echo " ";  $date = substr($n,0,4)."/".substr($n,5,2)."/".substr($n,8,2)." ".substr($n,11,2).":".substr($n,14,2).":".substr($n,17,2);  echo " ";

25 웹 소스 (s_m.php)  echo " ";  echo $date;  echo " ";  }  echo " ";  mysql_close();  ?>

26 웹 소스 (s_m.php)  _POST 를 이용하여 search.php 에서 입력한 text 를 불러왔습니다.  데이터베이스에 접속하고 ‘select name from img where between $Date1 and $Date2’ 를 이용하여 전에 입력한 text 사이의 기간에 찍었던 사진들을 불러오게 하였습니다.

27 실행 화면 (index.php)

28 실행화면 (search.php)

29 실행화면 (s_m.php)( 검색결과 )


Download ppt "시스템소프트웨어 1401552 김 영욱 1401586 양 오석. 목적  라즈베리파이에서 GPIO 를 이용하여 초음파 센서를 연결하고 거리를 측정해 일 정한 거리안에 사람이 들어오면 파이 카메라를 이용하여 사진을 찍고 데이터 베 이스에 올려 웹에서 사진을 보고 검색을."

Similar presentations


Ads by Google