L’objectif de cette activité est de reproduire une démarche de projet similaire à celle que vous allez devoir accomplir pour votre projet de 72h.
Consignes principales de l’activité
À partir d’exigences système, vous devez déterminer le couple nécessaire pour motoriser une porte, puis choisir un moteur DC adapté.
Vous remonterez ensuite la chaîne d’énergie pour sélectionner la carte driver moteur, puis la carte microcontrôleur adaptée.
Il faudra ensuite faire un croquis de votre IHM (application web) et la concevoir en HTML/CSS/JS.
Pour finir, vous programmerez votre carte microcontrôleur afin de répondre au cahier des charges.
Durant cette activité, vous retracerez sur un diaporama toute la démarche de projet effectué. Vous aurez au moins une diapo par points suivants :
- Plan du diaporama
- Contexte d’étude
- Choix du moteur (avec les calculs)
- Choix du driver moteur
- Choix de la carte programmable
- Choix des capteurs
- Chaine de puissance & chaine d’information
- Croquis de l’IHM
- Programmation – tests unitaires
- Création de l’IHM
- Programmation du serveur web
- Schéma de câblage
- Programmation finale
- Vidéo du résultat
Contexte et cahier des charges
Dans le cadre d’un projet de prototypage et d’automatisation, on souhaite motoriser la porte d’un poulailler afin qu’elle puisse s’ouvrir et se refermer automatiquement.
L’objectif est de permettre l’ouverture quotidienne sans intervention humaine, tout en conservant une vitesse d’action suffisamment rapide pour être fonctionnelle en situation réelle.

