아두이노로 태양광 패널 실시간 모니터링 - 저비용 데이터 수집 시스템
부품 및 소모품
| 아두이노 우노 |
1개 |
| Electric Imp TDC-M20-36 PV 패널 (테스트용) |
1개 |
| Adafruit B25 0-25V 전압 센서 모듈 |
1개 |
| Adafruit INA169 아날로그 DC 전류 센서 |
1개 |
| 가변 저항 330Ω (부하 시뮬레이션용) |
1개 |
필요 도구 및 소프트웨어
- Parallax PLX-DAQ (엑셀 매크로, 실시간 데이터 기록용)
- 아두이노 IDE
프로젝트 소개
저비용 아두이노 기반 가상 계측 시스템으로 태양광 패널의 전압, 전류, 전력 특성을 실시간 모니터링합니다. 센서 데이터를 아두이노가 읽어 시리얼로 전송하면 PLX-DAQ 매크로가 엑셀 시트에 실시간 기록 및 그래프 표시합니다.
시스템 구성
- 전압 센서(B25): 부하와 병렬 연결
- 전류 센서(INA169): PV 패널 양극과 부하 사이 직렬 연결
- 아두이노 A0/A1에서 센서 출력 읽기
- 전력 = 전압 × 전류 계산
- 시리얼로 "DATA,TIME,전압,전류,전력" 형식 전송
- PLX-DAQ가 엑셀에 실시간 기록 및 I-V, P-V 곡선 플로팅
연구 논문 연계
이 프로젝트는 연계 연구 논문의 실험 검증용으로 개발되었습니다.
코드
아두이노 실시간 데이터 수집 코드
/*****************************************************************************
* 프로젝트: PV 패널 특성 가상 계측
* 기능: 아두이노와 엑셀을 이용한 태양광 패널 실시간 데이터 수집
* 작성자: Aboubakr El Hammoumi (aboubakr.elhammoumi@usmba.ac.ma)
* 날짜: 2018-04-05
*****************************************************************************/
void setup() {
Serial.begin(9600);
Serial.println("CLEARDATA"); // 기존 데이터 클리어
Serial.println("LABEL,t,voltage,current,power"); // 열 제목
}
void loop() {
// 전압 읽기 (B25 센서: 분압비 5:1, 아두이노 5V 기준)
float voltage = analogRead(A0) * 5.0 * 5.0 / 1023.0;
// 전류 읽기 (INA169: 출력 전압을 전류로 변환, 캘리브레이션 필요)
float current = analogRead(A1) * 5.0 / 1023.0;
float power = voltage * current;
// PLX-DAQ 명령으로 엑셀에 전송
Serial.print("DATA,TIME,");
Serial.print(voltage); Serial.print(",");
Serial.print(current); Serial.print(",");
Serial.println(power);
delay(1000); // 1초 간격
}
회로도 및 설정

PLX-DAQ 설정 방법
- PLX-DAQ 다운로드 및 설치 → 자동으로 'PLX-DAQ Spreadsheet' 바로가기 생성
- 엑셀에서 시트 열기 → PLX-DAQ 창에서 시리얼 포트 및 보드레이트(9600) 설정
- 'Connect' 클릭 → 실시간 데이터 수집 시작

실험 결과
- 가변 저항(0~330Ω) 조절로 광량 시뮬레이션하며 I-V, P-V 특성 곡선 추적
- 최대 전력 17.07W 관측 (14.15V, 1.20A 시점)
- 최소 전력 822.2mW (18.23V, 45.1mA)
- 샘플링 주기 1초 → 100ms 단축 시 데이터 포인트 증가하지만 노이즈로 진동 발생 → 용도에 맞게 타협 필요



활용 방안
현장 PV 시스템 주기적 모니터링, 성능 저하 감지, 연구/교육용 가상 계측기로 활용 가능.