Índice

Sistema de monitorização solar "faça você mesmo": Optimize a sua utilização da energia solar

Imagem de Dean Ding
Dean Ding

Há 15 anos que nos dedicamos ao sector da energia solar

Sistema de monitorização solar "faça você mesmo": Optimize a sua utilização da energia solar

Este tutorial fornecerá um guia detalhado sobre como construir um sistema de rastreamento solar de baixo custo baseado no suporte de solo monopolar LINKSOLAR (link oficial), que pode melhorar a eficiência de geração de energia de um painel fotovoltaico de 100W por 30%-45%. O tutorial inclui código, uma lista de materiais e soluções de proteção contra as intempéries.

1. Porque é que precisamos de um sistema de monitorização solar?

1.1 Melhorar a eficiência da produção de eletricidade

  • Montagem fixa: A captação diária de energia é de cerca de 70%.
  • Seguimento de um eixo: A eficiência aumenta para 85%-90% (dados NREL).
  • Seguimento de eixo duplo: Pode atingir até 95% (objetivo deste projeto).

1.2 Vantagens da Montagem LINKSOLAR

  • Capacidade de carga de nível industrial: Um único poste suporta até 6 painéis de 100W.
  • Modificação rápida: Compatível com o motor de passo NEMA17.
  • Design resistente ao vento: Poste de aço galvanizado de 4 polegadas + fundação pré-enterrada.

2. Lista de materiais e preparação de ferramentas

CategoriaModelo/EspecificaçãoDescrição optimizada por palavra-chave
Montagem do núcleoLINKSOLAR Monopolo Montagem no soloSuporte solar para instalação no solo
Motor de acionamentoNEMA17 + placa do controlador DRV8825Motor passo a passo de elevado binário para seguimento solar
Sensor de luzMódulo de sensor de luz digital TSL2591Sensor de luz I2C para monitorização fotovoltaica exterior
Controlador principalPlaca de desenvolvimento ESP32Controlador de seguimento solar com WiFi

3. Guia de instalação passo a passo

3.1 Etapas da modificação do suporte

  • Reforço do poste
  • Soldar um rolamento de flange (modelo FYLC-205) na parte superior do suporte LINKSOLAR.
  • Fixar o motor NEMA17 com parafusos em U (eixo de rotação horizontal).
  • Estrutura de ajuste da inclinação
  • Utilize alumínio em forma de L (6061-T6) para ligar o painel ao segundo motor.
  • Instalar os interruptores de limite (KW12-3) para evitar a rotação excessiva.

3.2 Esquema de ligação dos circuitos

[Dica de SEO] Utilize texto alternativo para descrever a imagem:
"Esquema elétrico do sistema de seguimento solar - o ESP32 controla os motores de eixo duplo e o sensor de luz."

4. Explicação do código Arduino (com o algoritmo PID)

4.1 Descrição geral da estrutura do código

O código Arduino para este sistema é baseado num algoritmo de controlo PID, utilizando o sensor de luz TSL2591 e o sensor de orientação MPU6050 para ajustar o ângulo do painel solar em tempo real para o seguimento de dois eixos. O código está dividido nas seguintes secções:

  • Inicialização do sensor: Inclui a configuração do sensor de luz TSL2591 e do sensor de orientação MPU6050.
  • Controlo PID: Utiliza o algoritmo PID para calcular os passos do motor para um controlo preciso horizontal (azimute) e vertical (elevação).
  • Acionamento do motor: Controla a direção e os passos do motor passo a passo com base na saída PID.
  • Monitorização de dados: Emite dados do sensor e cálculos PID via série para depuração.

4.2 Código completo

#include 
#include 
#include 
#include 

// Objectos do sensor
Adafruit_TSL2591 tslEast = Adafruit_TSL2591(0x29);
Adafruit_TSL2591 tslWest = Adafruit_TSL2591(0x30);
MPU6050 mpu;

// Parâmetros PID
double Kp = 2,0, Ki = 0,5, Kd = 0,1;
double inputEast, inputVertical, outputStepH, outputStepV;
double setpointH = 0, setpointV = 45; // Ângulo de inclinação inicial 45°

PID horizontalPID(&inputEast, &outputStepH, &setpointH, Kp, Ki, Kd, DIRECT);
PID verticalPID(&inputVertical, &outputStepV, &setpointV, Kp, Ki, Kd, DIRECT);

