ํ๋ก์ ํธ ๊ธฐ๊ฐ: 2025.10.21 ~ 2025.10.29
์ฃผ์ : IoT ๊ธฐ๋ฐ ์ค๋งํธํ ์๋ ์ ์ด ์์คํ
๊ตฌ์ถ
- ํ๋ก์ ํธ๋ช : ์ค๋งํธํ ํ๊ฒฝ ๊ตฌ์ถ
- ๋ชฉํ: ์ผ์์ IoT ๊ธฐ์ ์ ํ์ฉํ์ฌ ์๋ฌผ์ ์์ฅ ํ๊ฒฝ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ๊ณ ์๋์ผ๋ก ๊ธ์ยท์กฐ๋ช ยทํ๊ธฐ ์ ์ด๊ฐ ๊ฐ๋ฅํ ์์คํ ์ ๊ตฌ์ถํ๋ค.
ํ์ํ ๊ธฐ๋ฅ
- ์ฝ์
- ํ์๊ฐ์
- ๋ก๊ทธ์ธ
- ์์ด๋/ํจ์ค์๋ ์ฐพ๊ธฐ
- ๋ก๊ทธ์์
- ์๋ฌผ ์ถ๊ฐ
- ํ๋ฆฌ์ ๋ถ๋ฌ์ค๊ธฐ
- ํ๋ฆฌ์ ์ค์
- ์๋ฌผ ๊ด๋ฆฌ
- ์ผ์ ๋ฐ์ดํฐ ๋ชฉ๋ก ๋ณด๊ธฐ
- 10์๊ฐ ์ผ์ ๋ฐ์ดํฐ ๊ทธ๋ํ๋ก ๋ณด๊ธฐ
- ํ๋ฆฌ์ ์์ ํ๊ธฐ
- ๋ง์ดํ์ด์ง
- ์ ๋ณด ์กฐํ
- ์ ๋ณด ์์
- ๊ธฐ๊ธฐ ์ถ๊ฐ
- ๊ธฐ๊ธฐ ์ญ์
- ์๋ฆผ ๊ด๋ฆฌ
- ์๋ฆผ ํ์ธ
- ์๋ฆผ ์ญ์
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด
- ์ผ์ ์ ์ด ๋ฐ ์ก์ถ์์ดํฐ ์ ์ด
| ์์ ํญ๋ชฉ | ์์ ๋ ์ง | ์ข ๋ฃ ๋ ์ง | ๊ธฐ๊ฐ(์ผ) |
|---|---|---|---|
| ์ธ๋ถ ์ฃผ์ ๋ฐ ์๋ฃ ๊ณต์ ๋ฐฉ์ ์ ์ , DB, ์ฝ์ ๊ธฐ๋ฅ ๊ตฌ์ฒดํ, ์๋ฌด ๋ถ๋ด | 2025-10-21 | 2025-10-21 | 1 |
| DB ๊ตฌํ, ์ฑ ๋์์ธ | 2025-10-22 | 2025-10-22 | 1 |
| ์๋ฐ ์ฝ์ ๊ธฐ๋ฅ ๋ฐ MQTT ๊ตฌํ | 2025-10-23 | 2025-10-23 | 1 |
| ์ฝ์ ๊ธฐ๋ฅ ๋ฐ MQTT ๊ตฌํ | 2025-10-24 | 2025-10-25 | 2 |
| ํ์ด์ฌ MQTT ์ฐ๋ ๋ฐ ์ผ์ ์ฐ๊ฒฐ ๊ฐ๋ฐ ๋ฐ ๊ฒํ | 2025-10-26 | 2025-10-27 | 2 |
| ํ๋กํ ํ์ ์ ์ ๋ฐ ํ ์คํธ, ์ค๋ฅ ์์ | 2025-10-28 | 2025-10-28 | 1 |
| ์ต์ข ๋ง๋ฌด๋ฆฌ ๋ฐ ํ๋ก์ ํธ ๋ฐํ | 2025-10-29 | 2025-10-29 | 1 |
1.1 ํ๋ก์ ํธ ๋ชฉํ ๋ฐ ํ์์ฑ ์ ์
- IoT ๊ธฐ๋ฐ ์ค๋งํธํ ์์คํ ์ค๊ณ โ ์ผ์ ๋ฐ์ดํฐ ์์ง, ์๋ ์ ์ด, DB ์ ์ฅ ๋ฐ ์๊ฐํ ๊ตฌํ
1.2 ์ ์ฒด ์์คํ ์ํคํ ์ฒ ์ค๊ณ
- Raspberry Pi(์ผ์) โ MQTT Broker โ Java ์๋ฒ โ MySQL ๊ตฌ์กฐ ์ค๊ณ
1.3 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํต์ ํ ํฝ ๊ตฌ์กฐ ์ค๊ณ
project_smartfarmDB ์คํค๋ง ๋ฐ MQTT Topic ์ ์
2.1 ์ผ์ ๋ฐ ์ก์ถ์์ดํฐ ์ ์
- DHT11(์จ์ต๋), MH-Z19(COโ), ์กฐ๋ ์ผ์(LDR), ํ ์ ์๋ถ ์ผ์, ์ํฐํํ, LED, ํฌ๋ชจํฐ
2.2 ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด GPIO ํ ๊ตฌ์ฑ ๋ฐ ๋ฐฐ์ ๋ ์์ฑ
- MCP3008 ADC๋ฅผ ํตํ ์๋ ๋ก๊ทธ ์ผ์ ์ฐ๊ฒฐ, GPIO ๊ธฐ๋ฐ ์ก์ถ์์ดํฐ ์ ์ด
2.3 ๊ฐ๋ณ ์ผ์ ํ ์คํธ ์ฝ๋ ์์ฑ (Python)
- ๊ฐ ์ผ์๋ณ ์ ์ ๋์ ํ์ธ ๋ฐ ๋ฐ์ดํฐ ๋ฒ์ ์ธก์
2.4 ์ผ์ ํตํฉ ํ ์คํธ
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ ๋ชจ๋ ์ผ์ ๋์ ๋์ ๋ฐ MQTT ์ก์ ํ์ธ
3.1 MQTT ํต์ ๊ตฌํ (Python โ Java)
- paho-mqtt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ผ์ ๋ฐ์ดํฐ Publish / Subscribe ๊ตฌํ
3.2 Java ์๋ฒ MQTT ์์ ๊ธฐ๋ฅ ๊ตฌํ
- paho-mqtt + SensorDataServiceImpl๋ก ๋ฉ์์ง ํ์ฑ ๋ฐ DTO ๋ณํ
3.3 DB ์ ์ฅ ๋ก์ง ๊ตฌํ (DAO / JDBC)
- sensor_logs ํ ์ด๋ธ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ฅ
3.4 ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ์์ธ ์ฒ๋ฆฌ
- ๋น์ ์ ์ผ์๊ฐ ํํฐ๋ง, try-catch ์์ธ ์ฒ๋ฆฌ
4.1 ์๋ ์ ์ด ๋ก์ง ์ค๊ณ
- ์จ๋ยท์ต๋ยท์กฐ๋ยท์๋ถ ์๊ณ๊ฐ ๊ธฐ๋ฐ LED, ํํ, ํฌ๋ชจํฐ ์๋ ์ ์ด
4.2 Python ์ก์ถ์์ดํฐ ์ ์ด ์ฝ๋ ์์ฑ
- GPIO ์ ์ด๋ฅผ ํตํ LED, ํํ, ํฌ ์๋ ๋ก์ง ๊ตฌํ
4.3 Java์ MQTT ์ฐ๋์ ํตํ ๋ช ๋ น ์ก์ ํ ์คํธ
- ์๋ฒ์์ ์ ์ด ๋ช ๋ น์ MQTT Publish โ Raspberry Pi Subscribe ํ ๋์ ํ์ธ
4.4 ์ ์ฒด ์ค๋งํธํ ์๋๋ฆฌ์ค ํตํฉ
- ์ผ์ ๋ฐ์ดํฐ โ ์๋ฒ ์ ์ฅ โ ์กฐ๊ฑด ์ถฉ์กฑ ์ ์๋ ์ ์ด ์์ฑ
5.1 ์ผ์ ๋ฐ์ดํฐ ์์ง ํ ์คํธ
- ๊ฐ ์ผ์๋ณ ์์ง๊ฐ ํ์ธ ๋ฐ ๋ฒ์ ๊ฒ์ฆ
5.2 MQTT ํต์ ์์ ์ฑ ํ ์คํธ
- ์ก์์ ์ง์ฐ, ๋๊น ์ฌ๋ถ, ํ ํฝ๋ณ ๊ตฌ๋ ์ ์ ๋์ ํ์ธ
5.3 DB ์ฐ๋ ๊ฒ์ฆ
- Java โ MySQL ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์กฐํ ํ์ธ
5.4 ์๋ ์ ์ด ๋ฐ ์์ธ ์ํฉ ๊ฒ์ฆ
- ์ผ์ ์๊ณ๊ฐ ์ด๊ณผ ์ LED/ํํ ์๋ ์ ์ด ์๋ ํ์ธ
6.1 ์์คํ
๊ตฌ์กฐ๋ ์ ๋ฆฌ
6.2 ํ๋ก์ ํธ ๊ฒฐ๊ณผ ๋ณด๊ณ ์ ๋ฐ ์ฝ๋ ์ ๋ฆฌ
- DAO / Service / DTO ๊ตฌ์กฐ ๊ธฐ๋ฐ ์ฝ๋ ๋ฌธ์ํ
6.3 ์ต์ข ์์ฐ ๋ฐ ๋ฐํ
- ์ค์๊ฐ ์ผ์ ๋ฐ์ดํฐ ์์ง โ ์๋ ์ ์ด ๋์ ์์ฐ
- ๋ฐ์ดํฐ ์์ง ๊ธฐ๋ฅ: ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์ฐ๊ฒฐ๋ ์ผ์(DHT11, MH-Z19, ์กฐ๋, ํ ์ ์๋ถ ๋ฑ)๋ฅผ ํตํด
์จ๋ยท์ต๋ยทCOโยท์กฐ๋ยทํ ์ ์๋ถ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์์งํ๋ค. - ๋ฐ์ดํฐ ์ ์ก ๊ธฐ๋ฅ: ์์ง๋ ์ผ์ ๋ฐ์ดํฐ๋ฅผ MQTT ํ๋กํ ์ฝ์ ์ด์ฉํด ๋ธ๋ก์ปค(Mosquitto)์ Publish ํ๊ณ , Java ์๋ฒ๊ฐ Subscribe ํ์ฌ ์์ ํ๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ: ์์ ๋ ๋ฐ์ดํฐ์์ ๊ฒฐ์ธก๊ฐ ๋ฐ ๋น์ ์(์ด์์น) ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง ํ, ํ์ฑ ๋ฐ ๋จ์ ๋ณํ์ ์ํํ๋ค.
- ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ๋ฅ: ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ DTO/DAO ๊ตฌ์กฐ๋ฅผ ํตํด MySQL(sensor_logs ํ ์ด๋ธ)์ ์ ์ฅํ๋ค.
- ๋ถ์ ๊ธฐ๋ฅ: ์ ์ฅ๋ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ๋๋ณ๋ก ์กฐํํ๊ฑฐ๋, ์๋ฌผ๋ณ ํ๊ฒฝ ์กฐ๊ฑด(์จ๋ยท์ต๋ ๋ฑ)๊ณผ ๋น๊ต ๋ถ์ํ ์ ์๋ค.
- ์๊ฐํ ๊ธฐ๋ฅ: ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์๊ฐ ๋ฐ์ดํฐ ๋ก๊ทธ ์ถ๋ ฅ ๋ฐ DB ์ ์ฅ ๋ก๊ทธ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ์๋ ์ ์ด ๊ธฐ๋ฅ: ์๊ณ๊ฐ(์: ์๋ถ 30% ์ดํ ์ ํํ ์๋, ์จ๋ 30โ ์ด์ ์ ํฌ ์๋)์ ๊ธฐ์ค์ผ๋ก ์๋ ์ ์ด๋ฅผ ์ํํ๋ค.
- ์์คํ ์์ ์ฑ: MQTT ํต์ ๋ฐ DB ์ฐ๊ฒฐ ์ค ์์ธ ๋ฐ์ ์ ์๋ ๋ณต๊ตฌ ๋๋ ์ฌ์ฐ๊ฒฐ ๋ก์ง ์ ์ฉ
- ์ฑ๋ฅ: ์ค์๊ฐ ์์ง ์ฃผ๊ธฐ(๊ธฐ๋ณธ 10์ด ๋จ์) ๋ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ์ ์ฅ ์๋ฃ
- ํ์ฅ์ฑ: ๋ค์ค ์ฌ๋กฏ ๊ตฌ์กฐ ์ง์(farm_uid๋ณ ๊ด๋ฆฌ), ์๋ก์ด ์ผ์ ์ถ๊ฐ ์ ์ต์ํ์ ์ฝ๋ ์์ ์ผ๋ก ๋ฐ์ ๊ฐ๋ฅ
- ์ ์ง๋ณด์์ฑ: DAO / Service / DTO ๊ตฌ์กฐ๋ฅผ ํตํ ๊ณ์ธต ๋ถ๋ฆฌ๋ก ์ฝ๋ ์์ ๋ฐ ๊ธฐ๋ฅ ํ์ฅ ์ฉ์ด
- ๊ตฌ์ฑ ์์:
- ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ชจ๋ (Raspberry Pi / Python)
โ ์จ์ต๋, COโ, ์กฐ๋, ํ ์ ์๋ถ ๋ฑ ํ๊ฒฝ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ธก์ - ๋ฐ์ดํฐ ์ ์ก ๋ฐ ํต์ ๋ชจ๋ (MQTT)
โ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ MQTT ํ๋กํ ์ฝ์ ์ด์ฉํด ๋ธ๋ก์ปค๋ก ๋ฐ์ดํฐ ์ ์ก - ๋ฐ์ดํฐ ์์ ๋ฐ ์ ์ฅ ๋ชจ๋ (Java / JDBC)
โ Java ์๋ฒ์์ MQTT ๋ฉ์์ง๋ฅผ Subscribe ๋ฐ์ ๊ฐ๊ณต ํ MySQL DB์ ์ ์ฅ - ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์๊ฐํ ๋ชจ๋ (Java ์ฝ์ ๊ธฐ๋ฐ)
โ ์ค์๊ฐ ๋ก๊ทธ์ DB ์ ์ฅ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ํ ํํ๋ก ์๊ฐํ ์ถ๋ ฅ - ์๋ ์ ์ด ๋ชจ๋ (Python Actuator Control)
โ ์ผ์ ๊ฐ ๊ธฐ์ค์ผ๋ก ํํ, ํฌ, LED ๋ฑ ์ก์ถ์์ดํฐ ์๋ ์ ์ด ์ํ
- ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ชจ๋ (Raspberry Pi / Python)
- ๋ฐ์ดํฐ ํ๋ฆ:
์ผ์ ์๋ณธ ๋ฐ์ดํฐ โ MQTT ์ ์ก โ Java ์๋ฒ ์์ ๋ฐ ํ์ฑ โ MySQL ์ ์ฅ โ ์ฝ์ ์๊ฐํ ๋ฐ ๋ก๊ทธ ๋ถ์ - ์ฃผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ:
- ํ๋์จ์ด: Raspberry Pi, DHT11, MH-Z19, ํ ์์๋ถ ์ผ์, ์กฐ๋ ์ผ์
- ํต์ : MQTT (Paho, Mosquitto)
- ์๋ฒ: Java (Eclipse), JDBC
- DB: MySQL (Workbench)
- ์๊ฐํ: Java ์ฝ์ ์ถ๋ ฅ (๋ฌธ์ ๊ทธ๋ํ)
- ๋ฒ์ ๊ด๋ฆฌ: GitHub, Notion
- ๋ฌธ์ : GitHub ๋ฒ์ ๊ด๋ฆฌ ๋ฐ .gitignore ์ค์ ๋ฑ ์ด๊ธฐ ํ๊ฒฝ ์ค์ ๋ฏธ์
- ํด๊ฒฐ ๋ฐฉ์: Git ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ๋ธ๋์น ๊ด๋ฆฌ ํ์ต์ ํตํด ํ์ ์ ์ถฉ๋ ์ต์ํ ์์
- ๋ฌธ์ : ํ๋ก์ ํธ ๊ธฐํ ๊ฒฝํ ๋ถ์กฑ์ผ๋ก ์ธํ ์ํ์ฐฉ์ค ๋ค์ ๋ฐ์
- ํด๊ฒฐ ๋ฐฉ์: ์ด๋ฒ ํ๋ก์ ํธ์์์ ์ด๋ ค์์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ํ๋ก์ ํธ์์๋ ๋ช ํํ ๊ธฐํ๊ณผ ์ผ์ ๊ณํ์ ์๋ฆฝํ ์์
- ๋ฌธ์ : COโ ๊ฐ์ง ์ผ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธํ์ฑ ๋ฌธ์ ๋ก ์ธํ ์ผ์ ์ฌ์ฉ ์ด๋ ค์
- ํด๊ฒฐ ๋ฐฉ์: ์ผ์ ์ฐ๋์ ์ํด ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๊ฒฝ ์ค์ ์ ์๋ํ์ผ๋, ๊ฒฐ๊ตญ ์ต์ข ๊ตฌํ์๋ ํฌํจํ์ง ๋ชปํจ. ์ฐจํ ํ๋ก์ ํธ์์ ์ด๋ฅผ ๊ฐ์ ํด ์ ์ฉํ ์์ ์.
