Système de suivi solaire bricolé : Optimisez votre utilisation de l'énergie solaire
Ce tutoriel fournit un guide détaillé sur la façon de construire un système de suivi solaire à faible coût basé sur le support au sol monopôle LINKSOLAR (lien officiel), qui peut améliorer l'efficacité de la production d'énergie d'un panneau photovoltaïque de 100 W de 30%-45%. Le tutoriel comprend un code, une liste de matériaux et des solutions d'étanchéité.
1. Pourquoi avons-nous besoin d'un système de suivi solaire ?
1.1 Améliorer l'efficacité de la production d'électricité
- Montage fixe: La capture quotidienne d'énergie est d'environ 70%.
- Suivi d'un seul axe: L'efficacité passe à 85%-90% (données NREL).
- Suivi à deux axes: Peut atteindre 95% (objectif de ce projet).
1.2 Avantages de la Mont LINKSOLAR
- Capacité de charge de qualité industrielle: Un seul poteau supporte jusqu'à 6 panneaux de 100W.
- Modification rapide: Compatible avec le moteur pas à pas NEMA17.
- Conception résistante au vent: Poteau en acier galvanisé de 4 pouces + fondation pré-enfouie.
2. Liste des matériaux et préparation des outils
Catégorie | Modèle/Spécification | Description optimisée par mot-clé |
---|---|---|
Montage du noyau | LINKSOLAR Monopole Montage au sol | Support solaire pour installation au sol |
Moteur d'entraînement | Carte de pilotage NEMA17 + DRV8825 | Moteur pas à pas à couple élevé pour le suivi solaire |
Capteur de lumière | TSL2591 Module capteur de lumière numérique | Capteur de lumière I2C pour le suivi des panneaux photovoltaïques à l'extérieur |
Contrôleur principal | Carte de développement ESP32 | Contrôleur de suivi solaire compatible Wi-Fi |
3. Guide d'installation pas à pas
3.1 Etapes de la modification de la monture
- Renforcement des poteaux
- Souder un palier à bride (modèle FYLC-205) sur la partie supérieure du support LINKSOLAR.
- Fixer le moteur NEMA17 avec des boulons en U (axe de rotation horizontal).
- Structure de réglage de l'inclinaison
- Utilisez de l'aluminium en forme de L (6061-T6) pour relier le panneau au deuxième moteur.
- Installer des interrupteurs de fin de course (KW12-3) pour éviter une rotation excessive.
3.2 Schéma de connexion des circuits
[Conseil de référencement] Utilisez le texte alt pour décrire l'image :
"Schéma de câblage d'un système de suivi solaire - L'ESP32 contrôle les moteurs à deux axes et le capteur de lumière".
4. Explication du code Arduino (avec algorithme PID)
4.1 Aperçu de la structure du code
Le code Arduino pour ce système est basé sur un algorithme de contrôle PID, utilisant le capteur de lumière TSL2591 et le capteur d'orientation MPU6050 pour ajuster l'angle du panneau solaire en temps réel pour un suivi à deux axes. Le code est divisé en plusieurs sections :
- Initialisation du capteur: Comprend le capteur de lumière TSL2591 et le capteur d'orientation MPU6050.
- Contrôle PID: Utilise l'algorithme PID pour calculer les pas du moteur afin d'obtenir un contrôle horizontal (azimut) et vertical (élévation) précis.
- Entraînement par moteur: Contrôle la direction et les pas du moteur pas à pas en fonction de la sortie PID.
- Contrôle des données: Affiche les données du capteur et les calculs PID via une interface série pour le débogage.
4.2 Code complet
#include
#include
#include
#include
// Objets capteurs
Adafruit_TSL2591 tslEast = Adafruit_TSL2591(0x29) ;
Adafruit_TSL2591 tslWest = Adafruit_TSL2591(0x30) ;
MPU6050 mpu ;
// Paramètres PID
double Kp = 2.0, Ki = 0.5, Kd = 0.1 ;
double inputEast, inputVertical, outputStepH, outputStepV ;
double setpointH = 0, setpointV = 45 ; // Angle d'inclinaison initial de 45°.
PID horizontalPID(&inputEast, &outputStepH, &setpointH, Kp, Ki, Kd, DIRECT) ;
PID verticalPID(&inputVertical, &outputStepV, &setpointV, Kp, Ki, Kd, DIRECT) ;
// Définitions des broches
#define STEP_H 12
#define DIR_H 13
#define STEP_V 14
#define DIR_V 15
void setup() {
Serial.begin(115200) ;
Wire.begin() ;
// Initialisation des capteurs
tslEast.begin() ;
tslWest.begin() ;
mpu.initialize() ;
// Régler le gain du TSL2591
tslEast.setGain(TSL2591_GAIN_MED) ;
tslWest.setGain(TSL2591_GAIN_MED) ;
// Initialisation du PID
horizontalPID.SetMode(AUTOMATIC) ;
verticalPID.SetMode(AUTOMATIC) ;
horizontalPID.SetOutputLimits(-200, 200) ;
verticalPID.SetOutputLimits(-100, 100) ;
// Définition des modes de brochage du moteur
pinMode(STEP_H, OUTPUT) ;
pinMode(DIR_H, OUTPUT) ;
pinMode(STEP_V, OUTPUT) ;
pinMode(DIR_V, OUTPUT) ;
}
void loop() {
// Lecture de l'intensité lumineuse à l'est et à l'ouest
uint32_t eastLux = tslEast.getFullLuminosity() ;
uint32_t westLux = tslWest.getFullLuminosity() ;
inputEast = (eastLux - westLux) / 1000.0 ;
// Lecture de l'angle d'inclinaison actuel
int16_t ax, ay, az ;
mpu.getAcceleration(&ax, &ay, &az) ;
inputVertical = atan2(ay, az) * 180 / M_PI ;
// Calcul de la sortie PID
horizontalPID.Compute() ;
verticalPID.Compute() ;
// Pilotage du moteur 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) ;
delayMicroseconds(500) ;
digitalWrite(STEP_V, LOW) ;
delayMicroseconds(500) ;
}
// Impression des données
Serial.print("Est :") ;
Serial.print(eastLux) ;
Serial.print(" Ouest : ") ;
Serial.print(westLux) ;
Serial.print(" Angle : ") ;
Serial.println(inputVertical) ;
delay(1000) ;
}
4.3 Analyse des codes clés
- Contrôle PID
horizontalPID
etverticalPID
contrôlent respectivement les moteurs horizontaux et verticaux.entréeEst
etinputVertical
sont des entrées PID représentant la différence d'intensité lumineuse est-ouest et l'angle d'inclinaison du courant.outputStepH
etoutputStepV
sont des sorties PID, indiquant les pas du moteur.- Entraînement par moteur
- Utilisation
digitalWrite
pour contrôler la direction du moteur (DIR_H
etDIR_V
). - Utilisation
pour
etdelayMicroseconds
pour contrôler la vitesse de pas du moteur. - Contrôle des données
- Sortie de l'intensité lumineuse est-ouest et de l'angle d'inclinaison actuel via une interface série pour le débogage et la surveillance.
4.4 Installation de la bibliothèque de clés
- Gestionnaire de bibliothèque de l'IDE Arduino
- Recherche et installation
Bibliothèque Adafruit TSL2591
. - Recherche et installation
MPU6050 par Electronic Cats
. - Recherche et installation
PID par Brett Beauregard
.
4.5 Processus d'étalonnage
- Étalonnage du capteur de lumière
void calibrateTSL() {
tslEast.setGain(TSL2591_GAIN_LOW) ;
tslWest.setGain(TSL2591_GAIN_LOW) ;
// Exécution après alignement des deux capteurs sur la même source lumineuse
while(abs(tslEast.getLuminosity() - tslWest.getLuminosity()) > 100) {
delay(1000) ;
}
}
- Etalonnage du MPU6050
void calibrateMPU() {
mpu.CalibrateAccel(6) ; // Étalonnage sur 6 échantillons
mpu.CalibrateGyro(6) ;
mpu.PrintActiveOffsets() ;
}
4.6 Enceintes d'impression 3D
- Supports de moteur
- Boîtiers de capteurs
5. Conseils de débogage et de maintenance
5.1 Processus d'étalonnage
- Étalonnage du capteur de lumière
- Comparez les relevés du TSL2591 avec ceux d'un luxmètre (erreur de ±3%).
- Remise à zéro mécanique
- Utiliser les interrupteurs de fin de course pour régler les positions horizontales/verticales initiales.
5.2 Entretien courant
- Chèque trimestriel: Nettoyer les débris du rail et lubrifier les roulements.
- Mise à niveau annuelle: Mise à jour des paramètres PID (optimisation en fonction des données météorologiques locales).
7. Foire aux questions (FAQ)
Agir: Contactez l'équipe officielle de LINKSOLAR et lancez votre projet d'énergie verte !
Nous espérons que ce tutoriel vous aidera à construire un système de suivi solaire efficace!