# 스마트홈 시스템
## 구성
- 실내환경 측정기 > master
- 적외선 리모콘 > slave
- 브라우저, 어플 > 수동제어 및 로그
실내환경 측정기와 / 모바일어플 / 브라우저를 통해서
나만의 자동 실내환경 관리 시스템을 만드는 것이 주 목적
## use case
```mermaid
graph TD
1[실내환경 측정기] --자동센서--> 2[적외선 리모콘 제어]
4[브라우저] --수동제어--> 2
3[모바일어플] --수동제어--> 2
4 --웹페이지--> 5[웹페이지 대시보드, 로그를 통한 추적감시]
```
> 과정
### 실내환경 측정기
온/습도계 및 미세먼지 센서를 통한 실내환경 실시간 수집 대응이 목적 (변화 로그 포함)
모니터링은 LCD로 실시간 수치를 볼 수 있고 / LED 색상으로도 확인가능

### 리모콘 명령 값 알아내기
적외선 수신 모듈을 통해 각종 리모콘의 적외선 명령 정보 수집

각종 명령어 신호를 레인보우 테이블로 수집했음

```js
airConditioner
ON : 0xB29FB0
OFF : 0xB27BE0
24도 : 0xB29F40
25도 : 0xB29FC0
26도 : 0xB29FD0
27도 : 0xB29F90
28도 : 0xB29F80
29도 : 0xB29FA0
30도 : 0xB29FB0
전등 제어
ON : 0xFFE01F
16:06:00.899 -> uint32_t address = 0x0;
16:06:00.899 -> uint32_t command = 0x7;
OFF : 0xFF609F
16:05:50.480 -> uint32_t address = 0x0;
16:05:50.480 -> uint32_t command = 0x6;
빨강으로 : 0xFF906F
16:05:41.966 -> uint32_t address = 0x0;
16:05:41.966 -> uint32_t command = 0x9;
16:05:41.966 -> uint64_t data = 0xFF906F;
초록으로 : 0xFF50EF
16:05:27.532 -> uint32_t address = 0x0;
16:05:27.532 -> uint32_t command = 0x8;
16:05:27.532 -> uint64_t data = 0xFF10EF;
파랑으로 : 0xFF50AF
16:04:47.595 -> uint32_t address = 0x0;
16:04:47.595 -> uint32_t command = 0xA;
16:04:47.595 -> uint64_t data = 0xFF50AF;
...
```
### 원격 리모트 제어
1차적으로 와이파이에 접속하고 > WeMos D1 R1 사용
로컬에 리모콘 제어 페이지를 배포하였지만 성공적인 경우
웹서버에 제어 페이지를 배포하는 것을 구상함

### 모바일 iot 제어
클라우드 SAAS 를 통해 모바일 어플 연동, 수동제어를 구상함

리모콘을 대체로 인터넷만 있다면 타지에서 사용 가능해짐

추가적으로 수집기의 on/off 상태나 상태변화 로그를 수집

브라우저에서 해당 정보를 이용하여 로그 분석 및 기록 확인을 하려고 했음
### 미완성
- 시리얼 통신을 통한 측정기와 리모콘 연동,
- 공기청정기, 전등 들 기타 가구 연동
- 로그 및 위험수치 알람 기능
### 문제점
리모콘이 송신기가 상태가 좋지 않아 테스트 불가
### 결론
지금은 미완성 상태로 제출하지만 추후에 납땜도 하고
라즈페이 파이를 통해 완성도를 높이고 싶음
이 과제를 통해 iot 기기나 스마트홈 시스템의 원리에 대해
흥미를 가지고 구현했던 것 같다.