์ฐ์
ํ์ฅ์ ์๋์ง ์ฌ์ฉ๋๊ณผ ์์ ๋ฐ์ดํฐ๋ฅผ ํตํฉ์ ์ผ๋ก ์์ง ยท ๋ถ์ ยท ์๊ฐํํ์ฌ
์ฌ๊ณ ์๋ฐฉ ๋ฐ ์๋์ง ์ ๊ฐ์ ์คํํ๋ ํตํฉ ๋์๋ณด๋ ๊ธฐ๋ฐ ์์คํ
์ฐ์ ํ์ฅ์์ ์๋์ง ์๋น๋ฅผ ์ต์ ํํ๊ณ ์์ ์ ์์ ์ ์ฌ์ ์ ์๋ฐฉํ๋ AI ๊ธฐ๋ฐ ํตํฉ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ์ค์๊ฐ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ํ ์ํฉ๊ณผ ๋นํจ์จ์ ์๋์ง ์ฌ์ฉ์ ์์ธกํ๊ณ , ์ง๊ด์ ์ธ ๋์๋ณด๋๋ก ์๊ฐํํ์ฌ ์ฆ๊ฐ์ ์ธ ๋์์ด ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ์ ๋ ฅ, ์จ๋, ๊ฐ์ค, ์ง๋ ๋ฑ์ ์ผ์ ๊ธฐ๋ฐ ์ค์๊ฐ ์๋ฎฌ๋ ์ด์
- ๊ธฐ์ค ์ด๊ณผ ์ ์ค์๊ฐ ๊ฒฝ๊ณ ๋ฐ ๋์
- ์๋์ง ์๋น ์ต์ ํ ๋ฐ ์ฐ์ ์ฌ๊ณ ์๋ฐฉ
- ์ค์๊ฐ ์๊ฐํ ๋ฐ ์๋ ๋ณด๊ณ ์ ์์ฑ
- ํ์ฅ ์ ์ฉ ๊ฐ๋ฅํ ํตํฉ ์์คํ ๊ตฌ์ถ
- ์ฐ์ ํ์ฅ ์ฌ๊ณ ์ ์ง์์ ๋ฐ์์ผ๋ก ์ฌ์ ์์ธก ์์คํ ํ์์ฑ ๋๋
- ์๋์ง ๊ฐ๊ฒฉ ์์น๊ณผ ํจ์จ์ฑ ์๊ตฌ ์ฆ๊ฐ
- ์ค๋งํธํฉํ ๋ฆฌ ํ๊ฒฝ์ ํ์ฐ์ผ๋ก ์๋ํ ๋ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๊ด๋ฆฌ ์์ ์ฆ๊ฐ
- AI ๊ธฐ์ ์ ํ์ฉํ ๋ค์ํ ์ผ์ ๋ฐ์ดํฐ ํด์ ๋ฐ ์์ธก ๋ฅ๋ ฅ ํ๋
- ๐ ์๋์ง ๋ญ๋น ๊ฐ์ถ ๋ฐ ๋น์ฉ ์ ๊ฐ
- ๐ก ์ฐ์ ์ฌํด ์ํ ์ฌ์ ํ์ง ๋ฐ ์๋ฐฉ
- ๐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ด์์ผ๋ก ์ ๋ขฐ์ฑ ํ๋ณด
- ๐ ์๊ฐํ + ์ด๋ ฅ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ํตํ ๊ณต์ ์ต์ ํ
- โก ์ ๋ ฅ ์๋น ์๋ฎฌ๋ ์ด์ ๋ฐ ๊ณต์ ๋ณ ์ฌ์ฉ๋ ์๊ฐํ
- ๐ฅ ์จ๋/๊ฐ์ค/์ง๋ ๋ฑ ์ํ์์ ๊ฐ์ง ๋ฐ ๊ฒฝ๊ณ ์๋ฆผ
- ๐ง ์ํ ๋ฑ๊ธ ๋ถ๋ฅ ๋ฐ ์ค์๊ฐ ํ์ ์๋ฆผ
- ๐ ์ด๋ ฅ ์๋ ์ ์ฅ ๋ฐ ์กฐํ ๊ธฐ๋ฅ
- ๐ PDF ๋ฆฌํฌํธ ์๋ ์์ฑ (๊ทธ๋ํ + ํ ํฌํจ)
- ๐ AI ๊ธฐ๋ฐ ์์ธก ๋ชจ๋ธ์ ํตํ ์ํ ๋ฐ ์ด์์น ๊ฐ์ง
| ์ด๋ฆ | ์ญํ | ์ฃผ์ ์ ๋ฌด |
|---|---|---|
| ์ต์ฐฝ์ผ | ํ์ฅ / DB ยท ์ด๋ ฅ ๊ด๋ฆฌ | ์ผ์ ๊ด๋ฆฌ, MySQL ์ฐ๋, ์๋ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ, PyQt5 ์๊ฐํ |
| ๊น์์ | ๋์๋ณด๋ ยท UI | PyQt5 UI/๊ทธ๋ํ/ํต๊ณ ์๊ฐํ ๋ฐ ๋ฐํ์๋ฃ |
| ์์ฌ์ | ์ผ์ ์๋ฎฌ๋ ์ดํฐ / AI ์์ธก | ์ํ ํ๋จ ์๊ณ ๋ฆฌ์ฆ ๋ฐ AI ๋ชจ๋ธ ๊ฐ๋ฐ, ์ด์์น ํ์ง |
- ์ธ์ด: Python, C++ (์ผ์ ์๋ฎฌ๋ ์ดํฐ)
- ์๊ฐํ:
PyQt5,matplotlib,Streamlit - ๋ฐ์ดํฐ ์ฒ๋ฆฌ:
pandas,numpy - ๋ฐ์ดํฐ๋ฒ ์ด์ค:
MySQL - PDF ์ถ๋ ฅ:
ReportLab - AI/ML:
scikit-learn,XGBoost,Isolation Forest
- C++์์ ์ผ์ ๋ฐ์ดํฐ ์๋ฎฌ๋ ์ด์ ํ sensor_result.csv ์ ์ฅ
- Python์์ ํด๋น ํ์ผ์ ์ฝ์ด AI ์์ธก ์ํ
- ์์ธก ๊ฒฐ๊ณผ๋ csvํ์ผ๊ณผ MySQL์ ์ ์ฅ
- Streamlit๊ณผ PyQt5์์ MySQL์ ์ค์๊ฐ ์กฐํํ์ฌ ์๊ฐํ
| ๋ชจ๋ธ | ๋ชฉ์ | ์๊ณ ๋ฆฌ์ฆ | ๊ฒฐ๊ณผ |
|---|---|---|---|
| ์ํ ์์ธก | ์ฌ๊ณ ๊ฐ๋ฅ์ฑ ํ๋จ | Logistic Regression | ์ ์ / ์ํ |
| ๊ณ ์ฅ ์์ธก | ๊ธฐ๊ณ ์ง๋ ๋ถ์ | Decision Tree | ์ ์ / ๊ณ ์ฅ |
| ์ํ ๋ฑ๊ธ | ์ํ๋ ๋ฑ๊ธํ | Random Forest | GREEN~RED |
| ์ด์์น ํ์ง | ๋น์ ์ ํ์ง | Isolation Forest | ์ ์ / ์ด์ |
| ์๋์ง ๊ณผ์๋น | ๊ณผ์๋น ๊ฐ์ง | Threshold / XGBoost | ์ ์ / ๊ฒฝ๊ณ |
| ๊ตฌ๋ถ | ์ํ ์์ธก | ์ด์์น ํ์ง |
|---|---|---|
| ๋ฐฉ์ | ์ฌ์ ์ ์ ๊ธฐ์ค ๊ธฐ๋ฐ | ํจํด ์ด์ ๊ฐ์ง |
| ๋ชฉ์ | ์ค์ ์ํ ํ๋จ | ์ด์ ์ํฉ ๊ฐ์ง |
| ๊ธฐ์ | AI ์ด์ง ๋ถ๋ฅ or ๋ฑ๊ธ ๋ถ๋ฅ | Isolation Forest |
| ์ ์ฅ ํ ์ด๋ธ | event_log | anomaly_log |
| ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|
| ์ผ์ ๋ฐ์ดํฐ ์๋ฎฌ๋ ์ด์ | ์จ๋, ์ต๋, CO2, ์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐฑ์ ํ์ฌ ์ค์๊ฐ ์์ง ํ๋ฆ ์๋ฎฌ๋ ์ด์ |
| ์ค์๊ฐ ๋์๋ณด๋ | PyQt5 ๊ธฐ๋ฐ GUI๋ก ์ค์๊ฐ ์ผ์ ํ ์ด๋ธ, ๊ทธ๋ํ, ์นด๋ ์ํ, ์์ธก ํญ์ ์๊ฐํ |
| ์๊ณ๊ฐ ๊ฐ์ง ๋ฐ ๊ฒฝ๊ณ ์นด๋ | ์ผ์ ๊ฐ์ด ์ฌ์ ์ ์ค์ ๋ ์๊ณ๊ฐ์ ์ด๊ณผํ๋ฉด ๊ฒฝ๊ณ ์ ๋ฐ ์์ด์ฝ์ผ๋ก ์๊ฐ ํผ๋๋ฐฑ |
| ์์ธก ๊ฒฐ๊ณผ ์๊ฐํ | ์ด์์น, ๊ณ ์ฅ, ์ํ๋ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ํ ์ด๋ธ + ๊ทธ๋ํ๋ก ์๊ฐํ |
| ์์ธก ํต๊ณ ์์ฝ | ์ํ ์์ธก ๋ถํฌ๋ฅผ ํ์ด ์ฐจํธ ๋ฐ ํต๊ณ ํ ์ด๋ธ๋ก ์์ฝ |
| PDF ๋ฆฌํฌํธ ์๋ ์์ฑ | ์ ์ฒด ๋ฐ์ดํฐ, ๊ทธ๋ํ, ํต๊ณ ์ ๋ณด๋ฅผ PDF๋ก ์ถ๋ ฅ |
| ์ธ๋ถ ํ์ด์ฌ ์คํฌ๋ฆฝํธ ์คํ | ๋ฒํผ ํด๋ฆญ ์ main predictor ์คํฌ๋ฆฝํธ ์คํ โ ๊ฒฐ๊ณผ๋ฅผ GUI์ ๋ฐ์ |
๋์๋ณด๋๋ ๋ค์ ํญ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
- ๋ฉ์ธ ํญ: ์ ์ฒด ์์คํ ์ํ ์์ฝ
- ์ํ ์ด๋ฒคํธ: ์ํ ์์ธก ๊ฒฐ๊ณผ ๋ฐ ์ด๋ ฅ
- ๊ณ ์ฅ ๋ก๊ทธ: ๊ธฐ๊ณ ๊ณ ์ฅ ์์ธก ๋ฐ ์ด๋ ฅ
- ๋ณตํฉ ์ํ๋: ์ํ ๋ฑ๊ธ ๋ถ๋ฅ ๊ฒฐ๊ณผ
- ์ด์์น ํ์ง: ์ด์ ํจํด ๊ฐ์ง ๊ฒฐ๊ณผ
- ์๋์ง ๊ณผ์๋น: ์๋์ง ๋ญ๋น ํ์ง ๊ฒฐ๊ณผ
- ์ผ์ ์ด์: ์ผ์ ์ค์๋ ํ์ง ๊ฒฐ๊ณผ
- ์จ๋
- ๐ข Green: 20ยฐC ~ 50ยฐC
- ๐ก Yellow: 51ยฐC ~ 65ยฐC
- ๐ด Red: โฅ 66ยฐC
- ์ต๋
- ๐ข Green: 30% ~ 60%
- ๐ก Yellow: 20% ~ 29% ๋๋ 61% ~ 70%
- ๐ด Red: < 20% ๋๋ > 70%
- ์ง๋
- ๐ข Green: โค 4.5 mm/s
- ๐ก Yellow: 4.6 ~ 7.1 mm/s
- ๐ด Red: > 7.1 mm/s
- COโ
- ๐ข Green: โค 1000 ppm
- ๐ก Yellow: 1001 ~ 2000 ppm
- ๐ด Red: > 2000 ppm
| ํญ๋ชฉ | ๊ณผ์๋น ์ํฉ ์์ | ์ ์ํ ์กฐ์น |
|---|---|---|
| ์ ๋ฑ/์กฐ๋ช | ์ ์ฌ์๊ฐ, ๋ถํ์ํ ๊ณต๊ฐ ์กฐ๋ช ON | ์๋ ์๋ฑ or ์ธ์ฒด๊ฐ์ง ๊ธฐ๋ฐ ์ ์ด |
| ์ ๋๊ธฐ/๊ธฐ๊ณ | ์ ํด ์ํ์์๋ ๊ณ์ ์๋ ์ค | ์๋ ์ฌ๋ฆฝ๋ชจ๋ ์ ํ, ์ ๋ ฅ ์ฐจ๋จ |
| ์์ด์ปจ | ์ฐฝ๋ฌธ ์ด๋ ค์๋ ์ํ์์ ์๋ | ์๋ฆผ โ ์๋ OFF or ํ๊ธฐ ์ ๋ |
| ํํฐ | ์ธ๊ธฐ ์จ๋์ ๋ฌด๊ดํ๊ฒ ๊ณ ์ถ๋ ฅ ๊ฐ๋ | ์จ๋์ผ์ ๊ธฐ๋ฐ ํํฐ ์ถ๋ ฅ์ ์๋ ์กฐ์ |
- "๋ฌธ์ด ์ด๋ฆฐ ์ํ์์ ์์ด์ปจ ์๋ ์ค" โ ํ์ ์๋ฆผ
- ์ค์๊ฐ ๋์๋ณด๋์์ ๋นจ๊ฐ ๊ฒฝ๊ณ ์์ด์ฝ ํ์
- ์ฌ์ฉ์์๊ฒ ์๋์ง ์ฌ์ฉ ๋ฆฌํฌํธ ์ ๊ณต
- ์ผ๊ฐ ์๊ฐ์ ์๋ ์ ์ ๋ชจ๋ ์ง์
- ์ ๋ ฅ ํผํฌ ์๊ฐ๋์ ์ผ๋ถ ์ฅ๋น ์๋ ๋๊ธฐ ์ ํ
- ๋จธ์ ๋ฌ๋์ผ๋ก ๊ณผ๊ฑฐ ํจํด ํ์ต โ ์ด์ ์ฌ์ฉ ํ์ง
- "์๋ณ ํ๊ท ๋ณด๋ค 30% ์ด์ ์ฆ๊ฐ" ์ ๊ฒฝ๊ณ ๋ฐ ์ ์ ์ ์
-
MySQL ์ฐ๊ฒฐ ๋๊น ํ์
- ๋ฌธ์ : ์๋ ์๋ก๊ณ ์นจ ์ MySQL ์๋ฒ์ ์ฐ๊ฒฐ์ด ๋๊ธฐ๋ ์ค๋ฅ ๋ฐ์
- ์์ธ: Streamlit์ด ์คํ๋๊ณ ์์ผ๋ฉด ์๋ก์ด ์ฐ๊ฒฐ์ ๋ฐ๋ณตํด์ ์์ฑ โ ์ฐ๊ฒฐ ๊ณผ๋ถํ
- ํด๊ฒฐ: ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ์๋ก๊ณ ์นจํ๋๋ก ์์ ํ์ฌ ์์ ์ฑ ํ๋ณด
-
์ด์์น ํ์ง ๋ชจ๋ธ์ ๊ณผ๋ฏผ ๋ฐ์
- ๋ฌธ์ : Isolation Forest ๋ชจ๋ธ์ด ์ ์์ธ ๊ฐ๋ ์ด์์น๋ก ๊ฐ์ฃผํ๋ ํ์ ๋ฐ์
- ํด๊ฒฐ: contamination ํ๋ผ๋ฏธํฐ ์กฐ์ (0.1 โ 0.05)
-
์ํ ์๋ฆผ ํ์ ๊ณผ๋ค ๋ฐ์
- ๋ฌธ์ : ์๋ฎฌ๋ ์ด์ ์ด๊ธฐ ๋ฐ์ดํฐ์์ ์ํ ์ํ๊ฐ ์ฐ์์ ์ผ๋ก ๊ฐ์ง๋์ด ๊ฒฝ๊ณ ์ฐฝ์ด ๊ณผ๋ํ๊ฒ ํ์
- ํด๊ฒฐ: ์ํ ์๋ฆผ์ ์ต์ด 1ํ๋ง ์๋์ผ๋ก ํ์ํ๊ณ , ์ดํ์๋ ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ํ์ธํ ์ ์๋ ๋ฒํผ ์ถ๊ฐ
- Streamlit Cloud์ AWS RDS๋ฅผ ํ์ฉํ ์ค์๊ฐ ๋์๋ณด๋ ๋ฐฐํฌ ์๋ ์ค ํ๊ฒฝ ๋ณ์ ์ค์ ๋ฐ AWS ๊ณผ๊ธ ๊ด๋ จ ์ด์ ๊ฒฝํ
- ๋จ์ ๊ตฌํ์ ๋์ด ์ค์ ์๋น์ค ๋ฐฐํฌ์๋ ๋ณ๋์ ์ญ๋์ด ์๊ตฌ๋จ์ ์ฒด๊ฐ
-
์์ธก ๋ชจ๋ธ์ ์ฑ๋ฅ ๊ฐ์
- ๋ ์ ๊ตํ ํ์ต ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ชจ๋ธ ์ต์ ํ
- ์ ๋์ ์ธ ์ฑ๋ฅ ์งํ(์ ํ๋, ์ ๋ฐ๋) ๊ฐ์ ๋ฐ ์ธก์
-
์ค์๊ฐ ์ด์ ์์ ์ฑ ๊ฐํ
- DB ์ฐ๊ฒฐ ์์ ํ ๋ฐ ์์ธ ์ฒ๋ฆฌ ๊ฐ์
- ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ์ฑ๋ฅ ์ต์ ํ
-
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฐฐํฌ ํ๊ฒฝ ๊ตฌ์ถ
- AWS EC2, RDS ํ์ฉํ ์์ ์ ์ธ ์๋น์ค ๋ฐฐํฌ
- Docker ์ปจํ ์ด๋ํ๋ฅผ ํตํ ๋ฐฐํฌ ํ๋ก์ธ์ค ๊ฐ์ํ
-
์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
- ๋ชจ๋ฐ์ผ ๋์ ๋ฐ ์๋ฆผ ์์คํ ๊ฐํ
- ์ฌ์ฉ์ ํผ๋๋ฐฑ ๊ธฐ๋ฐ UI/UX ๊ฐ์
- ํตํฉ ์ํคํ ์ฒ ์์ฐ ๊ด๋ฆฌ ์์คํ ๊ณผ ์ ๋ณด ๊ด๋ฆฌ ์์คํ
- ์ค๋ด๊ณต๊ธฐ์ง ๊ด๋ฆฌ๋ฒ ์ํ๊ท์น
- ์ง๋ ๊ธฐ์ค๊ฐ - ISO 10816 ๊ธฐ์ค
- CO2 ์ค๋ด ๊ณต๊ธฐ์ง ๊ธฐ์ค
ยฉ 2025 ์ค๋งํธ ์ฐ์ ํ์ฅ ์๋์งยท์์ ํตํฉ ๊ด๋ฆฌ ์์คํ ํ
