아두이노 기반 마이크로컨트롤러와 중앙 제어 PC를 연동하여 공동현관, 엘리베이터, 실내 환경, 커튼을 통합으로 관리하는 스마트홈 IoT 시스템입니다.
| 카테고리 | 기술 |
|---|---|
| 백엔드 & 서버 | |
| 프론트엔드 & UI | |
| 하드웨어 | |
| 데이터베이스 | |
| 협업 & 관리 |
| 이름 | 역할 | GitHub |
|---|---|---|
| 양효인 | 팀장, 공동현관 기능 구현, Flask 서버 구현 | @hyoinYang |
| 박용우 | 대시보드 구현, 엘리베이터 기능 구현 | @tomung-puppy |
| 이준규 | 실내 환경 제어 기능 구현 | @yesbandyok |
| 최종명 | 커튼 자동 제어 기능 구현 | @northpard |
| 한창희 | ppt 제작, 발표 | @Jihye080498 |
- RFID 기반 공동현관 제어: 카드 인식을 통한 보안 출입 관리
- 엘리베이터 통합 제어: 공동현관 연동 자동 호출 및 층수 관리
- 실내 환경 모니터링: 온습도 기반 자동 에어컨/히터/가습기 제어
- 조도 기반 커튼 제어: 외부 밝기에 따른 자동/수동 커튼 조절
- 통합 대시보드: 모든 기능을 한눈에 모니터링하고 제어
- 데이터 로깅: 모든 센서 데이터 및 제어 기록을 DB에 저장
- 사전에 인가된 태그가 인식되면 공동현관 열기
- 문 사이에 물체를 인지해 공동현관이 닫히는 타이밍 조절
- 태그 정보, 공동현관 열림/닫힘 여부를 모니터링
- 수동 제어 모드 지원
- 공동현관이 열리면 엘리베이터 자동 호출
- 다른 층의 호출 구현
- 온도, 습도 실시간 모니터링
- 자동 에어컨/히터/가습기 제어
- 수동 제어 모드 지원
- 조도 센서 기반 자동 커튼 제어
- 수동 제어 모드 지원
- 모터 위치 및 방향 모니터링
모든 아두이노는 중앙 PC와 직렬 통신으로 통신합니다. 상세한 프로토콜 명세는 PROTOCOL.md를 참조하세요.
모든 장치의 로그는 AWS RDS MySQL에 통합 저장됩니다:
CREATE TABLE curtain_log (
log_id INTEGER PRIMARY KEY AUTO_INCREMENT,
timestamp DATETIME,
device_id VARCHAR(50),
data_type VARCHAR(20),
metric_name VARCHAR(50),
value VARCHAR(255)
);- 저장 시점: 센서 데이터 - 3초 주기, 이벤트 데이터 - 이벤트 발생 당시
- 접근 제어: 아두이노는 DB에 직접 접근 불가 (중앙 서버를 통해서만 접근)
smart-home-iot/
├── README.md
├── PROTOCOL.md # 통신 프로토콜 상세 명세
├── requirements.txt
├── main.py # 메인 애플리케이션
|
├── ui/
│ ├── dashboard.py # 메인 대시보드 UI
│ ├── log_viewer.py # 로그 뷰어
│ └── widgets/ # UI 컴포넌트
├── devices/
│ ├── entrance/
│ │ └── entry.ino # 공동현관 제어
│ ├── curtain/
│ │ └── curtain.ino # 커튼 제어
│ ├── elevator/
│ │ └── elevator.ino # 엘리베이터 제어
│ ├── dht/
│ │ └── dht.ino # 온습도 제어
└── service/
├── app/
│ └── main.py # Flask 서버 실행
└── pyqt/
└── dashboard.py # PyQT6 대시보드 실행
