Présentation technique v2.1
Architecture numérique
des cabines acoustiques
Trois modèles de cabine — ESP32, Raspberry Pi, Arduino — qui s'adaptent au matériel réellement installé sur le terrain, reliés par un réseau privé sécurisé.
Naviguez avec ← → ou les flèches du clavier · Made in Tunisia 🇹🇳
Vue en couches
Chaque couche ne s'exécute que si le matériel qui la porte est présent — c'est le principe « dépend du matériel installé ».
Les 3 modèles de cabine
Modèle ESP32
MCU unique = cerveau. Porte, capteurs, LED, mini web diag, MQTT.
door-esp32.ino
CabineConfig.h
WiFi PSK ou 802.1X
Modèle Raspberry Pi RECOMMANDÉ
Pi = edge brain : broker MQTT local, kiosque web, audio, caméra, télémétrie temps réel. ESP32 en actionneur.
cabin-hub (Node)
ESP32 rôle 2
WiFi 802.1X + localhost
Modèle Arduino
Arduino classique : relais porte + capteurs. Liaison Ethernet/MQTT ou pont UART vers le Pi.
door-arduino.ino
ArduinoCabineConfig.h
Ethernet privé / série
Modèle ESP32 — firmware
🔍 Détection matériel
Au démarrage : scanHardware() valide chaque GPIO, lit les capteurs analogiques, désactive les modules absents (pin = −1) et publie atlas/<cab>/material (retained).
🚨 Urgence
Danger interne → ouverture ; extérieur → fermeture ; catastrophique → ouverture partielle. Bouton GPIO 36 = danger interne automatique.
🕸 MQTT
atlas/<cab>/cmd|state|status|material · état retained · LWT online/offline · compat atlas/door/*.
💻 Mode développement
CABINE_MODE_DEV=1 : re-scan interactif, page web diag http://<esp32>/, test relais, logs. Désactivé en production.
Modèle Raspberry Pi — cabin-hub
SERVICES
- · Broker MQTT local (localhost:1883)
- · Express sert le kiosque web + REST
- · WebSocket /ws temps réel
- · Télémétrie → data/telemetry.jsonl
API
- GET /api/door/state
- POST /api/door/open · close
- POST /api/scan · GET /api/health
Installation : install.sh → service cabine-hub.service auto-boot.
Modèle Arduino — firmware
🌐 ARDUINO_LINK = 1 · Ethernet/MQTT
Shield WIZnet (W5100/W5500) sur le réseau privé câblé. Mêmes commandes, urgence et rapport matériel que l'ESP32 — sans WiFi.
🔗 ARDUINO_LINK = 2 · pont UART vers Pi
Chaque ligne reçue = commande (open, emergency:…), l'état remonté au Pi qui assure le réseau et la télémétrie.
Fonctions identiques (indépendantes de la plateforme)
porte + relock · présence · urgence (danger int./ext./catastrophique) · bouton urgence · capteurs · scan matériel au boot.
Note sécurité réseau
Pas de WiFi natif → réseau privé câblé (VLAN) ou transit par le Pi. Les commandes restent locales à la cabine.
Réseau privé cabine — WiFi 802.1X
SCHÉMA
RADIUS authentifie chaque appareil
▼ WPA2-Enterprise
SSID privé « CAB-NET-<n> »
Chaque contrôleur/accessoire = identité unique @cabin.atlas.tn → révocation possible, aucun partage de mot de passe.
Le Pi héberge le broker MQTT local : les commandes ne quittent jamais le réseau privé. Seule la télémétrie usine sort (égress minimal autorisé).
hardware/wifi/CabineWifi8021x.h · wpa_supplicant.conf
Protocoles & flux de données
Sécurité & modes
Production : données réelles, démo verrouillée, lecture seule sur les outils de test.
Pré-prod : validation des fonctions avec données de démonstration.
Boîte à outils : données fictives, reset, tests serveur local, événements temps réel.
INST-XXXXXX · actifs/révoqués en direct · Mode Technicien sur le kiosque (cabine, test porte, scan, installation terminée).
Cabines CAB-<SITE>-NN · tokens ATLAS-XXXXXX · QR « ?cab=&access= » · validés localement, tokens vérifiés par le portail.
Pile technologique
🔩 Embarqué
🍓 Edge (Pi)
🤖 Android
🌍 Web & Cloud
🇹🇳
Un système au service de la cabine
Firmware adaptatif, réseau privé protégé, urgence opérationnelle et interfaces temps réel : chaque cabine est numérique, même dans la salle la plus isolée.
© 2026 Atlas Working — Made in Tunisia · Logiciel & R&D : PixelSoftware Design