※ 화재경보기 알고리즘
- 감지기는 화재가 발생할 떄 열이나 연기, 압력, 이온 등을 감지하는 장치인데
이 중 한 종류인 정온식감지기는 주위 온도가 일정한 온도 이상이 될 경우 작동하고 작동하는 온도를
공칭작동온도라고 한다. 해당 온도의 범위는 섭씨 60도~섭씨150도 이며, 섭씨 60도에서 80도 미만은 5도 간격으로, 섭씨 80도 이상은 10도 간격으로 설정되어 있다. 또한, 작동 온도에 따라 백색, 청색, 적색으로 표시가 된다.
백색: 80도 미만, 청색: 80도~120도 미만, 적색: 120도 이상
import turtle as t
color_status = ["white", "blue", "red"]
alert_status = ["정상", "주의", "화재"]
tempc = 50
def check_fire():
if tempc < 80:
status = 0
elif tempc < 120:
status = 1
else:
status = 2
t.clear()
t.home()
t.pendown()
t.fillcolor(color_status[status])
t.begin_fill()
t.circle(20)
t.end_fill()
t.penup()
t.goto(-22, 50)
t.write("%s : %d"%(alert_status[status], tempc))
def keyUp():
global tempc
if tempc < 80:
tempc = tempc + 5 # 80도 보다 낮은 경우는 5도씩만 올라감
else:
tempc = tempc + 10 # 80도 이상인 경우 10도씩 올라감
check_fire() # 화재 여부를 알려주는 check_fire() 함수 호출
def keyDown():
global tempc
if tempc < 80:
tempc = tempc - 5
else:
tempc = tempc - 10
check_fire()
t.setup(300, 300)
s = t.Screen()
t.hideturtle()
t.speed(0)
check_fire()
s.onkey(keyUp, "Up") # 위(Up) 방향키가 눌리면 keyUp() 콜백 함수 호출
s.onkey(keyDown, "Down") # 아래(Down) 방향키가 눌리면 keyDown() 콜백 함수 호출
s.onkey(s.bye, "q") # q가 눌리면 터틀 스크린 종료
s.listen()
t.mainloop()
'기타 > What I Learned' 카테고리의 다른 글
[TIL] 7세그먼트 개별 LED 숫자 표시 (0) | 2021.11.27 |
---|---|
[TIL] 파이썬으로 배우는 STEAM 코딩(21.11.26) (0) | 2021.11.26 |
[TIL] 파이썬으로 익히는 STEAM 코딩 (21.11.24) (0) | 2021.11.24 |
[TIL] 파이썬으로 익히는 STEAM 코딩 (21.11.23) (0) | 2021.11.23 |
[TIL] 파이썬으로 익히는 STEAM 코딩(21.11.22) (0) | 2021.11.22 |