Challenge IA – Projet IAssistant
IAssistant – Maison connectée & IA vocale
Assistant vocal domotique contrôlé par la voix, capable de piloter des équipements connectés (lumières, ventilateur, serrure) via un Raspberry Pi et le protocole MQTT.
Informations du projet
Période
10 – 17 janvier 2025 (1 semaine)
Cadre
Challenge IA inter-classes – Lycée Saint Michel, Annecy
Équipe
4 personnes : 2 élèves CIEL2 + 1 SIO1 (Thomas) + 1 SIO2 (Nathan)
Mon rôle
Mise en place du serveur MQTT & aide à la construction de la maquette
Résultat
🥉 3ᵉ place au classement du Challenge IA
Contexte & objectif
Dans le cadre du Challenge IA organisé du 10 au 17 janvier 2025, notre groupe de 4 élèves issus de deux filières différentes (CIEL2 pour la partie physique/électronique, SIO pour la partie réseau/logicielle) a travaillé sur le projet IAssistant.
L'idée est partie d'un double constat : d'un côté, la domotique et les assistants vocaux (Google Home, Alexa…) sont devenus incontournables dans notre quotidien ; de l'autre, l'essor des modèles d'intelligence artificielle comme ChatGPT ouvre de nouvelles possibilités pour des interactions plus naturelles.
Notre objectif était de concevoir un assistant vocal intelligent capable de contrôler des appareils domotiques réels (lumières, ventilateur, serrure de porte) simplement par la voix. Le tout reposait sur une maquette physique à l'échelle 1:1 construite à la main, combinée à un système logiciel complet tournant sur Raspberry Pi.
Ce que nous avons construit
Le projet IAssistant combinait une partie physique, une partie logicielle et une partie réseau – chacun avec son domaine.
La maquette physique – 1m × 1,25m × 2m
À quatre, nous avons construit une maquette de maison à l'échelle 1:1 en carton renforcé. Naoufel a conçu les patrons de découpe et supervisé la structure. Thomas et Nathan ont fabriqué les équerres pour lier les plaques entre elles. La maquette intègre une porte fonctionnelle avec charnières et serrure électrique.
- Plaques de carton multicouches collées à chaud pour la solidité
- Équerres fabriquées à la main pour assembler les 4 murs
- Porte avec charnières pivot et trou pour le verrou de serrure
- Dimensions : 1m de long × 1,25m de large × 2m de haut
L'électronique & l'alimentation
Naoufel a conçu et monté le schéma électrique permettant à la Raspberry Pi de contrôler des circuits à des tensions différentes (5V continu pour la carte, 18V continu pour la serrure, 230V alternatif pour le ventilateur) grâce à des modules relais qui jouent le rôle d'interrupteurs commandables.
- Raspberry Pi 4 comme cerveau central du système
- Modules relais pour contrôler les circuits externes en sécurité
- Ventilateur récupéré et modifié (soudure, perçage, câblage 230V)
- Capteurs de température, luminosité et qualité d'air (CO2)
- Microphone à réduction de bruit + enceinte Bluetooth
Mon rôle – Serveur MQTT & communication réseau
Ma mission principale a été de mettre en place le serveur MQTT sur le Raspberry Pi, qui est le protocole de messagerie utilisé pour faire communiquer tous les composants entre eux. C'est lui qui transmet les commandes de l'assistant vocal vers les actionneurs physiques.
- Installation de l'OS Raspberry Pi sur carte SD
- Déploiement de Mosquitto (serveur MQTT) via ligne de commande
- Configuration des services nécessaires : Apache2, PHP, MariaDB, PHPMyAdmin
- Configuration du fichier MQTT pour permettre les connexions externes
- Tests de fonctionnement avec MQTT Explorer (publish/subscribe)
- Aide à la fabrication de la maquette (équerres, assemblage)
L'assistant IA – Ollama / Mistral (André)
André a développé le cerveau logiciel de l'assistant. L'IA tourne localement sur la machine grâce à Ollama avec le modèle Mistral, ce qui signifie qu'aucune connexion cloud n'est nécessaire pour répondre aux questions de l'utilisateur.
- Assistant.py : orchestre l'ensemble (MQTT + voix + IA)
- Algorithme.py : analyse la commande vocale et détermine l'action
- IA.py : interroge Ollama/Mistral pour les questions ouvertes
- Voice.py : reconnaissance vocale (mot-clé "assistant") + synthèse vocale
- Gestion de projet via Trello et diagramme de Gantt
Architecture technique
Comment les différentes briques du projet s'articulent entre elles.
Capture vocale
Le microphone capte la voix de l'utilisateur. Voice.py écoute en permanence le mot-clé "assistant" pour déclencher l'interaction.
Transcription & analyse
L'audio est transcrit en texte via Google Speech API. Algorithme.py analyse la phrase pour détecter s'il s'agit d'une commande ("Allume le ventilateur") ou d'une question.
Intelligence artificielle locale
Si c'est une question, Ollama/Mistral génère une réponse en français directement en local, sans passer par Internet.
Publication MQTT
Si c'est une commande, l'assistant publie un message sur le broker MQTT. Exemple : publier "on" sur le topic IAssistant/Ventilo pour allumer le ventilateur.
Actionneurs physiques
La Raspberry Pi reçoit le message et déclenche le relais correspondant : la serrure s'ouvre, le ventilateur démarre ou s'arrête, les lumières s'allument.
Réponse vocale
L'assistant confirme l'action à l'utilisateur via synthèse vocale (pyttsx3 / gTTS) diffusée sur l'enceinte Bluetooth.
L'équipe
Un groupe inter-filières : chacun apportait une expertise différente.
Thomas Olomo Ngaba
Mise en place du serveur MQTT (Mosquitto) sur Raspberry Pi, configuration réseau, aide à la construction de la maquette.
Nathan Boucher
Configuration switch/routeur/AP, création des deux réseaux privés, développement de l'interface web de contrôle (HTML/CSS + API MQTT).
André Suzuki
Développement du logiciel principal (Python), intégration d'Ollama/Mistral pour l'IA locale, gestion de projet (Trello, Gantt).
Naoufel Amiar
Conception et fabrication de la maquette, schéma électrique, montage des relais et du ventilateur, câblage 230V/18V/5V.
Compétences BTS SIO mobilisées
Ce projet transversal couvre plusieurs compétences du référentiel BTS SIO SISR.
Travailler en mode projet – Organisation en méthode Agile, répartition des tâches selon les compétences de chacun, suivi via Trello et diagramme de Gantt sur une semaine intense.
Mettre à disposition un service informatique – Déploiement complet d'un serveur MQTT sur Raspberry Pi, configuration des services (Apache2, PHP, MariaDB, Mosquitto) et mise en service.
Gérer le patrimoine informatique – Configuration d'un réseau dédié pour le projet IoT (switch, routeur, AP), sécurisation des accès réseau.
Développement professionnel – Collaboration inter-filières, découverte de technologies IoT et IA non abordées en cours (MQTT, Ollama, Raspberry Pi), adaptation rapide en conditions de challenge.
Ce que j'ai appris
- Installer et configurer un serveur MQTT (Mosquitto) de A à Z
- Comprendre le protocole MQTT et les échanges publish/subscribe
- Utiliser le Raspberry Pi comme serveur Linux embarqué
- Travailler en équipe inter-filières avec des compétences complémentaires
- Découvrir l'écosystème IoT et la domotique connectée
- Voir comment une IA locale (Ollama/Mistral) peut s'intégrer dans un projet physique
- Appliquer la méthode Agile dans un projet réel sous contrainte de temps
- Finir 3ᵉ sur l'ensemble des équipes – une vraie fierté collective