Сделай сам Солнечная система слежения: Оптимизация использования солнечной энергии

В этом руководстве подробно рассказывается о том, как построить недорогую систему слежения за солнечными батареями на основе монопольного наземного крепления LINKSOLAR (официальная ссылка), которая может повысить эффективность производства энергии фотоэлектрической панелью мощностью 100 Вт на 30%-45%. Учебник включает в себя код, список материалов и решения по защите от погодных условий.

1. Зачем нужна система слежения за солнечными батареями?

1.1 Повышение эффективности производства электроэнергии

1.2 Преимущества Крепление LINKSOLAR

2. Список материалов и подготовка инструментов

КатегорияМодель/спецификацияОптимизированное по ключевым словам описание
Крепление для сердечникаМонопольное наземное крепление LINKSOLARКрепление для солнечных батарей для наземной установки
Приводной двигательNEMA17 + плата драйвера DRV8825Шаговый двигатель с высоким крутящим моментом для слежения за солнечными батареями
Датчик освещенностиМодуль цифрового датчика освещенности TSL2591Датчик освещенности I2C для слежения за фотоэлектрическими приборами на улице
Главный контроллерПлата разработки ESP32Контроллер слежения за солнечными батареями с поддержкой WiFi-технологий

3. Пошаговое руководство по установке

3.1 Этапы модификации крепления

3.2 Схема подключения цепей

[SEO-совет] Используйте alt-текст для описания изображения:
"Схема подключения солнечной следящей системы - ESP32 управляет двухосевыми двигателями и датчиком освещенности".

4. Объяснение кода Arduino (с алгоритмом PID)

4.1 Обзор структуры кода

Код Arduino для этой системы основан на алгоритме ПИД-регулирования, использующем датчик освещенности TSL2591 и датчик ориентации MPU6050 для регулировки угла наклона солнечной панели в режиме реального времени для двухосевого слежения. Код разделен на следующие разделы:

4.2 Полный код

#include 
#include 
#include 
#include 

// Объекты датчиков
Adafruit_TSL2591 tslEast = Adafruit_TSL2591(0x29);
Adafruit_TSL2591 tslWest = Adafruit_TSL2591(0x30);
MPU6050 mpu;

// параметры ПИД
double Kp = 2.0, Ki = 0.5, Kd = 0.1;
double inputEast, inputVertical, outputStepH, outputStepV;
double setpointH = 0, setpointV = 45; // Начальный угол наклона 45°

ПИД горизонтальныйPID(&inputEast, &outputStepH, &setpointH, Kp, Ki, Kd, DIRECT);
PID verticalPID(&inputVertical, &outputStepV, &setpointV, Kp, Ki, Kd, DIRECT);

// Определения выводов
#define STEP_H 12
#define DIR_H 13
#define STEP_V 14
#define DIR_V 15

void setup() {
  Serial.begin(115200);
  Wire.begin();

  // Инициализация датчиков
  tslEast.begin();
  tslWest.begin();
  mpu.initialize();

  // Установите коэффициент усиления TSL2591
  tslEast.setGain(TSL2591_GAIN_MED);
  tslWest.setGain(TSL2591_GAIN_MED);

  // Инициализируем PID
  horizontalPID.SetMode(AUTOMATIC);
  verticalPID.SetMode(AUTOMATIC);
  horizontalPID.SetOutputLimits(-200, 200);
  verticalPID.SetOutputLimits(-100, 100);

  // Установите режимы работы пинов двигателя
  pinMode(STEP_H, OUTPUT);
  pinMode(DIR_H, OUTPUT);
  pinMode(STEP_V, OUTPUT);
  pinMode(DIR_V, OUTPUT);
}

void loop() {
  // Считываем интенсивность света на востоке и западе
  uint32_t eastLux = tslEast.getFullLuminosity();
  uint32_t westLux = tslWest.getFullLuminosity();
  inputEast = (eastLux - westLux) / 1000.0;

  // Считывание текущего угла наклона
  int16_t ax, ay, az;
  mpu.getAcceleration(&ax, &ay, &az);
  inputVertical = atan2(ay, az) * 180 / M_PI;

  // Рассчитываем выход ПИД-регулятора
  horizontalPID.Compute();
  verticalPID.Compute();

  // Привод горизонтального двигателя
  digitalWrite(DIR_H, outputStepH > 0 ? HIGH : LOW);
  for(int i=0; i 0 ? HIGH : LOW);
  for(int i=0; i<abs(outputStepV); i++){
    digitalWrite(STEP_V, HIGH);
    delayMicroseconds(500);
    digitalWrite(STEP_V, LOW);
    delayMicroseconds(500);
  }

  // Печать данных
  Serial.print("Восток:");
  Serial.print(eastLux);
  Serial.print(" Запад:");
  Serial.print(westLux);
  Serial.print(" Угол:");
  Serial.println(inputVertical);

  delay(1000);
}

4.3 Анализ ключевых кодов

4.4 Установка библиотеки ключей

4.5 Процесс калибровки

  void calibrateTSL() {
    tslEast.setGain(TSL2591_GAIN_LOW);
    tslWest.setGain(TSL2591_GAIN_LOW);
    // Запуск после выравнивания обоих датчиков по одному и тому же источнику света
    while(abs(tslEast.getLuminosity() - tslWest.getLuminosity()) > 100) {
      delay(1000);
    }
  }
  void calibrateMPU() {
    mpu.CalibrateAccel(6); // калибровка по 6 образцам
    mpu.CalibrateGyro(6);
    mpu.PrintActiveOffsets();
  }

4.6 Корпуса для 3D-печати

5. Советы по отладке и обслуживанию

5.1 Процесс калибровки

5.2 Текущее обслуживание

7. Часто задаваемые вопросы (FAQ)

Примите меры: Свяжитесь с официальными сотрудниками LINKSOLAR и начните свой проект по производству зеленой энергии!

Мы надеемся, что это руководство поможет вам успешно построить эффективную систему слежения за солнечными батареями.

Для заполнения данной формы включите JavaScript в браузере.
Имя

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ru_RURussian
Для заполнения данной формы включите JavaScript в браузере.
Имя