final_2
This commit is contained in:
		
							parent
							
								
									0bf91c38a8
								
							
						
					
					
						commit
						1d78becdd4
					
				
					 8 changed files with 202 additions and 134 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								access_control_python/__pycache__/stm32.cpython-311.pyc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								access_control_python/__pycache__/stm32.cpython-311.pyc
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -6,6 +6,7 @@ import face_processing as fp
 | 
				
			||||||
from access_control_mqtt import access_control
 | 
					from access_control_mqtt import access_control
 | 
				
			||||||
from database import Database, Student, Parent
 | 
					from database import Database, Student, Parent
 | 
				
			||||||
from display import Display
 | 
					from display import Display
 | 
				
			||||||
 | 
					from stm32 import stm32_distance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SERIAL_PORT_DISPLAY = "COM11"
 | 
					SERIAL_PORT_DISPLAY = "COM11"
 | 
				
			||||||
CAMERA_INDEX = 0
 | 
					CAMERA_INDEX = 0
 | 
				
			||||||
| 
						 | 
					@ -69,22 +70,45 @@ def door_open():
 | 
				
			||||||
        #display.set_page("scan")
 | 
					        #display.set_page("scan")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SD = stm32_distance("COM13")
 | 
				
			||||||
 | 
					#start_time = time.perf_counter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					flag: bool = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					while True:
 | 
				
			||||||
 | 
					    state = round((perf_counter())%1)
 | 
				
			||||||
 | 
					    if(flag!=state):
 | 
				
			||||||
 | 
					        flag = state
 | 
				
			||||||
 | 
					        print(f"change to : {state}")
 | 
				
			||||||
 | 
					    print(state)
 | 
				
			||||||
 | 
					    delay(0.05)
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while True:
 | 
					while True:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while not frame_ready:
 | 
					    while not frame_ready:
 | 
				
			||||||
        time.sleep(1)
 | 
					        time.sleep(1)
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    should_restart = True
 | 
					    should_restart = True
 | 
				
			||||||
 | 
					    distance = SD.get_distance()
 | 
				
			||||||
 | 
					    print(distance)
 | 
				
			||||||
 | 
					    state = distance < 800
 | 
				
			||||||
 | 
					    if state!= flag:
 | 
				
			||||||
 | 
					        flag = state
 | 
				
			||||||
 | 
					        if(state):
 | 
				
			||||||
 | 
					            display.set_string("msg.txt","Scanning")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            display.set_page("scan")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					    if (state): # Scan state
 | 
				
			||||||
        while should_restart:
 | 
					        while should_restart:
 | 
				
			||||||
            #Try to identify face
 | 
					            #Try to identify face
 | 
				
			||||||
            should_restart = False
 | 
					            should_restart = False
 | 
				
			||||||
            #if actrl.get_scan_state():
 | 
					            #if actrl.get_scan_state():
 | 
				
			||||||
            if(True):
 | 
					            if(True):
 | 
				
			||||||
                #print("SCAN ACTIVE!")
 | 
					                #print("SCAN ACTIVE!")
 | 
				
			||||||
            display.set_string("msg.txt","Scanning")
 | 
					                #display.set_string("msg.txt","Scanning")
 | 
				
			||||||
                faces = fp.identify_face(img, target_condidence=0.6) ## Scan student face
 | 
					                faces = fp.identify_face(img, target_condidence=0.6) ## Scan student face
 | 
				
			||||||
                if(len(faces)==1):
 | 
					                if(len(faces)==1):
 | 
				
			||||||
                    #print("faces == 1")
 | 
					                    #print("faces == 1")
 | 
				
			||||||
| 
						 | 
					@ -178,6 +202,7 @@ while True:
 | 
				
			||||||
                        #parent_facefile = faces[0]['name']   
 | 
					                        #parent_facefile = faces[0]['name']   
 | 
				
			||||||
                        #parent_info = db.get_parent_info(parent_facefile)
 | 
					                        #parent_info = db.get_parent_info(parent_facefile)
 | 
				
			||||||
                        #if(parent_info!= None):
 | 
					                        #if(parent_info!= None):
 | 
				
			||||||
 | 
					                        print("Find parent info")
 | 
				
			||||||
                        display.set_page("prt_wo_stu")
 | 
					                        display.set_page("prt_wo_stu")
 | 
				
			||||||
                        display.set_string("name_pt.txt", f'Name: {parent_info.name}')
 | 
					                        display.set_string("name_pt.txt", f'Name: {parent_info.name}')
 | 
				
			||||||
                        display.set_string("surname_pt.txt", f'Surname: {parent_info.surname}')
 | 
					                        display.set_string("surname_pt.txt", f'Surname: {parent_info.surname}')
 | 
				
			||||||
