Les élèves ayant réalisé le projet :
- Léo GOUZOUAZI étudiant GEII
- Nikola ILIC étudiant GEII
Sommaire
- Présentation du Projet
- Analyse fonctionnelle
- Matériel
- Réalisation
- Avancée du projet
- Conclusion
Introduction
Le but du projet « Supervision d’un panneau solaire » est d’exercer un contrôle ou une vérification sur l’activité du panneau solaire situé au sein de l’IUT de Mulhouse, et ces informations seront stockées dans un tableur. Tout cela est rendu possible à l’aide de capteurs de courant, d’humidité, de température, de lumière, d’une Arduino Yun et de différents calculs réalisés à l’aide des valeurs renvoyées par les capteurs.
Ces valeurs étant constamment en évolution et n’étant pas fournises par le constructeur, nous proposons ainsi aux personnes voulant les exploiter une façon de s’en servir pour leurs études personnelles, les données étant récupérables tout les soirs.
Analyse fonctionnelle
Cahier des Charges Fonctionnelles (CdCF) :
Exercer un contrôle de l’activité du panneau solaire situé à l’IUT de Mulhouse pour laisser libre service de ces informations à Mme.Ihssane Chtouki et à ses recherches :
- Pouvoir récupérer, stocker et utiliser les donnés relatives au panneau solaire à distance.
- Renvoyer toutes les valeurs des capteurs toutes les minutes entre 6h du matin et 22h.
- Possibilité de mettre le système de mesure à l’extérieur.
- Toutes les valeurs doivent être récupérées sous forme de tableau.
La réalisation complète du projet serra réalisée par les étudiants du département Génie Électrique et Informatique Industrielle.
Expression du besoin (bête à corne) :
Matériel
Description du matériel :
-La carte :
- Une carte Arduino Yun :
La carte Arduino Yun est une carte Arduino à laquelle a été rajouté un processeur qui fonctionne sous Linux Linino, cette carte possède une connectivité Ethernet, WiFi, une mémoire RAM ainsi qu’une mémoire flash (dont une partie est occupée par la distribution Linux) et un lecteur de carte micro-SD. Pour notre projet nous avons choisi cette carte afin de pouvoir exploiter sa fonctionnalité Ethernet et mirco-SD.
-Les Capteurs :
- Un capteur de température et d’humidité : Le DHT 22
Le DHT 22 est un capteur de température et d’humidité très précis, il peut mesurer une humidité qui varie entre 0 et 100% avec une précision de ± 2% et pour ce qui est des mesures de température, elle peuvent aller de -40 a +80°C avec une précision de ± 0.5°C. Cette précision explique pourquoi nous avons fait le choix de ce capteur.
- Un capteur de luminosité : Le TSL2591
Le TSL2591 est un capteur de luminosité il permet de mesurer une intensité lumineuse qui varie de 188 µLux à 88000 Lux. Cette information nous est nécessaire car grâce elle nous pouvons déterminer la production du panneau solaire en W/m².
Il faut également savoir que ce capteur est un capteur fonctionnant sous I²C. Le bus I²C permet de faire communiquer entre eux des composants électroniques grâce à trois fils : un signal de données (SDA), un signal d’horloge (SCL), et un signal de référence électrique (masse). Cette particularité nous obligera donc a utilisé les Pins 2 et 3 de l’arduino (la 2 pour le SDA et la 3 pour le SCL).
Pour tout savoir sur le protocole I2C nous vous invitons à vous rendre sur ce site.
- Capteur de courant linéaire à effet hall : Le MR003-006.2
Ce capteur à effet hall nous permet de mesurer un courant de ±5A
Mais qu’est-ce que l’effet hall? Tout courant électrique traversant un champ magnétique continu B subit une force électromagnétique dont le sens est donné par la règle des trois doigts (force Laplace). Les trajectoires des charges du courant électriques sont donc déviées en présence de B. Il apparaît donc une d.d.p. (différence de potentiel) sur deux bornes du capteur, dite Tension de Hall. Pour savoir exactement comment fonctionne notre capteur nous vous invitons à consulter sa Datasheet ici.
Réalisation
Synoptique
Configuration de l’Arduino Yun et de la carte SD
La carte Arduino Yun peut être utiliser comme serveur, pour cela il suffit de créer un répertoire « /arduino/www/ » sur le carte SD, tout les fichier présent dans le répertoire « www » serons accessible en tapant l’adresse « http://10.92.11.25/sd/ » (adresse IP de notre carte) dans n’importe quel navigateur web. Pour cela nous avons créer les dossier directement sur la carte SD avec un ordinateur.
Code
Le Code complet est disponible en cliquant ici.
Configuration du TSL2591 : void configureSensor(void)
Le TSL2591 est paramétrable en fonction des conditions d’utilisation. Cette configuration ce fait au début dans une fonction appeler configureSensor(). Le capteur étant à l’extérieur, il est soumis au rayon du soleil et donc à une lumière assez forte, nous l’avons donc configurer pour qu’il ne soit pas trop sensible.
Initialisation : void setup()
Dans le setup nous allons démarré la liaison entre les deux processeurs grâce à la fonction Bridge.begin(). La fonction FileSystem.begin() nous permet de communiquer avec Linino. La fonction dht.begin() permet de communiquer avec le capteur DHT22.
Récupération de la date et l’heure : String getTimeStamp() et String getDateStamp()
Les deux fonctions fonctionne exactement de la même façon, elle vont tout simplement récupérer l’heure et la date du système d’exploitation Linino.
Ecriture dans un fichier .csv : void loop()
Les données des capteurs doivent être écrit dans un fichier csv. Ce format permet de structurer du texte dans un tableau. Le principe est simple chaque ligne du texte correspond à une ligne dans le tableau. Pour créer des colonnes, il suffit de séparer le texte par un un point virgule. Ce Format est compatible avec Microsoft Excel.
Exemple :
Dans notre cas nous voulons un tableau par jour, et connaitre le température, l’humidité et l’irradiance toute les minutes entre 6h et 22h.
Dans un premier temps nous allons récupérer l’heure grâce à la fonction getTimeStamp(). Quand il est 6h nous allons créer le fichier grâce à la fonction FileSystem.open(). Nous devons indiquer le chemin ou le fichier doit être créer. Nous avons décidés d’utiliser la date comme nom du fichier mais nous devons modifier les slashs par des underscores. Nous récupérons la date grace à la fonction String getDateStamp() qui nous renvois une chaîne de caractères, pour faire modifier les slashs par des underscores nous devons concaténer la chaîne de caractères dans un tableau grâce à la fonction DateStr.toCharArray(). La structure de la fonction FileSystem.open() est FileSystem.open(const char*, int), donc nous devons concaténer CheminConst dans un tableau. Puisque le fichier n’existe pas encore, la fonction va le créer.
Dans un second temps nous allons écrire les mesures des capteurs dans le fichier toute les minutes jusqu’à 22h. Pour cela nous allons utiliser une boucle while et un compteur. Dans cette boucle nous récupérons les données des capteurs dans des variables indépendante. Pour acquérir les valeurs des capteurs nous utilisons les fonctions disponible dans la librairie proposé par le fabriquant. Puis nous créer une seule chaîne de caractères dataString.
Avancée du projet
Lors de nos première séances projet, nous avions un projet totalement différent, nous avions pour objectif de mettre en place un pilotage à distance du chauffage des salles du bâtiment A. Pour ce faire nous voulions nous baser sur les emplois du temps disponibles sur le site de l’UHA dans la rubrique salles GEII et ainsi optimiser l’utilisation du chauffage en fonction de l’utilisation des salles. Or après avoir réalisé une étude approfondie des besoins et avoir étudié plus en détails la façon dont sont codés les emplois du temps, nous avons appris que ce projet ne serrait pas réalisable car le système de chauffage de l’IUT était centralisé. Nous voila arrivé à la fin de la 3ème séance. Il nous faut donc un nouveau projet. Après concertation avec M.Steger nous avons pu dès lors trouver notre nouveau projet : Supervision d’un panneau solaire.
Dès ce moment nous avons été orientés vers l’idée de la création d’un serveur MQTT sa réalisation nous a demandé un grand nombre d’heures qui n’ont au final aboutie à rien car nous avons abandonné la réalisation de ce serveur lui préférant une page internet.
Ayant déjà la carte Arduino Yun nous avons pu réaliser nos codes pour les capteurs choisis, par chance, l’IUT disposait déjà d’un capteur DHT11 utilisant les mêmes bibliothèques que le DHT22 nous avons donc pu tester ce premier code. Après commande et réception des différents capteurs tout c’est très vite enchainé, les codes ayant été écrits en amont ont pu directement être testés avec succès.
A cette date la partie codage est finie, le seul aspect non abordé du projet est la possibilité de positionner le système de mesure à l’extérieur.
Conclusion
Nous avons pu, lors de ce projet nous servir des connaissances acquises lors de nos études, et les mettre à profit dans un but précis. Nous avons également pu découvrir ce qu’est la gestion d’un projet, faire le choix des éléments les plus adaptés, communiquer et travailler en équipe dans un but précis, faire face à des difficultés mais également gérer les délais. Nous avons pris du retard dans notre projet pour différentes raisons, tel que le délais de la réception des capteurs (que nous avons pu en partie contourner en écrivant les codes sans pouvoir les tester) mais également lors de la tentative de création d’un serveur MQTT qui au final n’a pas été créé ou bien lorsque nous avons passé 3 séances à travailler sur un projet non réalisable. Ces erreurs sont donc à garder en mémoire et à ne plus reproduire dans nos projets futurs.
Remerciements
Nous tenons à remercier M. De Sabbata pour sa patience, son aide et ses conseils pour les soudures qui ont du être réalisées sur les différents capteurs ainsi que pour le prêt d’une carte Arduino Yun sans laquelle ce projet n’aurait pas pu se réaliser.