4.5 KiB
4.5 KiB
Présentation des divers services liés à BrainBlast.
📟 Gestionnaire de Buzzer pour BrainBlast (Buzzer-Manager.js
)
Ce script Node.js gère les buzzers du jeu BrainBlast en utilisant MQTT pour la communication entre les buzzers et les autres composants du système.
🚀 Fonctionnalités Principales
- Connexion au Broker MQTT : Se connecte à un broker MQTT (
mqtt://localhost
par défaut) pour envoyer et recevoir des messages. - Gestion des Buzzers :
- Blocage/Déblocage : Bloque les buzzers lorsqu'un est activé pour empêcher les autres de répondre, et les débloque sur demande.
- Mode Tilt : Permet d'ignorer certains buzzers en les ajoutant au mode "tilt".
- Validation des Données : Vérifie que les informations reçues des buzzers sont valides (ID du buzzer, couleur, etc.).
- Intégration Lumineuse : Contrôle les effets lumineux en fonction des actions des buzzers via le gestionnaire de lumières.
🛠️ Configuration et Utilisation
- Installation des Dépendances :
npm install mqtt
-
Configuration :
- Modifier l'URL du broker MQTT et le client ID si nécessaire dans le script :
// Configuration du broker MQTT
const brokerUrl = 'mqtt://votre-broker';
const clientId = 'buzzer_manager';
- Lancement du Script :
node buzzer-manager.js
📡 Sujets MQTT Utilisés
- Souscriptions :
brainblast/buzzer/pressed/#
: Détecte lorsqu'un buzzer est pressé.brainblast/buzzer/unlock
: Gère les demandes de déblocage des buzzers.brainblast/buzzer/tilt
: Gère l'ajout ou le retrait des buzzers en mode tilt.
- Publications :
brainblast/buzzer/confirmation/{buzzer_id}
: Confirme la réception des actions des buzzers.brainblast/buzzer/status
: Informe sur l'état actuel des buzzers (bloqués, débloqués, tilt).brainblast/light/change
: Demande des changements d'effets lumineux au gestionnaire de lumières.
🖥️ Moniteur de Statut des Buzzers pour BrainBlast (BuzzerWatcher.js
)
Ce script Node.js surveille l'état des buzzers du jeu BrainBlast en les pingant régulièrement et en publiant leur statut (en ligne/hors ligne) sur un broker MQTT.
🚀 Fonctionnalités Principales
- Surveillance des Buzzers : Pinge chaque buzzer à intervalles réguliers pour vérifier s'il est en ligne.
- Publication MQTT : Envoie le statut (
online
ouoffline
) de chaque buzzer sur un topic MQTT spécifié, permettant aux autres composants du système de réagir en conséquence. - Configuration Flexible : Charge dynamiquement les adresses IP des buzzers et les paramètres MQTT depuis un fichier
config.json
.
🛠️ Installation et Configuration
Prérequis
- Node.js installé sur votre machine.
- Modules NPM requis :
ping
etmqtt
.
Installation des Dépendances
npm install ping mqtt
Configuration
- Fichier de Configuration : Créez un fichier
config.json
dans le répertoire\services\config\
avec le contenu suivant :
{
"hosts": {
"buzzers": {
"IP": {
"buzzer1": "192.168.1.10",
"buzzer2": "192.168.1.11"
},
"MQTTconfig": {
"mqttHost": "mqtt://localhost",
"mqttTopic": "brainblast/buzzers/status"
}
}
}
}
- Adresses IP des Buzzers : Remplacez par les adresses IP de vos buzzers.
- Configuration MQTT :
mqttHost
: L'adresse de votre broker MQTT.mqttTopic
: Le topic sur lequel publier le statut des buzzers.
- Chemin du Fichier de Configuration : Assurez-vous que le chemin vers
config.json
dans le script est correct :
const config = JSON.parse(fs.readFileSync('\\services\\config\\config.json', 'utf8'));
▶️ Utilisation
- Lancement du Script :
node BuzzerWatcher.js
Le script va :
- Se connecter au broker MQTT spécifié.
- Pinger chaque buzzer toutes les 3 secondes.
- Publier le statut de chaque buzzer sur le topic MQTT configuré.
📡 Topic MQTT Utilisés
- Publication :
- Topic :
brainblast/buzzers
- Payload Exemple :
- Topic :
{
"buzzer": "buzzer1",
"ip": "192.168.1.10",
"status": "online"
}
💡 Notes
- Personnalisation de l'Intervalle : Vous pouvez modifier l'intervalle de ping en changeant la valeur dans
setInterval(pingAndPublish, 3000);
(valeur en millisecondes). - Extensibilité : Pour ajouter plus de buzzers, il suffit d'ajouter leurs adresses IP dans le fichier
config.json
.