README 문장 정리 되돌림
This commit is contained in:
1 parent
2b8b7fee64
commit
a65276f2de
1 file changed
+79
-52
@@ -1,78 +1,105 @@
|
||||
# 스마트 홈 환경 제어 IoT 시스템
|
||||
## 프로젝트 개요
|
||||
|
||||
Arduino Mega로 집 안팎의 센서 값을 읽고, 전기매트, 보일러, 창문을 조건에 따라 제어한 프로젝트입니다.
|
||||
본 프로젝트는 Arduino 기반 스마트 홈 환경 제어 IoT 시스템으로 실내·실외 환경 정보를 실시간으로 수집하여 전기매트, 보일러, 자동 창문을 시간·환경 조건·사용자 명령에 따라 자동 또는 수동으로 제어한다.
|
||||
|
||||
Ethernet Shield로 서버와 통신합니다. 서버 화면에서는 현재 센서값과 장치 상태를 확인하고, 일부 값을 수동으로 바꿀 수 있습니다.
|
||||
온·습도, 가스, 조도, 빗물, 창문 위치 센서를 복합적으로 사용하며, Ethernet 쉴드를 통해 원격 서버와 양방향 통신을 수행하여 실시간 모니터링 및 제어가 가능한 스마트 홈 환경을 구현하는 것을 목표로 한다.
|
||||
|
||||
## 기간
|
||||
## 프로젝트 목표
|
||||
1. **실내·외 환경의 실시간 감지**
|
||||
온도, 습도, 체감온도, 조도, 강우, 가스 상태 수집
|
||||
|
||||
- 2022.12 ~ 2023.02
|
||||
2. **생활 패턴 기반 자동 제어**
|
||||
시간대(주/야간), 요일(평일/주말)을 고려한 제어
|
||||
난방 및 창문 자동 동작
|
||||
|
||||
## 사용한 것
|
||||
3. **안전성과 내구성 확보**
|
||||
창문 모터 과부하 감지 및 자동 정지
|
||||
EEPROM을 활용한 상태 유지
|
||||
|
||||
- `Arduino Mega`
|
||||
- `Ethernet Shield`
|
||||
- `DHT22`
|
||||
- `MQ-5`
|
||||
- `MQ-7`
|
||||
- `RTC DS3231`
|
||||
- `Relay`
|
||||
- `EEPROM`
|
||||
- `PHP`
|
||||
- `JavaScript`
|
||||
4. **원격 제어 및 모니터링**
|
||||
서버를 통한 실시간 상태 확인
|
||||
원격 명령 기반 수동 제어 지원
|
||||
|
||||
## 하드웨어
|
||||
5. **확장 가능한 IoT 구조 설계**
|
||||
센서 및 제어 장치 추가가 용이한 구조
|
||||
|
||||
| 구성 | 역할 |
|
||||
| --- | --- |
|
||||
| DHT22 | 실내, 실외, 매트 온습도 측정 |
|
||||
## 하드웨어 구성
|
||||
|
||||
| 구성 요소 | 설명 |
|
||||
|--------:|-------------|
|
||||
| Arduino Mega | 메인 제어 보드 |
|
||||
| Ethernet Shield | 서버와 유선 통신 |
|
||||
| DHT22 | 실내·실외·매트 온습도 측정 |
|
||||
| MQ-5 | LPG 가스 감지 |
|
||||
| MQ-7 | CO 가스 감지 |
|
||||
| 조도 센서 | 실내 밝기 측정 |
|
||||
| 빗물 센서 | 강우 감지 |
|
||||
| 리니어 액추에이터 | 창문 개폐 |
|
||||
| 릴레이 | 전기매트, 보일러 제어 |
|
||||
| RTC DS3231 | 시간 기준 제어 |
|
||||
| 리니어 액추에이터 | 자동 창문 개폐 |
|
||||
| 릴레이 | 전기매트 / 보일러 제어 |
|
||||
| RTC DS3231 | 실시간 시계 |
|
||||
|
||||
## 동작
|
||||
## 구현 기능
|
||||
### 1) 전기매트 스마트 제어
|
||||
전기매트 하부(베개 아래)에 온도 센서를 매립하여 단순 온도 제어가 아닌 체감온도 기반 제어를 구현하였다.
|
||||
|
||||
### 전기매트
|
||||
**동작방식**
|
||||
- 사용자가 설정한 하한 / 상한 온도 범위를 기준으로 릴레이 제어
|
||||
- 일정 온도 범위 내에서 자동으로 ON / OFF 반복
|
||||
|
||||
- 매트 쪽 온도 센서를 읽습니다.
|
||||
- 설정한 하한 온도보다 낮으면 릴레이를 켭니다.
|
||||
- 설정한 상한 온도에 도달하면 릴레이를 끕니다.
|
||||
- 하한/상한을 나눠 릴레이가 짧은 간격으로 반복 전환되지 않게 했습니다.
|
||||
**예시**
|
||||
- 현재 매트 온도: 38℃
|
||||
- 설정값: 하한: 40℃, 상한 45℃
|
||||
|
||||
### 보일러
|
||||
매트는 45℃까지 작동 후 꺼진 뒤, 40℃가 되면 다시 작동을 시작하는 방식으로 항온 유지
|
||||
|
||||
- 실내 온도와 설정값을 비교합니다.
|
||||
- 귀가 시간, 창문 상태, 요일 값을 조건에 넣습니다.
|
||||
- 보일러 온도조절기 배선에 릴레이 회로를 연결해 제어했습니다.
|
||||
### 2) 보일러 스마트 제어
|
||||
기존 보일러 리모컨의 온도 센서를 탈착한 뒤, 관로 포설된 여분의 랜선 가닥을 이용해 직결하였다.
|
||||
보일러실 내부 온도조절기 배선에는 저항 + 릴레이 회로를 추가하여 현재 온도를 제어하는 방식으로 보일러를 동작시킨다.
|
||||
|
||||
### 창문
|
||||
**동작방식**
|
||||
- 실내 온·습도 센서 기반
|
||||
- 시간대 / 창문 상태 / 사용자 설정값 반영
|
||||
|
||||
- 실내 공기질, 실외 공기질, 강우 여부를 함께 봅니다.
|
||||
- 비가 오지 않고 환기가 필요하면 리니어 액추에이터를 움직입니다.
|
||||
- 전압값으로 과부하를 감지하고, 과부하가 있으면 이동을 멈춘 뒤 이전 위치 기준으로 복구를 시도합니다.
|
||||
**예시**
|
||||
- 창문 상태: 닫힘 또는 자동
|
||||
- 시간: 설정한 귀가 2시간 전
|
||||
- 실내 온도: 19.6℃
|
||||
- 설정값: 하한: 20℃, 상한 21℃
|
||||
|
||||
## 서버
|
||||
21℃까지 보일러 가동 후 정지, 20℃가 되면 다시 작동을 시작하는 방식으로 항온 유지
|
||||
전기매트와 동일한 **히스테리시스** 제어 방식
|
||||
|
||||
- `server/index.php`: 상태 화면
|
||||
- `server/communication.php`: Arduino 통신 처리
|
||||
- `server/script.js`: 화면 갱신과 제어 요청
|
||||
- `server/setup.php`: 초기 설정
|
||||
### 3) 창문 스마트 제어
|
||||
이중창 구조물에 리니어 액추에이터를 고정하여 창문을 직접 밀고 당기는 방식의 자동 개폐 시스템을 구현하였다.
|
||||
|
||||
## Arduino 코드
|
||||
**동작방식**
|
||||
- 실내 공기질
|
||||
- 실외 공기질
|
||||
- 실외 수분(강우) 센서
|
||||
- 시간대 (외출 여부)
|
||||
|
||||
- `IOT_PROJECT_V1.ino`: 메인 루프
|
||||
- `communication.ino`: 서버 통신
|
||||
- `window_control.ino`: 창문 제어
|
||||
- `value_change_check.ino`: 값 변경 확인
|
||||
- `watch.ino`: 시간 처리
|
||||
- `serial_print.ino`: 디버그 출력
|
||||
실내 공기질이 나쁘고 실외에 비가 오지 않을 경우 창문을 자동으로 개방하여 환기 수행
|
||||
|
||||
## 메모
|
||||
**안전 및 복구 기능**
|
||||
전압 센서 기반 과부하 감지
|
||||
과부하 발생 시:
|
||||
1. 즉시 창문 이동 중지
|
||||
2. 이전 창문 위치를 기준으로 이동하여 복구 시도
|
||||
|
||||
- EEPROM에는 장치 상태와 설정값 일부를 저장합니다.
|
||||
- 창문 구조물은 실제 창틀에 맞춰 계속 수정이 필요했습니다.
|
||||
- 자동 제어 조건은 실제 생활 패턴에 맞춰 조정했습니다.
|
||||
현재까지 구조물 파손 없이 안정적으로 테스트 중
|
||||
구조물 치수 문제로 인해 현재도 지속적인 수정 및 개선 진행 중
|
||||
|
||||
## 추가 예정 기능
|
||||
|
||||
설계 및 구상 단계
|
||||
- 가습기 자동 제어
|
||||
- 전등 스위치 스마트화
|
||||
|
||||
## 개선 계획
|
||||
|
||||
본 프로젝트는 단순한 스마트 홈 구현이 아니라,
|
||||
실제 생활 공간에서 상시 운용 가능한 자동화 시스템을 목표로 한다.
|
||||
|
||||
안전, 신뢰성, 확장성을 모두 고려한 설계를 통해
|
||||
지속적으로 진화하는 개인 스마트 홈 플랫폼으로 발전시키는 것이 최종 목표이다.
|
||||
Reference in new issue
Block a user