브라우저에서 자바스크립트가 꺼져 있어 화면을 보여 드릴 수 없습니다.
프로젝트 목록
컴퓨터논리회로

교실 자동 냉난방·환기 시스템

센서 6개로 장치 4개를 제어하는 논리 회로. and·or·not 세 연산만으로 설계해 진리표 64줄로 검증했고, tkinter 프로그램을 브라우저 시뮬레이터로 옮겼습니다.

2026-10-01조회 64GitHub

SSHS 「불 대수와 논리게이트로 만드는 스마트 발명품」 발명수업 팀 프로젝트(2026-08)입니다. 센서 6개를 읽어 장치 4개를 제어하는 판단 규칙을 and·or·not 세 연산만으로 적고, 진리표 64줄로 검증했습니다.

원래 tkinter 창으로 만든 프로그램은 설치 없이 쓰는 시뮬레이터로도 옮겼습니다. 진리표와 전체 테스트가 함께 들어 있습니다.

교실에서는 창문을 열어둔 채 에어컨이 돌고, 아무도 없는데 난방이 켜져 있고, 공기가 답답한데 아무도 창문을 열지 않습니다. 켜야 할 조건은 분명한데 사람이 매번 놓치는 문제라, 그 조건을 논리식으로 적어 기계가 대신 판단하게 했습니다.

입력과 출력

입력 뜻 출력 뜻
R 자동 운영 모드가 켜져 있는가 C 냉방
P 교실에 사람이 있는가 H 난방
W 창문이 열렸는가 A1 창문 닫기 경고음
T1 외부 온도가 28도를 초과하는가 A2 창문 열기 경고음
T2 외부 온도가 18도 미만인가
Q 이산화탄소 농도가 높은가

입력이 6개이므로 가능한 조합은 2⁶ = 64가지입니다. 전부 진리표로 적어 검증했습니다.

논리식

hot  = T1 and (not T2)      # 더위 신호가 믿을 만한가
cold = T2 and (not T1)      # 추위 신호가 믿을 만한가

C  = R and P and (not W) and hot  and (not Q)
H  = R and P and (not W) and cold and (not Q)
A1 = R and P and W and (hot or cold) and (not Q)
A2 = P and (not W) and Q

자동 운영 모드를 끄면 사람이 냉난방을 직접 켜고 끕니다. R 이 선택 신호인 2:1 멀티플렉서 구조입니다. 경고음은 안전 장치라 수동 모드에서도 자동 판단을 그대로 씁니다.

C_최종 = (R and C) or ((not R) and 수동냉방)
H_최종 = (R and H) or ((not R) and 수동난방)

결과 한눈에

  • 64가지 중 장치가 하나라도 도는 조합은 12가지뿐입니다. 나머지 52가지는 전부 정지 상태입니다.
  • 냉방과 난방, 창문 닫기 경고와 열기 경고는 어떤 조합에서도 동시에 켜지지 않습니다.
  • 진리표 64줄과 실제 동작을 비교한 전체 테스트: 64 / 64 통과.
R P W T1 T2 Q C H A1 A2 동작
1 1 0 1 0 0 1 0 0 0 자동 냉방
1 1 0 0 1 0 0 1 0 0 자동 난방
1 1 1 1 0 0 0 0 1 0 창문 닫기 경고
1 1 1 0 1 0 0 0 1 0 창문 닫기 경고
0 1 0 * * 1 0 0 0 1 창문 열기 경고 (4가지)
1 1 0 * * 1 0 0 0 1 창문 열기 경고 (4가지)

* 는 온도 센서 값과 무관하다는 뜻입니다. 공기 질 경고는 온도를 보지 않습니다.

설계하면서 고친 세 가지

문제 증상 해결
A1에 창문 조건이 없었습니다 창문이 닫혀 있는데 "닫아 주세요"가 울립니다 W 추가
A2에 창문 조건이 없었습니다 창문이 열려 있는데 "여세요"가 울립니다 not W 추가
T1과 T2가 동시에 참일 수 있었습니다 냉방과 난방이 함께 켜집니다 hot / cold 로 분리

세 번째는 물리적으로 불가능한 입력입니다. 28도를 넘으면서 동시에 18도 미만일 수는 없으니, 센서가 그런 값을 보내면 고장으로 보고 온도로 움직이는 출력을 전부 멈춥니다. 세 가지 모두 식만 봐서는 찾지 못했고, 진리표 64줄을 눈으로 훑다가 발견했습니다.

더 보기

  • 설계 노트 → — 과제 명세, 자연어 조건, 설계 근거, 검증 방법, 웹으로 옮기며 바뀐 점.
  • classroom_hvac.py — 원본 tkinter 구현. Python 표준 라이브러리만 쓰고, 설치할 패키지가 없습니다.
  • classroom_hvac.py 는 원본 저장소의 내작업/ 과 함께 MIT 라이선스로 공개돼 있습니다. 자유롭게 쓰고 고쳐도 됩니다.
  • 수업에서 받은 실습 파일과 PDF 는 저작권이 작성자에게 있어 여기에는 올리지 않았습니다. GitHub 저장소에 참고용으로 있습니다.