최우수상 수상작
-
해당 폴더는 앱 개발을 위해 사용된 코드와 이미지 파일로 앱을 실행시키기 위해서는 'App개발 코드' 폴더를 한 번에 다운 받아야 함. 폴더에 존재하는 "main.py" 파일에 앱을 실행하기 위한 메인 소스 코드가 포함되어 있으며, 이를 실행하기 위해선 아래 메뉴얼을 참고.
-
Anaconda 3 다운로드 및 설치 (https://www.anaconda.com/distribution/)
-
Anaconda prompt를 실행하여 가상환경에 kivy 설치
프롬프트 창에 아래 코드를 작성할 것.
conda create -n my_python_env activate my_python_env conda install kivy -c conda-forge
-
Pycharm 다운로드 및 설치 (https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC)
설치 시 설치 옵션에서 create associations-.py의 박스에 체크할 것.
-
Pycharm 실행 - Settings - Project Interpreter 설정
-
추가 버튼을 클릭하여 conda environment - existing environment 선택 - interpreter 경로는 users/이름/Anaconda3/envs/my_python_env(가상환경)/python.exe
-
New projects 생성 - 'App 개발 코드' 폴더를 경로로 설정, 그중 main.py 파일 불러오기
-
main.py 파일 실행 시 구현된 애플리케이션이 구동되는 것을 확인할 수 있음.
-
#####################################################################################
-
해당 폴더 내 파일들은 .ipynb 형식의 파일로, Google drive 내 Google Colaboratory를 통해 실행하거나, Anaconda 3의 Jupyter(Notebook / Lab)을 사용하여 열람해야 함. (Google Colab 사용 권장) 기본적으로 실행되어있는 상태이며, 재실행을 원할 경우 코드 왼쪽의 PLAY 버튼을 클릭할 것 *
[Converting API data to csv.ipynb]
iot.api(https://datahubapi.korea.ac.kr/datathon/iot) 를 통해 실시간으로 업데이트되는 API 데이터를 가공하고 구현된 파이썬 코드와 호환되도록 .csv 파일로 저장하는 코드
[Crawling Weather Data.ipynb]
기상청에서 실시간으로 배포하는 성북구 안암동의 온도 및 습도를 크롤링하기 위해 사용되는 코드
[Data Preprocessing.ipynb]
제공된 SK 미래관 내 IoT 센서 데이터를 통합한 "data.csv"파일로 데이터 전처리 및 EDA를 시행한 코드. co2, dust, temperature, humidity 변수의 분포 측정, '시간'과 'Floor' 변수 추가를 통해 시간별, 층별 그룹화 진행. 각 변수의 분포 시각화, 상관 관계 분석 및 PCA, 층별 다중비교를 위한 Tukey's HSD test 등 변수의 전반적인 특성을 파악하고 시각화하기 위한 코드.
[Regression with Weather Data.ipynb]
크롤링한 기상청 온/습도 데이터만으로 기타 학습 공간의 온/ 습도를 추정하는 회귀식을 적합해보기 위해 사용된 코드
[Regression Time Series AR(8) Model vs Weather + Each Variable + Mean.ipynb]★
기타 학습 공간의 온/습도 데이터를 주변 학습 공간의 온/습도 데이터와 기상청 온/습도 데이터로 추정하는 회귀식을 적합하기 위해서 사용된 코드. 시계열 AR(8) 모형을 사용하여 적합한 식과 'Weather + Each Variable + Mean' 모형의 비선형 회귀식을 비교. 이밖의 다른 코드들에서 적합된 회귀식과도 비교. Stepwise Selection을 통해 가장 낮은 AIC를보이는 'Weather + Each Variable + Mean' 모델이 최종적으로 선정되었음. 즉, 최종적으로 선택된 회귀식은 '기타 학습 공간의 온도/습도 ~ 기상청 데이터를 통해 수집된 성북구 안암동의 온도/습도 + 주변 공간의 온도/습도 + 주변 공간의 온도/습도의 평균'이다.
[Regression with Interaction.ipynb]
기타 학습 공간의 온/습도 데이터를 주변 학습 공간의 온/습도 데이터와 기상청 온/습도 데이터로 추정하는 회귀식을 적합하기 위해서 사용된 코드.
[Regression with Mean Variable.ipynb] 코드에서 적합한 회귀식에 추가적으로 기상청 온/습도 데이터와 주변 학습 공간 데이터의 교호 작용 (Interaction Term) 변수를 추가함.
[Regression with Mean Variable.ipynb]
기타 학습 공간의 온/습도 데이터를 주변 학습 공간의 온/습도 데이터와 기상청 온/습도 데이터로 추정하는 회귀식을 적합하기 위해 사용된 코드. 여기서 Mean Variable은 "주변공간.txt" 파일에서 정의된 각 기타 학습공간에 대응되는 '주변 학습 공간'의 온도 및 습도의 평균으로 만들어진 새로운 변수를 의미함.
[SSS지수 개발작업(with 0616 data).ipynb]
2020년 6월 16일의 IoT 센서 데이터를 예시로, SSS지수를 계산하는 코드. 음수값, 지나치게 큰 값 들을 제거하는 이상치 제거 코드, 사용자 맞춤형 가중치 계산 코드, 각 점수화 알고리즘에 따라 환경 변수에 점수를 부여하는 코드, 그리고 환경 변수들의 점수를 가중평균하여 SSS지수를 계산하는 코드가 포함되어 있음. 결과물로 '0616SSSdata.csv' 파일이 출력되도록 코딩되어있음.
[SSS지수 시각화 구현(with 0616 17시 data).ipynb]★
앞서 [SSS지수 개발작업(with 0616 data).ipynb]의 결과물인 "0616SSSdata.csv"파일과 "0616weather_data.csv"파일을 불러와 2020년 6월 16일 5시 SK 미래관 내부 캐럴실 및 스터디룸과 기타 학습 공간의 SSS지수를 약도 위에 시각화하여 나타내는 코드. 각 기타 학습 공간의 SSS지수는 앞서 구현된 회귀 모형에 의해 예측된 값. 이 프로젝트의 가장 메인 코드
[T-test comparison(humidity).ipynb]
"data_for_regression.csv" 파일의 데이터를 통해 2020년 8월 11일 5시경 아두이노 장치를 통하여 직접 측정한 각 기타 학습 공간의 온도와 SK 미래관 IoT 센서 API를 통해 측정된 스터디룸 및 캐럴실의 습도에 차이가 있는지 알아보기 위해 T-test를 적용한 코드.
[T-test comparison(temperature).ipynb]
"data_for_regression.csv" 파일의 데이터를 통해 2020년 8월 11일 5시경 아두이노 장치를 통하여 직접 측정한 각 기타 학습 공간의 온도와 SK 미래관 IoT 센서 API를 통해 측정된 스터디룸 및 캐럴실의 온도에 차이가 있는지 알아보기 위해 T-test를 적용한 코드.
#########################################################################################
- 해당 폴더 내 파일은 아두이노 장치를 통한 '기타 학습 공간' 온/습도 측정을 위해 사용된 .ino 코드와 회귀 모형 최적화를 위한 Quadratic Programming 실행용 R 코드로 구성됨. .ino 파일의 경우 Wemos 온습도 측정 전용 드라이버와 라이브러리를 설치해야 하며, R 코드의 경우 R 또는 R Studio를 설치하여 실행해야 함.
[code.ino]
아두이노 장치를 통해 SK 미래관 내 온/습도를 직접 측정하기 위한 실행 코드
[Quadratic Programming.R]
QP Solver를 이용하여 회귀식의 손실함수를 최적화하기 위해서 사용된 코드
[stop.ino]
아두이노 장치를 통한 센서 측정을 중지하기 위한 코드
[WiFiClient.ino]
아두이노 장치를 무선 와이파이와 연결하는 클라이언트 코드
#########################################################################################
[floorB1-final.png ~ floor5-final.png]
보다 사용자 친화적인 UI와 직관적인 시각화를 위해 도면을 기반으로 직접 그린 약도 이미지 파일.
이후 SSS 지수 시각화를 위해 필요.
#######################################################################################
-
프로젝트에 사용한 모든 Raw Data. 열람하기 위해선 엑셀, 메모장, 또는 .csv / .txt 전용 리더가 필요하다.*
[0616SSSdata.csv]
6월 16일 자의 iot 센서 데이터에 계산된 온도, 습도, co2, dust 각각의 점수와 이를 통해 계산된 SSS지수를 컬럼으로 추가한 데이터 파일. "SSS지수 시각화 구현(with 0616 17시 data).ipynb" 파일을 실행시키기 위해 필요.
[0616weather_data.csv]
직접 크롤링한 6월 16일자 기상청 온도 및 습도 측정 데이터. "SSS지수 시각화 구현(with 0616 17시 data).ipynb" 파일을 실행시키기 위해 필요.
[0811weather_data.csv]
직접 크롤링한 8월 11일자 기상청 온도 및 습도 측정 데이터. SK 미래관 내 '기타 학습 공간' 환경 변수(온/습도) 예측 모형을 구축할 때 사용하였던 데이터이다.
[data.csv]
.txt 파일로 제공받은 여러 IoT 센서 데이터 파일을 합하여 가공하기 쉬운 형식의 .csv 파일로 통일한 파일
[data_for_regression.csv]
SK 미래관 내 기타 학습 공간의 환경 변수(온/습도)를 예측하는 회귀식을 적합하기 위해 사용된 데이터. 2020년 8월 11일 각 기타 학습 공간에서 30분씩 아두이노 장치를 통해 직접 측정한 데이터와 동시간대에 SK 미래관 IoT 센서 API에서 측정된 강의실 데이터를 병합해놓은 파일.
[iot_11_5322.txt ~ iot_11_5325.txt]
2020.06-2020.07 에 측정된 SK 미래관 iot 센서 데이터.
[iot_11_26.txt ~ iot_11_34.txt]
2020.01-2020.03 에 측정된 SK 미래관 iot 센서 데이터.
[roompixel.txt]
자체 제작한 SK 미래관 내 약도 (Images 폴더 내 png 파일 참조) 위에 SSS지수를 시각화하기 위해 각 학습 공간(강의실, 기타 학습 공간 등)과 약도 내 픽셀 값을 매칭시킨 텍스트 파일. 이후 SSS지수 시각화 코드 작동 위해 필요.
[주변공간.txt]
기타 학습 공간의 환경 변수를 예측 할 때 필요한 '주변 학습 공간'을 정의해 놓은 파일. 각 기타 학습 공간과 그 주변에 존재하는 학습 공간(캐럴실 및 스터디룸)을 매칭하여 정리해놓은 파일.
#######################################################################################