Commit 1bc87193 authored by KangMin An's avatar KangMin An
Browse files

Update: git ignore 수정. 문서 수정.

parent aa44a862
......@@ -22,18 +22,26 @@
## 1. 프로젝트 구성
∟ arduino
∟ code
∟ arduino
∟ code
∟ main_inside
∟ main_outside
∟ info.md
∟ client
∟ server
∟ (data)
∟ src
∟ info.md
∟ client
∟ public
∟ src
∟ components
∟ pages
∟ utils
∟ server
∟ data
∟ admAddressCode.csv( 출처 : https://sgis.kostat.go.kr›upload›census›adm_code)
∟ config
∟ src
∟ controllers
∟ data_processing
∟ rdb_setting
∟ db
∟ models
∟ routers
∟ views
......@@ -76,76 +84,83 @@ git clone https://github.com/dorakang612/EUE.git
> - 이미 설치를 해두셨다면 바로 아래부터 진행합니다.
>
> - 최근에는 Arduino에서 Online IDE를 서비스해주는 것 같습니다. 아두이노를 많이 다루지 않아도 되므로, 필요에 따라 IDE설치 보다 Online IDE를 사용하는 것을 고려해보시기 바랍니다.(해당 내용은 추후 서비스 사용 후 수정 예정)
> <br>
<br>
2. 프로젝트에서 다음의 두 파일을 수정합니다.
- arduino/code/main_inside/main_inside.io
- arduino/code/main_outside/main_outside.io
1. arduino/code/main_inside/main_inside.io
2. arduino/code/main_outside/main_outside.io
위의 두 파일에 대해 본인의 상황에 맞게 다음의 것들을 수정합니다.
- 수정할 것.
1. SSID (공유기의 이름)
2. SSPW (공유기의 비밀번호)
3. EUEIP (웹사이트 아이피주소)
4. EUEPORT (웹사이트 포트번호)
1. SSID (공유기의 이름)
2. SSPW (공유기의 비밀번호)
3. EUEIP (웹사이트 아이피주소)
4. EUEPORT (웹사이트 포트번호)
<br>
<br>
3. 아두이노 메인보드를 PC에 연결합니다.
<br>
<br>
4. 실내용 아두이노 보드에는 main_inside.io를 업로드합니다.
<br>
<br>
5. 외부용 아두이노 보드에는 main_inside.io를 업로드합니다.
> 프로젝트를 진행하는데 있어 사용한 모듈 정보는 arduino/info.md를 참고하시면 됩니다.
>
> 모듈 정보를 참고하여 RTC 모듈의 시간을 현재 시간으로 설정합니다.
> 2021.08.09 현재 데이터 수집기 동작이 원활하지 않아, 향후 보완 예정입니다.
<br>
### 3-2. Client (React)
<br>
1. /client 경로로 이동하여 다음의 명령어를 실행합니다.
### 3-3. Server (Express.js)
```console
npm install
```
<br>
1. /server 경로상으로 이동한 뒤 다음의 명령어를 실행합니다.
2. /client 경로에서 다음의 명령어를 실행하여 Client를 동작시킵니다.
```console
npm install
npm start
```
위의 명령어를 통해 프로젝트가 사용하는 모든 node module들을 설치합니다.
<br>
2. Mysql을 통해 Database를 생성합니다.
각자의 OS에 맞는 방법으로 MySQL 서버에 접속해 주신 뒤, DataBase를 생성해줍니다.
### 3-3. Server (Express.js)
<br>
3. 생성된 Database 상에서 다음의 명령어를 입력해 Relation들을 생성합니다.
1. /server 경로상으로 이동한 뒤 다음의 명령어를 실행합니다.
```console
mysql> source server/src/rdb_setting/eue.sql
npm install
```
위의 명령어를 통해 프로젝트가 사용하는 모든 node module들을 설치합니다.
<br>
4. /server 경로상으로 이동한 뒤 rdb_setting/dbsetting.js를 다음의 명령어로 실행합니다.
2. PostgreSQL을 통해 Database를 생성합니다.
```console
npx babel-node rdb_setting/dbsetting.js
```
각자의 OS에 맞는 방법으로 PostgreSQL 서버에 접속해 주신 뒤, DataBase를 생성해줍니다.
<br>
위의 명령어를 통해 Location에 관련된 Relation들에 data가 입력니다.
3. /server/config 경로에 있는 config_public.js를 복사하여 config.js를 생성하고, 자신의 환경에 맞도록 변수들의 값을 입력니다.
<br>
5. /server 경로상에서 다음을 입력해 서버를 시작합니다. (개발용 서버 동작)
4. /server 경로상에서 다음을 입력해 서버를 시작합니다. (개발용 서버 동작)
```console
npm run dev:server
......
......@@ -7,7 +7,7 @@ package-lock.json
config/config.js
# Project Data
/data
/data/init.sql
# Python Cache
__pycache__
......
......@@ -48,7 +48,7 @@
user_info : 사용자 정보 ,
weather_out : 실외 날씨 데이터 ,
weather_in : 실내(사용자 개인) 날씨 데이터 ,
weather_predict : - 사용자 날씨 데이터를 통한 예측 -,
weather_predict : 사용자 날씨 데이터를 통한 예측 ,
error: 에러 ,
}
}
......
......@@ -71,6 +71,8 @@ PostgreSQL DB를 이용하여, 날씨 데이터와 분석 결과를 저장합니
| :------: | :----------: | :-------: | :-------: | :---: | :--------: | :-------: | :-------: | :----: |
| Contents | 날짜 및 시각 | 실외 온도 | 실외 습도 | 기압 | 풍속 | 실내 온도 | 실내 습도 | 광도 |
<br>
## File Format (2021.08.04 - 진행)
데이터 분석용 파일의 형식은 csv이며 내용은 다음과 같습니다.
......@@ -83,7 +85,20 @@ PostgreSQL DB를 이용하여, 날씨 데이터와 분석 결과를 저장합니
## Preprocessing
1. 사용자 정보(email, loc_code, using_aircon)를 검색합니다.
2. 사용자의 수 만큼 데이터 분석을 반복합니다.
3. 사용자 한명에 대해 날씨 정보를 담은 csv파일을 생성합니다.
1. 사용자의 외부와 내부 날씨 데이터를 DB에서 검색합니다.
- 날씨 정보는 약 20,000 개의 데이터를 사용하기 위해 5개월 단위를 검색해 사용합니다.
2. 검색된 날씨 정보들을 바탕으로 csv파일을 생성합니다.
3. csv파일을 pandas를 통해 dataframe으로 변경한 뒤, z-score로 변환 합니다.
4. z-score, 평균(mean), 표준편차(std)를 반환하며 종료합니다.
<br>
## Main Process
<br>
## Save Result
1. 전처리 과정에서 발생한 평균과 표준편차를 json 형태로 변환합니다.
2. 데이터 분석결과 발생한 모델과 가중치 파일을 blob 형태로 변환합니다.
3. json & blob 데이터들을 DB에 저장합니다.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment