KS3267 표준 기반 RS485 Modbus RTU 통신을 이용해 센서-제어기-구동기 간 실시간 데이터 흐름과 자동 제어를 구현한 스마트 온실 제어 시스템입니다. 온도, 습도, CO₂ 등 다양한 센서로부터 데이터를 수집하고, 제어 룰에 따라 구동기를 제어합니다.
- 기간: 2024.06 ~ 2024.12
- 개발 인원: 2명 (하드웨어 1명, 소프트웨어 1명)
- 주요 역할: 소프트웨어 설계 및 구현 (센서 수집, 룰 기반 명령 생성, 구동기 통신)
- 기술 스택:
C++,PythonMariaDBRS485,Modbus RTU(KS3267 표준)Raspberry Pi 4B
-
센서 노드: 온도/습도/CO₂ 측정 가능한 SH-VT260 센서 → RS485 통신
-
제어기 노드 (Raspberry Pi):
- Modbus 프로토콜로 센서 데이터 수집
- MariaDB에 데이터 저장
- 제어 룰 기반으로 제어 명령 생성
- 명령을 구동기로 전송
-
구동기 노드: 펌프, 팬, 히터 등 작동 → 명령 수신 후 작동 (신호등 센서로 동작 확인)
| 기능 | 설명 |
|---|---|
| ✅ 센서 데이터 수집 | Modbus RTU로 센서값을 읽어 DB에 저장 |
| ✅ 제어 명령 생성 | 특정 온도/습도 범위를 벗어나면 자동으로 명령 생성 |
| ✅ 구동기 제어 | 생성된 명령을 기준으로 구동기 작동 요청 |
| ✅ KS3267 준수 | 국내 스마트팜 표준 규격에 맞춘 통신 프로토콜 설계 |
| ✅ 데이터 기록 및 모니터링 | 모든 센서 및 구동기 데이터를 DB에 저장하여 추후 분석 가능 |
- 센서-제어기-구동기 통신 성공률 94% 이상
- End-to-End 제어 시나리오 완성
- KS3267 통신 표준 준수 환경에서 안정적 동작 확인
BESFarm_control/
├── controller/ # 제어기 관련 코드
│ ├── sensor/ # 센서 데이터 수집
│ │ └── sensor_node.cpp # 센서 값을 읽는 코드
│ └── rule_map/ # 제어 룰 처리
│ └── Control_Rule/ # 제어 로직 구현 파일들
│ ├── main.cpp
│ ├── SensorController.h
│ ├── SensorController.cpp
│ ├── writenode.h
│ └── writenode.cpp
│
├── actuator/ # 구동기 관련 코드
│ └── actuator.cpp
│
├── db/ # MariaDB 테이블 정의
│ └── init.sql
└── README.md # 프로젝트 소개 문서
