Ce projet met en œuvre un système de contrôle pour les 8 projecteurs du stade Olympique Miloud Hadfi à Oran, basé sur un microcontrôleur ESP32. Le système offre une interface de contrôle locale via un clavier et un écran LCD, ainsi qu'une interface web moderne pour le contrôle à distance.
- Contrôle Local : Interface sécurisée par code via un clavier matriciel 4x4 et un écran LCD 1602.
- Contrôle Web : Interface web responsive avec authentification pour le contrôle et la supervision à distance.
- Persistance : L'état des projecteurs est sauvegardé en mémoire non-volatile pour être restauré après une coupure de courant.
- Architecture Robuste : Utilise le RTOS (FreeRTOS) pour une gestion multitâche fiable, séparant les tâches critiques (contrôle des relais) des tâches d'interface.
- Supervision en Temps Réel : Un système de journalisation (logs) enregistre tous les événements importants et les affiche sur l'interface web.
- Microcontrôleur : ESP32 DevKit (32 pins)
- Clavier : Clavier matriciel 4x4
- Afficheur : Écran LCD 1602 avec interface I²C (adresse par défaut : 0x27)
- Module Relais : Module 8 relais
- Câblage et Alimentation
Voici les connexions recommandées. Assurez-vous d'adapter les broches si nécessaire dans le code (main.cpp).
| Périphérique | Broche ESP32 | Description |
|---|---|---|
| Relais 1-8 | 13, 12, 14, 27, 26, 25, 33, 32 | Sorties pour les relais |
| LCD I²C (SDA) | 21 | Ligne de données I²C |
| LCD I²C (SCL) | 22 | Ligne d'horloge I²C |
| Clavier Ligne 1-4 | 19, 18, 5, 17 | Broches des lignes du clavier |
| Clavier Col 1-4 | 16, 4, 0, 2 | Broches des colonnes du clavier |
Assurez-vous que l'ESP32 et le module relais partagent une masse (GND) commune.
- Visual Studio Code
- Extension PlatformIO IDE
-
Clonez le projet :
git clone <URL_DU_PROJET> cd <NOM_DU_DOSSIER>
-
Ouvrez le projet dans VS Code avec PlatformIO. L'IDE devrait automatiquement détecter le projet et vous proposer d'installer les dépendances listées dans
platformio.ini. -
Configurez vos identifiants Wi-Fi : Ouvrez le fichier
src/main.cppet modifiez les lignes suivantes avec vos informations :const char* ssid = "VOTRE_SSID"; const char* password = "VOTRE_MOT_DE_PASSE";
-
Personnalisez le mot de passe web (optionnel) : Dans le même fichier, vous pouvez changer le mot de passe de l'interface web :
const char* WEB_PASSWORD = "nouveau_mot_de_passe";
-
Compilez et Téléversez le Firmware :
- Connectez votre ESP32 à votre ordinateur.
- Dans la barre d'outils de PlatformIO (en bas de VS Code), cliquez sur la flèche (→) pour compiler et téléverser le projet sur l'ESP32.
-
Téléversez l'Interface Web (SPIFFS) :
- Une fois le firmware téléversé, vous devez transférer les fichiers de l'interface web (
index.html,style.css,script.js). - Dans la barre de tâches de PlatformIO, allez dans
PlatformIO > Project Tasks > esp32dev > Platformet cliquez surBuild Filesystem Image. - Ensuite, cliquez sur
Upload Filesystem Image.
- Une fois le firmware téléversé, vous devez transférer les fichiers de l'interface web (
- À l'écran de veille, appuyez sur la touche
D. - L'écran vous demandera un code. Entrez le code
2985. - Une fois la session ouverte, vous pouvez utiliser les commandes suivantes :
A+1-8: Allumer le projecteur correspondant.A+0: Allumer tous les projecteurs.C+1-8: Éteindre le projecteur correspondant.C+0: Éteindre tous les projecteurs.00: Fermer la session.
- La session se ferme automatiquement après 15 secondes d'inactivité.
- Après le démarrage de l'ESP32, ouvrez le moniteur série de PlatformIO pour voir l'adresse IP attribuée à l'appareil.
- Ouvrez un navigateur web et entrez cette adresse IP.
- Entrez le mot de passe web (par défaut :
admin). - Vous pouvez maintenant contrôler les projecteurs via les boutons et consulter les journaux en temps réel dans l'onglet "Logs".