🏗️ Architecture Système Globale
🔌 Câblage Capteurs → ESP32-S3 WROOM
I²C
BME280 — Température / Humidité / Pression
| Broche BME280 | GPIO ESP32 | Couleur conseillé | Notes |
|---|---|---|---|
| VCC | 3V3 | Rouge | 3.3V max |
| GND | GND | Noir | |
| SDA | GPIO 21 | Bleu | I²C Data |
| SCL | GPIO 22 | Jaune | I²C Clock |
| SDO / CSB | GND | Noir | Adresse 0x76 |
GPIO
HC-SR04 — Niveau Réservoir (Ultrasonique)
| Broche HC-SR04 | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| VCC | 5V | Rouge | ⚠ 5V requis |
| GND | GND | Noir | |
| TRIG | GPIO 5 | Vert | Déclencheur |
| ECHO | GPIO 18 (via diviseur) | Jaune | ⚠ 5V→3.3V: R1=1kΩ, R2=2kΩ |
ADC
MQ-134 — CO₂ (ppm)
| Broche MQ-134 | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| VCC | 5V | Rouge | 5V chauffage |
| GND | GND | Noir | |
| AOUT | GPIO 34 (ADC1_CH6) | Vert | Analogique → ppm |
| DOUT | GPIO 35 (opt.) | Jaune | Seuil numérique |
ADC
Fourche Optique — Humidité Substrat
| Broche | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| VCC | 3V3 | Rouge | |
| GND | GND | Noir | |
| AOUT | GPIO 32 (ADC1_CH4) | Vert | 0-3.3V → 0-100% |
ADC
Thermistance NTC — Temp. Eau (Pont Diviseur)
| Connexion | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| 3V3 → R=10kΩ → NTC → GND | — | — | Pont diviseur |
| Point milieu (R/NTC) | GPIO 33 (ADC1_CH5) | Vert | Lecture tension |
| Formule T | T = 1 / (ln(R/10000)/B + 1/298.15) - 273.15 | ||
UART
SIM808 — GPS + GSM
| Broche SIM808 | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| VCC | 4.2V (Li-Po ou régulateur) | Rouge | ⚠ Pointe 2A |
| GND | GND | Noir | |
| TXD | GPIO 16 (RX2) | Vert | UART2 |
| RXD | GPIO 17 (TX2) | Bleu | UART2 |
| RST | GPIO 4 | Violet | Reset logiciel |
| ANT-GPS | — | Gris | Antenne externe |
RELAY
Relais 5V (Actionneurs)
| Canal Relais | GPIO ESP32 | Actionneur | Notes |
|---|---|---|---|
| IN1 | GPIO 25 | 🚿 Pompe arrosage | LOW = activé |
| IN2 | GPIO 26 | 💡 Éclairage LED | LOW = activé |
| IN3 | GPIO 27 | 🌀 Ventilation | LOW = activé |
| IN4 | GPIO 14 (opt.) | Extension | Libre |
| VCC | 5V | — | Alimenter séparé |
| GND | GND commun | — | GND partagé |
SPI
RFID RC522 — Badges Agents
| Broche RC522 | GPIO ESP32 | Couleur | Notes |
|---|---|---|---|
| 3.3V | 3V3 | Rouge | ⚠ 3.3V uniquement |
| GND | GND | Noir | |
| SDA (SS) | GPIO 5 | Bleu | Chip Select |
| SCK | GPIO 18 | Jaune | SPI Clock |
| MOSI | GPIO 23 | Vert | Master Out |
| MISO | GPIO 19 | Violet | Master In |
| RST | GPIO 2 | Blanc | Reset |
⚡ Schéma Alimentation (PV + Batterie)
🔗 Architecture & Liaisons entre les Pages
Connexion
login.html
Auth mot de passe ou RFID badge
Dashboard
index.html
Vue temps réel, KPIs, alertes
Contrôle
controle.html
Actionneurs, pompe, éclairage
Graphiques
graphiques.html
Courbes historiques capteurs
Alertes
alertes.html
Seuils, acquittements, logs
Capteurs
capteurs.html
Appareils, statuts, derniers relevés
Agents
agents.html
Fiches agents, rapports, RFID
Badges
badges.html
Génération PDF + QR + RFID
Admin ⚠
admin.html
Serres, fournisseurs, paiements
Paramètres
parametres.html
Seuils, config système, API
↔ Flux de Navigation (Liens inter-pages)
🏠 Depuis le Dashboard (index.html)
KPI Alerte→alertes.html
Actionneur toggle→controle.html
Appareil dans liste→capteurs.html
Sparkline courbe→graphiques.html
+ Ajouter serre (admin)→admin.html
📊 Graphiques & Alertes
Sélection serre→graphiques.html#serre
Alerte active→controle.html
Détail alerte→capteurs.html
Purge historique (admin)→admin.html
Export CSV→téléchargement
👤 Agents & Badges
Fiche agent→badges.html
Rapport maintenance→agents.html#rapports
Assign RFID badge→badges.html#rfid
Créer agent (admin)→admin.html
Voir commandes (admin)→admin.html#commandes
🔧 Contrôle & Capteurs
Commande actuateur→API: POST /cmd
Planification→parametres.html
Capteur anomalie→alertes.html
Voir historique capteur→graphiques.html
Config seuil→parametres.html
🛒 Admin & Fournisseurs
Nouveau fournisseur→admin.html#fournisseurs
Paiement Mobile Money→admin.html#paiements
Ajouter serre→admin.html#serres
Rapport commandes→admin.html#rapports-cmd
Retour dashboard→index.html
🔐 Auth & Sécurité
Login réussi→index.html
RFID scan login→index.html
Session expirée→login.html
Déconnexion→logout.html → login.html
Accès admin refusé→index.html + alerte
🪪 Flux Intégration RFID — Badges Agents
1
Créer Agent
agents.html : saisir nom, rôle, photo, téléphone
→
2
Générer Badge
badges.html : badge 54×85mm avec QR code + zone RFID
→
3
Scanner Carte
RC522 SPI → ESP32 ou USB → PC lit UID RFID
→
4
Associer UID
badges.html#rfid : saisir/coller UID → BDD agents.rfid_uid
→
5
Auth RFID
login.html : approcher badge → UID vérifié → session JWT
→
6
Log Accès
logs_acces → BDD, visible dans admin.html#logs
🌐 Endpoints API REST (ESP32 ↔ Serveur)
| Méthode | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /api/releves | ESP32 → envoi relevé capteurs (JSON) | Token ESP32 |
| GET | /api/commandes/{esp32_id} | ESP32 → récupère commandes en attente | Token ESP32 |
| PATCH | /api/commandes/{id}/statut | ESP32 → confirme exécution commande | Token ESP32 |
| GET | /api/serres | Web → liste des serres | JWT |
| GET | /api/serres/{id}/releves | Web → historique capteurs serre | JWT |
| POST | /api/commandes | Web → envoyer commande actionneur | JWT (can_control) |
| POST | /api/auth/login | Web → authentification (pwd ou RFID UID) | — |
| GET | /api/alertes | Web → liste alertes actives | JWT |
| PATCH | /api/alertes/{id}/acquitter | Web → acquitter une alerte | JWT |
| POST | /api/agents | Web → créer agent | JWT Admin |
| PUT | /api/agents/{id}/rfid | Web → associer UID RFID à un agent | JWT Admin |
| DELETE | /api/historique/{serre_id} | Web → purger historique (admin uniquement) | JWT Admin |
| POST | /api/paiements | Web → initier paiement Mobile Money | JWT Admin |
| GET | /api/ws/live | WebSocket → données temps réel toutes serres | JWT (ws://) |
Genesys — Congo Brazzaville · Ce guide est généré automatiquement. Pour imprimer, utiliser le bouton en haut à droite. Toutes les connexions 5V→3.3V requièrent un pont diviseur de tension. Ne jamais connecter directement 5V sur les GPIO ESP32-S3.