728x90
반응형
개요
1. 초음파 센서로 접근을 확인하여 가까이 왔을 때 초록색 LED가 켜지고, RFID 를 사용할 수 있다.
2. 출입 인증 성공시, 서보모터로 문이 열리고 부저를 통해 출근 환영 음악이 나온다. 그후 문이 닫힌다.
3. 출입 실패시, 부저에서 간단한 경고음과 빨간색 LED가 켜지고, 3회 연속 실패시, 응급 경고음이 길게 울린다. 이때, 출입 성공을 한번 하면 실패 횟수가 초기화 된다.
4. FND로 출입한 사람 수를 출력해준다.
회로구성
준비물 : 라즈베리파이, 초음파센서, FND 7-Segment, RFID, 빨간색과 초록색 LED, Buzzer, 서보모터
코드
from gpiozero import DistanceSensor,LED,AngularServo,TonalBuzzer
from mfrc522 import SimpleMFRC522
from gpiozero.tones import Tone
from time import sleep
red = LED(2)
green = LED(3)
buzzer= TonalBuzzer(4)
trig = 20
echo =21
sensor = DistanceSensor(echo,trig)
a=LED(5)
b=LED(6)
c=LED(13)
d=LED(19)
e=LED(26)
f=LED(7)
g=LED(1)
dp=LED(12)
num=[
[a,b,c,d,e,f],
[b,c],
[a,b,g,e,d],
[a,b,g,c,d],
[f,g,b,c],
[a,f,g,c,d],
[a,f,g,e,c,d],
[f,a,b,c],
[a,b,c,d,e,f,g],
[a,b,c,d,f,g]
]
def show(n):
global num
for m in num[8]:m.off()
for m in num[n]:m.on()
lst = [391, 391, 440, 440, 391, 391, 329]
t = [0.5, 0.5, 0.5,0.5,0.5,0.5,1]
red.off()
green.off()
cnt=0
failCnt=0
def success():
global cnt, failCnt
#servo
servo = AngularServo(14,min_angle=0, max_angle=90)
servo.angle=0
sleep(1)
#sing
for i in range(len(lst)):
buzzer.play(lst[i])
sleep(t[i])
buzzer.stop()
servo.angle=90
sleep(1)
#fnd cnt++
cnt+=1
failCnt=0
def fail() :
global failCnt
failCnt+=1
red.on()
green.off()
if failCnt >= 3 :
#warning sing
for i in range(4):
buzzer.play(440)
sleep(0.5)
buzzer.play(391)
sleep(0.5)
buzzer.stop()
buzzer.play(440)
sleep(0.5)
buzzer.stop()
#tag 208836238120
card = 772754376848
disFlag=0
while True:
red.off()
green.off()
show(cnt)
dis = sensor.distance
print(dis)
if dis < 0.1 : disFlag =1
else : disFlag = 0
if disFlag == 1 :
#near
red.off()
green.on()
print("Hold a tag near the reader")
id = SimpleMFRC522().read()[0]
print(id)
sleep(0.3)
if id == card : success()
else : fail()
결과 영상
728x90
반응형
'임베디드' 카테고리의 다른 글
[리눅스] 랜덤함수 rand(), srand(), time() (0) | 2022.04.30 |
---|---|
[리눅스] 시그널 신호 보내기, WDT(Watchdog Timer) (0) | 2022.04.29 |
[라즈베리파이] 초음파 센서를 이용한 방문자수 구하기 (0) | 2022.04.27 |
[라즈베리파이] OLED와 BMP280 을 이용한 온도계 제작 (0) | 2022.04.26 |
[라즈베리파이] 센스햇 기초 (0) | 2022.04.25 |