Мониторинг солнечной панели в реальном времени: дешёвая система сбора данных на Arduino и Excel
Компоненты и материалы
- Arduino UNO — 1 шт.
- PV-панель (пример: Electric Imp TDC-M20-36)
- Модуль датчика напряжения 0–25 В (на делителе) — 1 шт.
- Модуль датчика тока INA169 — 1 шт.
- Реостат 330 Ом (нагрузка) — 1 шт.
Инструменты и ПО
- Arduino IDE
- PLX-DAQ — Excel-макрос для приёма данных по Serial прямо в таблицу (создаёт папку PLX-DAQ и ярлык «PLX-DAQ Spreadsheet»)
О проекте
Низкобюджетная виртуальная приборная панель для реального времени: измерение напряжения, тока и мощности PV-панели. Датчики → Arduino → Serial → Excel (PLX-DAQ) → графики I-V и P-V в реальном времени. Нагрузка варируется реостатом 0–330 Ом. Шаг измерения 1 с (или 100 мс для детализации).
Схема подключения
- Датчик напряжения — параллельно нагрузке (вход A0).
- Датчик тока INA169 — последовательно в разрыве «+» панели (вход A1).
- Нагрузка (реостат) — между «+» панели и GND.
Код (Arduino)
/*****************************************************************************
Real-time data acquisition of solar panel using Arduino and Excel
Author: Aboubakr El Hammoumi
Email: aboubakr.elhammoumi@usmba.ac.ma
*****************************************************************************/
void setup() {
Serial.begin(9600);
Serial.println("CLEARDATA"); // очистка листа
Serial.println("LABEL,t,voltage,current,power"); // заголовки столбцов
}
void loop() {
// Напряжение: делитель 1:5, опорное 5 В, 10-битный АЦП
float voltage = analogRead(A0) * 5.0 * 5.0 / 1023.0;
// Ток: INA169, выход 0–5 В, калибровка под конкретный шунт
float current = analogRead(A1) * 5.0 / 1023.0;
float power = voltage * current;
Serial.print("DATA,TIME,"); // команда PLX-DAQ: время + данные
Serial.print(voltage); Serial.print(",");
Serial.print(current); Serial.print(",");
Serial.println(power);
delay(1000); // 1 с шаг (или 100 мс)
}
Работа с PLX-DAQ
- Скачайте и установите PLX-DAQ (бесплатно).
- Откройте созданный ярлык «PLX-DAQ Spreadsheet».
- В окне PLX-DAQ укажите COM-порт Arduino и Baud Rate = 9600.
- Нажмите «Connect» — данные пойдут в таблицу с таймстемпами.
- Строятся графики I-V и P-V, видна максимальная мощность (MPP).
Результаты и наблюдения
- При шаге 1 с — плавные кривые. При 100 мс — появляются осцилляции из-за шумов АЦП, но больше точек.
- Оптимальный шаг — компромисс: 200–500 мс для стабильности.
- Пример: Pmax = 17.07 Вт при 14.15 В / 1.20 А; минимум 0.82 Вт при 18.23 В / 45 мА.
- Система подходит для полевого периодического мониторинга PV-установок.
Ссылка на научную работу
Проект связан с исследовательской статьей (см. исходную страницу).
Производственный процесс
- Передача данных температуры и влажности между двумя Arduino через Firebase
- Создание потрясающей системы Ambilight для монитора на Arduino
- Беспроводная передача данных по магнитному полю на Arduino с 3D-сенсором Infineon
- Умный вольтметр на Arduino и смартфоне — простое DIY-проект
- IoT-монитор пульса в реальном времени на Arduino и MAX30100
- Веб-сервер на Arduino Uno WiFi: управление LED через браузер
- Сборка собственного счётчика Гейгера‑Мюллера на Arduino, HV Boost и LCD 20x4
- Солнечный трекер v2.0 — продвинутая DIY система слежения за солнцем
- Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python
- Сборка компактного FM-радио на Arduino Nano и RDA5807M