| 
						 | 
					@ -199,6 +224,7 @@ while True:
 | 
				
			||||||
                print("Scan inactivate!!")
 | 
					                print("Scan inactivate!!")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    '''                
 | 
					    '''                
 | 
				
			||||||
                #is student, request another scan for parent
 | 
					                #is student, request another scan for parent
 | 
				
			||||||
                parent_face = fp.identify_face(img, target_condidence=0.6)
 | 
					                parent_face = fp.identify_face(img, target_condidence=0.6)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -85,12 +85,12 @@ while True:
 | 
				
			||||||
                            i = 10
 | 
					                            i = 10
 | 
				
			||||||
                            #TODO Check if door close, lock
 | 
					                            #TODO Check if door close, lock
 | 
				
			||||||
                            while(i>=0):
 | 
					                            while(i>=0):
 | 
				
			||||||
                                
 | 
					 | 
				
			||||||
                                if (not actrl.get_door_state()): # False door is left open
 | 
					                                if (not actrl.get_door_state()): # False door is left open
 | 
				
			||||||
                                    display.set_string("msg.txt","Door is left open, Alram in {} sec".format(i))
 | 
					                                    display.set_string("msg.txt","Door is left open, Alram in {} sec".format(i))
 | 
				
			||||||
                                    time.sleep(1)
 | 
					                                    time.sleep(1)
 | 
				
			||||||
                                    i -= 1
 | 
					                                    i -= 1
 | 
				
			||||||
                                    if i == 0:
 | 
					                                    if i == 0:
 | 
				
			||||||
 | 
					                                        display.set_string("msg.txt", "Alarm Active!! Please close the door"")
 | 
				
			||||||
                                        actrl.activate_alarm()
 | 
					                                        actrl.activate_alarm()
 | 
				
			||||||
                                else:
 | 
					                                else:
 | 
				
			||||||
                                    actrl.lock_door()
 | 
					                                    actrl.lock_door()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,30 @@
 | 
				
			||||||
import serial
 | 
					import serial
 | 
				
			||||||
 | 
					import threading
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ser = serial.Serial('COM13', 115200)
 | 
					class stm32_distance():
 | 
				
			||||||
 | 
					    data: int = 0
 | 
				
			||||||
 | 
					    def __init__(self, serial_port: str) -> None:
 | 
				
			||||||
 | 
					        self.serial_port = serial_port
 | 
				
			||||||
 | 
					        self.ser = serial.Serial(self.serial_port, 115200)
 | 
				
			||||||
 | 
					        self.thread = threading.Thread(target=self.__read_data)
 | 
				
			||||||
 | 
					        self.thread.start()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __read_data(self):
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            data = b''
 | 
					            data = b''
 | 
				
			||||||
            while True:
 | 
					            while True:
 | 
				
			||||||
        byte = ser.read()
 | 
					                byte = self.ser.read()
 | 
				
			||||||
                if byte == b'\x03':
 | 
					                if byte == b'\x03':
 | 
				
			||||||
                    break
 | 
					                    break
 | 
				
			||||||
                data += byte
 | 
					                data += byte
 | 
				
			||||||
 | 
					 | 
				
			||||||
            data_str = data.decode('utf-8')
 | 
					            data_str = data.decode('utf-8')
 | 
				
			||||||
    print(data_str)
 | 
					            try:
 | 
				
			||||||
 | 
					                self.data = int(data_str)
 | 
				
			||||||
 | 
					            except: 
 | 
				
			||||||
 | 
					                pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_distance(self):
 | 
				
			||||||
 | 
					        return self.data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
 | 
					from stm32 import stm32_distance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from espmega.espmega_r3 import ESPMega_standalone as ESPMega
 | 
					SD = stm32_distance("COM13")
 | 
				
			||||||
plc = ESPMega("/facescan","192.168.0.239",1883)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
plc.digital_write(2,0)``
 | 
					while True:
 | 
				
			||||||
 | 
					    print(SD.get_distance())
 | 
				
			||||||
							
								
								
									
										13
									
								
								access_control_python/test2.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								access_control_python/test2.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					import serial
 | 
				
			||||||
 | 
					ser = serial.Serial('COM13', 115200)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					data = b''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while True:
 | 
				
			||||||
 | 
					    byte = ser.read()
 | 
				
			||||||
 | 
					    if byte == b'\x03':
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
 | 
					    data += byte
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					data_str = data.decode('utf-8')
 | 
				
			||||||
 | 
					print(data_str)
 | 
				
			||||||
							
								
								
									
										11
									
								
								access_control_python/test3.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								access_control_python/test3.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					from time import perf_counter
 | 
				
			||||||
 | 
					from time import sleep as delay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					flag: bool = False
 | 
				
			||||||
 | 
					while True:
 | 
				
			||||||
 | 
					    state = round((perf_counter())%1)
 | 
				
			||||||
 | 
					    if(flag!=state):
 | 
				
			||||||
 | 
					        flag = state
 | 
				
			||||||
 | 
					        print(f"change to : {state}")
 | 
				
			||||||
 | 
					    print(state)
 | 
				
			||||||
 | 
					    delay(0.05)
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue