나의 여행과 일상 일기장

(10) 캡스톤디자인 10강_유효하지 않은 QRcode 처리 본문

일상일기

(10) 캡스톤디자인 10강_유효하지 않은 QRcode 처리

똥글똥글 2022. 4. 27. 20:21
반응형

1. 수정된 알고리즘에 맞게 코드 변경

(1) improcess2.py

    //
    sleep(1)
    print("QRcode 인식으로 넘어갑니다")
    import qrprocess    #번호판 인식후 QRcode를 인식
    qrprocess.qr()    
        
    sys.exit(1)  #메모리 과부하를 막기 위한 exit()
    //

- 번호판 추출코드가 실행된 후에 QRcode인식 코드가 실행되게 수정한다.

 

(2) serialmicro2.py

import serial
import sys
from time import sleep
import os
import RPi.GPIO as GPIO
import time
from picamera import PiCamera
import pymysql

def micro2():     #QRcode 인식 후 불법주차로 판명되었을때의 초음파센서 과정
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(17, GPIO.OUT)
      
    while True:
        ser = serial.Serial('/dev/ttyUSB0',9600)   #while문이 계속 돌면서 통신포트 open
        microresult = int(ser.readline())
        
        GPIO.output(17, True)  #주차중인 경우 계속 LED가 깜박이도록한다. 
        time.sleep(0.1)
        GPIO.output(17, False)
        time.sleep(0.1)
        
        if microresult < 10:  #불법주차
            print("불법주차 차량이 주차되어 있습니다.")
            GPIO.output(17, False)
            
            #데이터베이스에 데이터 삽입
            #네이버 클라우드 데이터베이스
            conn = pymysql.connect(host = 'xx.xx.xx.xx', user='xx', password='xx', db = 'firstdb', charset='utf8')
            curs=conn.cursor()
            
            import datetime    #현재 시간을 넣기위해
            now = datetime.datetime.now()
            
            sql = "UPDATE picam SET piTime = %s, piTF =%s where id=13"  #id가 13인 위치에 데이터 수정(시간과 F 삽입)
            
            curs.execute(sql, (now, 'F'))  #sql실행(현재 시간과 F 삽입)
            
            conn.commit()
            conn.close()
            
            sleep(1)
            import serialard        #데이터 삽입이 끝난후 다시 조도센서부터 시작     
            serialard.sensor()
    
            sys.exit(1)    #이건 필수로 있어야 함
        elif microresult >= 10 and microresult < 90:   #차가 나가는 중
            print("차가 나가는 중입니다")    
            continue
        else:                             #차가 다시 뒤로 나가면 조도센서로 처음부터 다시 인식
            print("차가 나갔습니다")
            GPIO.output(17, False)
            import serialard
            serialard.sensor()
            sys.exit(1)   #이것도 필수
            
micro2()

- 기간이 만료되거나 유효하지 않은 qrcode는 부저가 울린 후 serialmicro2.py코드를 이용해서 불법주차 차량이 벌금을 받지 않고 나갈 수 있는 기회를 부여합니다. 불법주차차량이 나가지 않는다면 데이터베이스에 접근하여 현재시간과 ‘F’글자를 넣어서 관리자가 벌금을 부과할 수 있도록 SQL문을 삽입합니다. 불법주차차량이 나갔다면 조도센서인식부터 다시 시작합니다.

2. 주차장 시스템 합판 수정

- 바닥면의 모서리 부분을 깎아서 정교하게 만들었고 카메라의 구멍을 기존보다 작게 만들어서 렌즈만 나올 수 있게 만들어서 전체적으로 깔끔하게 만들었다. 그리고 초음파센서의 구멍 크기도 줄어서 타이트하게 만들었다.

반응형