La porte est montée sur un axe vertical, comme une porte classique. Elle doit pivoter grâce à un moteur à courant continu. Ce moteur sera commandé via une interface Web développée par vos soins, puis intégrée directement à la carte programmable.
Spécifications mécaniques
| Paramètre | Valeur |
|---|---|
| Type de mouvement | Rotation autour d’un axe vertical |
| Angle d’ouverture souhaité | 120° |
| Temps maximum pour l’ouverture complète | 5 secondes |
| Masse de la porte | 2 kg |
| Dimensions | 30 cm (largeur) × 50 cm (hauteur) × 2 cm (épaisseur) |
| Distance entre l’axe et la zone d’application de l’effort (poignée) | 30 cm |
Contraintes d’entraînement mécanique
Contrairement à une porte basculante, ici le poids n’aide pas ou n’oppose pas directement la rotation, car il est aligné avec l’axe. Le moteur doit donc principalement vaincre :
- les frottements mécaniques au niveau des charnières,
- l’inertie de la porte au démarrage,
- l’effort nécessaire pour maintenir la rotation.
Une mesure réalisée sur une porte similaire a montré qu’il faut exercer une force de l’ordre de 5 N au niveau de la poignée afin de mettre la porte en mouvement à vitesse lente et régulière.
Choix du moteur
À partir du contexte mécanique précédemment établi, nous cherchons maintenant à sélectionner un moteur à courant continu (DC) capable d’entraîner la porte du poulailler.
- Calculer la vitesse nécessaire du moteur.
- Calculer le couple nécessaire du moteur.
- Trouver un moteur correspondant à ces spécifications.
Remarques :
Si jamais aucun moteur ne corresponde à ces spécifications vous pouvez choisir des engrenages adéquates afin de << réduire la vitesse et augmenter le couple >> ou << augmenter la vitesse et réduire le couple >>.
Choix du driver moteur
Une fois le moteur choisi, il faut sélectionner une carte driver moteur capable de :
- supporter la tension d’alimentation du moteur,
- supporter le courant maximal consommé par le moteur,
- permettre le pilotage du sens de rotation et de la vitesse depuis la carte programmable.
Dans ce projet, vous avez le choix entre (documents fournis ou à rechercher) :
⚠ Le driver est l’interface entre la carte programmable (ESP32, Arduino, etc.) et le moteur :
la carte programmable ne doit JAMAIS alimenter directement le moteur.
- Choisir le driver moteur à partir d’un tableau de critères.
Choix de la carte programmable
Une fois le moteur et le driver sélectionnés, il faut choisir une carte microcontrôleur permettant de piloter l’ensemble.
La carte devra être capable :
- de communiquer avec l’utilisateur via une IHM Web (interface HTML/CSS/JS),
- d’héberger des fichiers et un serveur Web,
- d’assurer la commande en PWM du driver moteur.
Les cartes proposées sont :
Aide — Questions de réflexion
- Quelle carte permet de faire un serveur Web sans ajouter de module externe ?
- Quelle carte dispose de PWM pour piloter le driver moteur ?
- Laquelle consomme le moins d’énergie ?
- Laquelle serait trop puissante voire inutilement complexe pour ce projet ?
- Choisir la carte programmable à partir d’un tableau de critères.
Choix des capteurs
Afin que la porte du poulailler ne tourne pas indéfiniment, il est nécessaire d’installer un ou plusieurs capteurs de position.
Ces capteurs serviront à détecter :
- La fin d’ouverture → lorsque la porte atteint ses 120°
- La fin de fermeture → lorsqu’elle revient en position initiale
Votre mission est de proposer des capteurs adaptés à ce rôle, en vous appuyant sur leurs caractéristiques, leur mode de détection et leur simplicité de mise en œuvre.
- Choisir un ou plusieurs capteurs à partir d’un tableau de critères.
Chaine d’information et chaine de puissance
Pour que la porte du poulailler puisse être motorisée, il est essentiel de comprendre comment l’énergie circule dans le système (de l’alimentation jusqu’au moteur) et comment l’information se déplace (des capteurs vers le microcontrôleur puis vers l’actionneur).
- Créer la chaine d’information et la chaine de puissance de votre système.
Croquis de l’IHM
L’objectif est de concevoir une interface Web simple, intuitive et utilisable sur smartphone afin de piloter la porte du poulailler à distance. Cette interface sera ensuite intégrée dans l’ESP32 via SPIFFS, puis un script JavaScript permettra de commander le moteur.
L’application web doit comporter deux pages, une page d’accueil présentant le contexte du projet avec une image et une page qui devra permettre au minimum :
| Action attendue | Composant IHM à prévoir |
|---|---|
| Ouvrir la porte | Bouton OUVERTURE |
| Fermer la porte | Bouton FERMETURE |
| Arrêter immédiatement le moteur | Bouton STOP |
| Ajuster la vitesse du moteur | Curseur / slider PWM |
| Indiquer l’état de la porte | Label, couleur ou icône |
- Visionner ce tutoriel en effectuant les manipulations sur Figma.
- Réaliser via Figma un croquis de votre interface avec les deux pages.
📌 Le design exact est libre, mais les fonctions doivent être présentes et lisibles.
Contraintes d’ergonomie
Votre IHM doit respecter les critères suivants :
- L’interface doit être lisible sur un téléphone.
- Les boutons principaux doivent être grands et accessibles.
- L’utilisation doit être intuitive → aucun texte technique inutile.
- Les couleurs doivent avoir un sens :
- Vert → ouverture
- Rouge → fermeture / danger
- Orange → moteur en mouvement
⚠ Important
L’IHM doit envoyer des requêtes Web au microcontrôleur (HTTP ou WebSocket).
Vous devrez donc prévoir des identifiants clairs pour chaque élément interactif.
Livrable attendu sur le diaporama
✔ Capture d’écran ou export PNG du croquis Figma
✔ Nom des boutons + description de leur action
Programmation – tests unitaires
Avant de piloter le moteur depuis une page Web, il est indispensable de vérifier que :
- le câblage carte ↔ driver ↔ moteur est correct,
- le sens de rotation correspond bien à OUVERTURE / FERMETURE,
- la variation de vitesse via PWM fonctionne.
Vous allez donc réaliser un test unitaire du moteur : un programme simple qui enchaîne automatiquement ouverture, stop, fermeture.
- Programmer le moteur
Il faut aussi vérifier que vos capteurs fonctionnent.
2. De la même manière, faire un programme permettant de vérifier sur le moniteur série le bon fonctionnement des capteurs.
Vous pouvez maintenant vérifier le fonctionnement principal de votre programme sans interface web en reliant les programmes de moteur avec ceux des capteurs.
3. Programmer le fonctionnement du système avec moteur + capteurs.
Création de l’IHM
À partir de votre croquis Figma, vous allez maintenant créer une vraie interface Web qui sera ensuite intégrée dans la carte programmable pour piloter la porte du poulailler.
L’objectif de cette partie est de réaliser :
- un fichier
index.htmlpour la structure de la page d’accueil, - un fichier
commande.htmlpour la structure de la page de commande, - un fichier
style.csspour la mise en forme.
💡 Pour l’instant, on ne s’occupe que de l’apparence (HTML/CSS), pas encore du JavaScript ni de la communication avec le moteur.
- Créer les fichiers HTML et CSS.
Programmation du serveur web
zuhvoizehvzev
Schéma de cablage
zeczefvzefgze
Programmation finale
zeczevzevze