// Definições de pinos
#define STEP_H 12
#define DIR_H 13
#definir STEP_V 14
#define DIR_V 15

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

  // Inicializar sensores
  tslEast.begin();
  tslWest.begin();
  mpu.initialize();

  // Definir o ganho do TSL2591
  tslEast.setGain(TSL2591_GAIN_MED);
  tslWest.setGain(TSL2591_GAIN_MED);

  // Inicializar o PID
  horizontalPID.SetMode(AUTOMATIC);
  verticalPID.SetMode(AUTOMATIC);
  horizontalPID.SetOutputLimits(-200, 200);
  verticalPID.SetOutputLimits(-100, 100);

  // Definir os modos dos pinos do motor
  pinMode(STEP_H, OUTPUT);
  pinMode(DIR_H, OUTPUT);
  pinMode(STEP_V, OUTPUT);
  pinMode(DIR_V, OUTPUT);
}

void loop() {
  // Ler a intensidade da luz a este e a oeste
  uint32_t eastLux = tslEast.getFullLuminosity();
  uint32_t westLux = tslWest.getFullLuminosity();
  inputEast = (eastLux - westLux) / 1000.0;

  // Ler o ângulo de inclinação atual
  int16_t ax, ay, az;
  mpu.getAcceleration(&ax, &ay, &az);
  inputVertical = atan2(ay, az) * 180 / M_PI;

  // Calcular a saída do PID
  horizontalPID.Compute();
  verticalPID.Compute();

  // Acciona o motor horizontal
  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);
    delayMicrossegundos(500);
    digitalWrite(STEP_V, LOW);
    delayMicrossegundos(500);
  }

  // Imprimir dados
  Serial.print("Leste:");
  Serial.print(eastLux);
  Serial.print(" Oeste:");
  Serial.print(westLux);
  Serial.print(" Ângulo:");
  Serial.println(inputVertical);

  delay(1000);
}

4.3 Análise do código-chave

  • Controlo PID
  • horizontalPID e verticalPID controlam os motores horizontal e vertical, respetivamente.
  • entradaLeste e inputVertical são entradas PID, que representam a diferença de intensidade luminosa este-oeste e o ângulo de inclinação da corrente.
  • outputStepH e outputStepV são saídas PID, indicando os passos do motor.
  • Acionamento do motor
  • Utilização digitalWrite para controlar a direção do motor (DIR_H e DIR_V).
  • Utilização para laço e atrasoMicrossegundos para controlar a velocidade de passo do motor.
  • Monitorização de dados
  • Saída da intensidade da luz este-oeste e do ângulo de inclinação atual via série para depuração e monitorização.

4.4 Instalação da biblioteca de chaves

  • Gestor de bibliotecas do IDE Arduino
  • Pesquisar e instalar Biblioteca Adafruit TSL2591.
  • Pesquisar e instalar MPU6050 por Electronic Cats.
  • Pesquisar e instalar PID por Brett Beauregard.

4.5 Processo de calibração

  • Calibração do sensor de luz
  void calibrateTSL() {
    tslEast.setGain(TSL2591_GAIN_LOW);
    tslWest.setGain(TSL2591_GAIN_LOW);
    // Executar depois de alinhar ambos os sensores com a mesma fonte de luz
    while(abs(tslEast.getLuminosity() - tslWest.getLuminosity()) > 100) {
      delay(1000);
    }
  }
  • Calibração do MPU6050
  void calibrateMPU() {
    mpu.CalibrateAccel(6); // calibração de 6 amostras
    mpu.CalibrateGyro(6);
    mpu.PrintActiveOffsets();
  }

4.6 Caixas de impressão 3D

  • Suportes do motor
  • Caixas para sensores

5. Dicas de depuração e manutenção

5.1 Processo de calibração

  • Calibração do sensor de luz
  • Comparar as leituras do TSL2591 com um luxímetro (erro de ±3%).
  • Reposição mecânica do zero
  • Utilizar os interruptores de limite para definir as posições horizontais/verticais iniciais.

5.2 Manutenção de rotina

  • Controlo trimestral: Limpar os resíduos dos carris e lubrificar as chumaceiras.
  • Atualização anual: Atualizar os parâmetros PID (otimizar com base nos dados meteorológicos locais).

7. Perguntas mais frequentes (FAQ)

Tomar medidas: Contacte o pessoal oficial da LINKSOLAR e inicie o seu projeto de energia verde!

Esperamos que este tutorial o ajude a construir com sucesso um sistema de rastreamento solar eficiente!

Active o JavaScript no seu browser para preencher este formulário.
Nome

pt_PTPortuguese
Active o JavaScript no seu browser para preencher este formulário.
Nome