Alphasole-automation

De Open Source Ecologie


Général

Présentation et Fonctionnement

On intégre dans l’absorbeur les capteurs de pression et de débit. On place aussi deux capteurs de température dont le rôle sera de vérifier que le fluide contenu ne soit pas entièrement vaporisé à chaque extrémité du tuyau (côté supérieur et inférieur). Pour l’orientation des miroirs, on utilise une photoresistance pour évaluer la luminosité ambiante pour déterminer le mode dans lequel se trouve le concentrateur solaire. Deux photodiodes sont utilisées pour suivre le soleil de manière réactive. On utilise aussi deux capteurs de butées pour pouvoir connaître les orientations maximales du concentrateur.

Le système doit être initialisé lors d'un jour ensoleillé pour que le système fonctionne en mode réactif. En effet, le premier jour, les données du prévisionnel ne sont pas initialisées.

Fonctionnalités

Le fonctionnement de l’automatisation du concentrateur solaire est écrit dans le fichier main.ino, sensorFunctions.ino, et sleepModeControl.ino. Il fait appel aux fonctions des autres modules écrient dans les fichiers datalogger.ino, heliostat.ino, motorControl.ino, solarConcentrator.h.

main.ino

Nom Description Entrées Sorties
setup Initialisation des pins, interruptions, du datalogger et du timer. X X
timer Toutes les 5 minutes, on appelle les fonctions permettant de :

- Calculer les valeurs de capteurs.

- Sauvegarder les données dans le datalogger.

- Sauvegarder les données sur la carte SD si c’est la fin de journée.

X X
loop Fonction appelée en boucle.

- Calcule la valeur du luxmètre, et appelle les fonctions permettant de passer en mode réactif ou en mode prévisionel selon la valeur du luxmètre.

- Vérifie les conditions aux limites, si elles sont dépassées, le mode d’urgence est activer.

X X


sensorFunctions.ino

Nom Description Entrées Sorties
calculateTemperature Récupère la valeur d’un capteur de température et calcule la température en Celsius. Numéro de la pin correspondant au capteur mesuré. Température au capteur.
calculateFlow Récupère la valeur du capteur de débit et calcule le débit en L/min. X X
calculatePressure Récupère la valeur du capteur de pression et calcule la pression en bar. X X
calculatePower Calcul la valeur de la puissance thermique en kCal/h. X X
pulseCounter Compteur qui s’incrémente à chaque interruption, pour le calcul du débit. X X
calculateLux Récupère la valeur de la photorésistance et calcule la luminosité en une unité proche du lux. X X
checkLimits Vérifie que toutes les valeurs de pression, débit et température ne dépassent pas les valeurs maximales supportées. X Retourne 1 si une valeur dépasse la valeur maximale supportée, sinon 0.


sleepModeControl.ino

Nom Description Entrées Sorties
ISR(WDT_vect) Interruption du Watchdog. Est appelée lorsque le Watchdog expire. X X
enterSleep Fait rentrer l’arduino en veille. X X
wdtInitialisation Initialisation du Watchdog. X X

Automatisation des miroirs

Les fonctionnalités de l’automatisation des miroirs sont écrites dans le fichier motorControl.ino

Nom Description Entrées Sorties
sweeper Recherche l’endroit où se trouve l’ensoleillement maximum. X X
initialization Est appelée par sweeper. Va faire tourner le moteur jusqu’à une extrémité, et ainsi détermine le sens dans lequel tourne le moteur. X X
sweep Est appelée par sweeper. Vérifie si la luminosité est maximale à chaque étape. - La luminosité au moment de l’appel de la fonction.

- La direction dans laquelle le moteur doit tourner.

Luminosité maximale.
runMotor Permet de faire tourner le moteur d’un certain nombre de tours. - Pourcentage correspondant à la vitesse du moteur.

- Nombre de tours.

X
nbRevs Attend que le moteur effectue un certain nombre de tours avant de terminer. Nombre de tours Retourne 0 si on a effectué le nombre de tours, renvoie 1 si on arrive sur un capteur de butée.
exitstop Est appelé quand on a atteint un capteur de butée. Fait reculer de 20 tours. Pourcentage correspondant à la vitesse du moteur en sortie. S'il est positif, tourne en polarité positive sinon négative X
emergencyMode Est appelée lorsque la fonction checkLimits() retourne 1 ou lorsqu’elle est activée par l’interrupteur de l’interface. Fait rentrer le système dans le mode d’urgence : le moteur fait tourner le système jusqu’à une extrémité. X X

Heliostat

Présentation et Fonctionnement

L’Héliostat a pour objectif de contrôler la position des miroirs du concentrateur solaire en fonction des conditions météorologiques. L’héliostat fonctionne selon 2 modes: - S’il y a de la lumière direct, il travaille en mode réactif. Le module se sert de photodiodes pour déterminer de façon réactive l’orientation que doit prendre ces miroirs, de plus les données sur la position du soleil sont enregistrées dans le datalogger. - S’il n’y a pas de lumière direct (des nuages par exemple), il travaille en mode prévisionnel. Le module va se servir des données sur la position du soleil enregistrées par le datalogger, dans la carte SD.

Fonctionnalités

Les fonctionnalités de l’héliostat sont écrites dans le fichier heliostat.ino

Nom Description Entrées Sorties
heliostatReaction Lis la valeur des photodiodes gauche et droite et en fonction de la valeur d’écart delta entre les deux capteurs, fait tourner le moteur de 1 tour. Si le delta est positif, on tourne dans la polarité positive, sinon on tourne dans la polarité négative. X X
heliostatForecast Prend la position correspondant à la capture courante et déplace les miroirs à cette position X X

Datalogger

Présentation et Fonctionnement

Le datalogger a pour but, dans un premier temps, de récupérer les données des capteurs de pression, température, débit et de les enregistrer dans un fichier texte dans la carte SD. Et dans un second temps,il doit récupérer les données sur la position du soleil lorsque l’héliostat est en mode réactif, grâce aux photodiodes. Ce module communique donc avec l’interface utilisateur qui doit utiliser les informations de puissances, débit, pression et température, ainsi qu’avec l’héliostat mode réactif car il récupère la position du soleil et l’héliostat prévisionnel car il doit envoyer les valeurs sur la position du soleil.

Fonctionnalités

Les fonctionnalités du datalogger sont écrites dans le fichier datalogger.ino

Nom Description Entrées Sorties
saveDatalogger Enregistre dans le fichier une capture contenant puissance, température des capteurs 1 et 2 et pression. X X
initDatalogger Lors d’une nouvelle journée, la fonction va initialiser un nouveau fichier correspondant au jour. X X
refreshHeliostat Enregistre dans le fichier «sun.txt» une capture contenant la position du moteur. X X
initHeliostat Au début de la journée, on récupère les positions du moteur du jour précédent, et on le stock dans un tableau. X X

Interface Utilisateur

Présentation et Fonctionnement

L’interface permet d’avoir une visualisation de tous les états du système. On peut distinguer 2 modes visibles:

- Réactionnel

- Prévisionnel

Sur l’interface on a une visualisation d’une jauge correspondant à la puissance que le système fournie. 4 leds signalent la présence respectivement d’une surtempérature, surpression, surdébit et bug. De plus, on retrouve un interrupteur permettant de passer en mode d'urgence, un interrupteur permettant d'alimenter la carte (interrupteur POWER). Enfin, un bouton poussoir RESET permet de réinitialiser le système.

Fonctionnalités

Les fonctionnalités de l’interface utilisateur sont écrites dans le fichier interface.ino

Nom Description Entrées Sorties
Ini_led Initialise les pins des leds sur la carte arduino. X X
Power_Led_Wall Affiche sur l’interface le niveau de puissance dans le tuyau. X X
refreshInterface Change les états des LEDs en fonction de la valeur des flags. X X
EmergencySwitch Appelle la fonction d’urgence si le switch est activé. X X
feedback
MediaWiki Appliance - Powered by TurnKey Linux