Bonjour,
Depuis quelques mois déjà (8 mois pour être plus précis) j'ai entamé un projet qui consistait à concevoir un système de tracking solaire afin d'optimiser dans un premier temps le rendement des panneaux solaires. Oui je sais, 8 mois c'est un peu trop mais entre les commandes passées et l'attente de la réception, il y a eu du temps qui est passé. Mais peu importe, je l'ai maintenant terminé en tenant compte d'un certains nombres de paramètres qui rendent le système quand même "performant" (enfin si je puis le dire ainsi).
J'ai donc voulu réaliser quelque chose de simple et performant (je sais qu'il y a mieux côté performance mais ma part me satisfait pour le moment). L'électronique du système repose donc sur une carte Arduino, vient ensuite des photorésistances, un fin de course et des moteurs.
Comment ça marche
Tout d'abord j'aimerais préciser que j'ai fait deux mode de fonctionnement pour le système : un mode automatique (le système se gère seul) et un mode manuel (où l'utilisateur peut lui même positionner son panneau comme bon lui semble).
En mode automatique l'organigramme est assez simple :
- je calcul l'heure du lever et du coucher du soleil à l'aide d'une librairie qui m'a été fourni par @Heloderma-kris (que je remerci au passage) puis ensuite récupère l'heure courante à partir d'une horloge ds1307.
- il s'en suis ensuite des tests conditionnels
- je fais ensuite une comparaison entre l'heure courante et les heures calculées.
- si l'heure courante est comprise entre l'heure du lever et l'heure du coucher alors le système devra se mettre à la recherche du maximum d'éclairement afin de positionner le panneau dans dans la bonne direction.
- si l'heure courante est supérieur à l'heure du lever et à l'heure du coucher alors le système devra arrêter la poursuite et ramené le panneau dans la position correspondant au lever du soleil du jour suivant.
- si l'heure courante est inférieur à l'heure du lever et à l'heure du coucher alors il en est de même que précédemment.
- après avoir fais ces tests, le programme repars calculé et récupéré l'heure puis le tout recommence.
Un fin de course arrête le panneau lorsque celui-ci arrive en fin de course (heure du lever). Avant de placer le fin de course j'ai calculé les heures du lever du soleil pour l'année 2014 puis j'ai ensuite prit l'heure minimal du lever que j'ai fait correspondre à un angle donné. C'est ce qui m'a permit de placer le fin de course.
En mode manuel le principe est aussi simple. J'ai quatre boutons (LR1, LR2, UD1, UD2) au total dont je vérifie l'état afin de pouvoir agir en fonction. Lorsque le système est en mode manuel, il y a deux doubles afficheurs (LR et UD) qui affiche la différence de valeur entre les photorésistances de même axes.
- au départ je récupère les valeurs renvoyées par les photorésistances de chaque axe (je ne l'ai pas rééchelonné) puis je fait une différence
- ensuite je vérifie l'état de chaque bouton afin de pouvoir agir en fonction de l'action sur un des boutons.
Supposons que j'ai une différence de 25 entre les photorésistance de l'axe horizontal alors l'afficheur va m'afficher 02 et à ce instant l'utilisateur saura qu'il faut bouger la panneau dans un sens permettant d'avoir 00 comme différence et ce zéro correspond à une différence comprise entre 0 et 10. Je considère que sur une plage de 0 à 10 l'erreur de positionnement est assez négligeable.
Problème 1 En mode manuel il existe un problème majeur que j'ai remarqué :
Si il advenait que le système ne soit plus alimenter (accidentellement) et que cela arrivait vers 9h par exemple alors celui-ci serait bloqué dans la position correspondant cette heure.
Maintenant supposons que l'utilisateur l'ai remarqué mais au alentour de 15h alors il remet sous-tension (en mode automatique). Puisque le positionnement du système n'est pas basé sur le calcul de la position du soleil mais plutôt sur des photorésistances alors celui-ci va se mettre en marche et positionner le panneau dans la position correspondant à l'éclairement lié à son orientation c'est-à-dire 9h. Dans ce cas il y un problème de perte d'énergie.
Solution 1
Pour y remédier, l'utilisateur après avoir remit sous-tension, devra basculer en mode manuel afin de ramener le panneau dans la position correspondant à l'heure courante c'est-à-dire 15h. Dès lors, il pourra "rebasculer" en mode automatique où le système prendra en charge la poursuite afin de positionner le panneau dans la position correspondant à l'éclairement.
Problème 2
Je n'ai pas tenu compte des couvertures nuageuses car comme je le disais, mon système n'est pas basé sur le calcul de la position du soleil dans le ciel. Ce qui fait que s'il y avait un temps couvert de 9h à 15h par exemple, l'on rejoint le problème précédent.
Solution 2
Pour y remédier, j'ai intégré dans la mode automatique un système qui fait que le système ne réagit pas en dessous d'un seuil d'éclairement calculé. Ensuite pour le reste, la solution est la même que précédemment.
Je sais bien évidement que pour avoir un système à 100% performant il faudrait intégrer des calcul qui permettent de trouver la position du soleil dans le ciel. Cela permettrait de résoudre la problème de couverture nuageuse et autres. Il faudrait aussi intégré d'autres composant électronique comme des fourches optoélectroniques etc ... Mais comme je l'ai dit au début, j'ai voulu faire quelque chose de simple, compréhensible et performant ....... enfin performant à 70%
Le mode manuel a son utilité car l'utilisateur peut lui même vouloir positionner son panneau comme bon lui semble.
Je post ceci :
- tout d'abord pour partager le résultats de mes travaux,
- ensuite pour soumettre cela à votre appréciation,
- et enfin pour permettre à ceux-là qui voudront se lancer dans la réalisation d'un tel système d'avoir déjà une base.
Je travail actuellement sur la réalisation du système en taille réel (grande échelle) mais j'ai écrit ce code en tenant compte, pas d'un système miniature, mais d'un système en taille réel. J'en suis à la réalisation du schéma en tenant en compte de tous les paramètre comme les vents forts et autres. Le travail étant très sérieux, je n'ai pas minimiser le système miniature car si ce n'est pas le poids du panneau qui peut changer la donne, ce dernier est en état d'assurer une poursuite autonome et rentable.
J'aimerais remercier particulièrement @Batto pour le 1er code et @Artouste pour la suite. Je suis ouvert à toutes suggestions d'amélioration.