Le prototype de la serre connectée. |
Le tableau de bord associé sur SCorp-io. |
Le mini-projet « serre connectée ENIM » consiste à étudier la programmation d’une serre destinée à la culture de petits végétaux. La serre est instrumentée, pourvue d’actionneurs et connectée à la supervision SCorp-io.
Contexte
Le mini-projet prend place dans le module d’Informatique Appliquée, en 4ᵉ année du diplôme d’Ingénieur de l’École Nationale d’Ingénieurs de Metz. Il est réalisé par tous les étudiants de la promotion, répartis en groupes de 6 à 10 étudiants. Il y a d’abord 12 h de travaux pratiques introductifs à la programmation sur microcontrôleur, puis 12 h de mini-projet.
Structure
Dans chaque groupe, les fonctionnalités à développer sont réparties dans les lots de travail suivants :
- LT1 – Régulation de température
- LT2 – Régulation de luminosité
- LT3 – Régulation d’humidité
- LT4 – Approvisionnement en eau
- LT5 – Interface humain-machine
- LT6 – Acquisition et communication avec la supervision
Chaque binôme choisit son lot de travail, avec la nécessité qu’au moins les LT1, 3 et 5 soient pourvus dans chaque groupe. Le groupe a la responsabilité d’organiser l’intégration des résultats de chaque LT, afin de proposer un code global fonctionnel.
Pédagogie
Le parti pris est de fournir aux étudiants des spécifications et des descriptions architecturales de chaque lot de travail. Ceci justifie le terme « mini-projet » : pédagogiquement, ce travail relève davantage de l’approche par problème. Les étudiants se concentrent sur la programmation et la mécatronique. La maîtrise d’œuvre et l’ingénierie système ne sont pas abordées à l’heure actuelle.
Les objectifs d’apprentissage sont les suivants :
- Savoir programmer en langage MicroPython, en implémentant les bonnes pratiques les plus courantes (modularité, clarté, utilisation des commentaires).
- Savoir faire un choix de capteur éclairé, prenant en compte les caractéristiques du capteur, mais aussi sa facilité d’intégration (librairies disponibles, nature des signaux échangés).
- Savoir interfacer physiquement et logiciellement les périphériques avec le microcontrôleur disponible.
- Apprendre à transformer le programme finalisé en module, grâce à la programmation orientée objet.
- Intégrer le résultat de chaque lot de travail dans un code global léger, tirant parti de l’approche objet.
Implémentation matérielle et logicielle
L’ENIM dispose de 13 cartes d’expérimentation ESP32, qui sont des cartes ad-hoc comprenant :
- Un microcontrôleur ESP32 WROOM.
- Des éléments d’IHM tels que boutons, capteurs capacitifs, potentiomètres.
- Un capteur de température DS18B20 et une photodiode.
- Des éléments d’affichage : écran OLED, LEDs monochromes et ruban NeoPixel.
- Un grand nombre de connecteurs permettant d’interfacer d’autres périphériques sur les broches libres.
La carte d’expérimentation ESP32 ENIM a été recréée sur le simulateur en ligne Wokwi pour pouvoir s’entraîner à distance.
La carte d’expérimentation ESP32 ENIM. |
Une partie des périphériques disponibles. |
La serre est réalisée en profilés complétés de plaques de plexiglas. Elle est notamment pourvue :
- D’un dispositif de chauffage 12 V réalisé en interne.
- D’un ventilateur de PC et d’une trappe pilotée par un servomoteur.
- D’un réservoir d’eau instrumenté et d’une pompe péristaltique.
- De tous les capteurs utiles : température, luminosité, hygrométrie, niveau d’eau.
- D’une carte d’interface permettant la connexion avec la carte d’expérimentation.
Les programmes sont créés en langage MicroPython. En salle de TP, nous utilisons l’IDE Thonny pour la programmation et la connexion au microcontrôleur. Un réseau Wi-Fi dédié aux objets connectés permet d’accéder à internet, notamment pour la remontée des données sur la plateforme SCorp-io.
Un prototype complet de tableau de bord a été réalisé sur SCorp-io par les enseignants. Il permet la visualisation des données, mais également l’envoi de communications descendantes pour forcer l’état des actionneurs.
Résultats 2023-24
L’année 2023-24 a été la première année de réalisation du projet. Environ 2/3 des binômes arrivent à développer toutes les fonctionnalités de leur lot de travail. Environ 1/3 est capable de partager son code avec d’autres binômes afin de faire fonctionner la serre, au moins en partie. Cependant, aucun groupe n’a réussi à faire fonctionner la serre complètement, parfois du fait du manque de fiabilité de certains éléments.
Quelques défauts doivent être corrigés :
- La qualité de réalisation de la serre doit être améliorée, notamment sur la partie actionnement. Le chauffage est trop peu puissant pour réaliser une régulation, et la pompe est peu fiable.
- La gestion du matériel est complexe. Beaucoup de composants sont endommagés au fil de l’année, du fait des branchements hasardeux.
- Les étudiants sont généralement peu confiants sur les branchements, et sont peu autonomes pour en comprendre la logique (bus I2C, SPI, PWM avec transistor…). L’interfaçage grignote du temps sur la programmation, notamment dans les LT3 et 4.
- Certains binômes manquent d’investissement ou de respect des consignes. Ceci entraîne des difficultés insurmontables pour intégrer leur code dans la solution globale, et pénalise le reste du groupe.
- Les remarques et appréciations aux étudiants, surtout à la fin du mini-projet, doivent être mieux formalisées.
Cependant, le bilan est satisfaisant sur le plan pédagogique :
- Le mini-projet a augmenté le niveau de compréhension des étudiants. La moyenne à l’examen final de programmation est plus élevée. Beaucoup atteignent les objectifs pédagogiques de la matière.
- L’implication des étudiants est évidente. Les binômes dont les résultats sont probants consacrent généralement 6 à 10 h de travail personnel au mini-projet. Ils font l’effort d’installer les logiciels et pilotes sur leur PC personnel pour gagner en efficacité.
- La collaboration étant nécessaire pour atteindre l’objectif final, le travail de groupe est récompensé. Des savoirs-être tels que l’entraide et la communication sont mobilisés.
Partage et réutilisation
Un dépôt pour les documents sera mis en lien dans le courant du mois de septembre 2024. Il contiendra les sujets, les listes de composants et des extraits de code dont la réutilisation sera libre. D’ici là, vous pouvez contacter l’auteur pour avoir plus de détails.
Les CAO et mises en plan devant être revues, elles ne sont malheureusement pas disponibles pour l’instant, mais devraient l’être en 2025.
Auteur : Adrien Koessler (contacter). Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International.