C'est l'hiver ! Hiver.gif

ENIB 2026 : James Box 007

De Les Fabriques du Ponant
Révision datée du 22 janvier 2026 à 15:56 par Thibault Ma (discussion | contributions) (outil et matériel)
Aller à : navigation, rechercher

Titre de la fiche expérience :

description (résumé)

Voici une photo de notre groupe avec Wilhem, Elouan et Thibault

JamesBox Team.JPG


Première conceptualisation de notre projet :

Plan JamesBox.jpg

Introduction

James Bond veut dérober nos recherches. Pour protéger notre travail, nous devons concevoir une alarme qui nous avertira de sa venue. Nous avons décidé de la fabriquer nous-mêmes en utilisant un détecteur de présence couplé à une alarme sonore, ce qui nous permettra à coup sûr de le coincer.

outil et matériel

Trois Led de signalement :

JamesBox LED.JPG

Un bouton poussoir :

JamesBox Bouton.JPG

Un sonar/détecteur de mouvement :

JamesBox Sonar.JPG

Deux cartes ESP32 :

JamesBox Esp32.JPG

Un haut parleur :

JamesBox HautParleur.JPG

fichiers à joindre

Fichier:James Box 007.pdf

Mettre du code Arduino

Code test haut parleur :

 1  
 2 #define pinDeSortieArduino 32 
 3 #define frequenceDeDebut 700 // Fréquence "basse" de la sirène
 4 #define frequenceDeFin 2700 // Fréquence "haute" de la sirène
 5 
 6 void setup()
 7 {
 8  pinMode(pinDeSortieArduino, OUTPUT);
 9 } 
10 
11 void loop()
12 {
13  // Phase de "montée" sirène
14  for (int i = frequenceDeDebut; i < frequenceDeFin; i=i+3) {
15  tone(pinDeSortieArduino, i); 
16  delay(1); 
17  }
18 
19  // Phase de "descente" sirène
20  for (int i = frequenceDeFin; i > frequenceDeDebut; i=i-3) {
21  tone(pinDeSortieArduino, i); 
22  delay(1); 
23  }
24 }

Code test servo moteur :

 1 #include <ESP32Servo.h>
 2 #define PIN_SG90 22 // Broche de sortie utilisée
 3 
 4 Servo sg90;
 5 
 6 void setup() {
 7   sg90.setPeriodHertz(50); // Fréquence PWM pour le SG90
 8   sg90.attach(PIN_SG90, 500, 2400); // Largeur minimale et maximale de l'impulsion (en µs) pour aller de 0° à 180°
 9 }
10 
11 void loop() {
12  // Rotation de 0 à 180°
13   for (int pos = 0; pos <= 180; pos += 1) {
14     sg90.write(pos);
15     delay(10);
16   }
17  // Rotation de 180° à 0°
18   for (int pos = 180; pos >= 0; pos -= 1) {
19     sg90.write(pos);
20     delay(10);
21   }
22 }

étapes de fabrication

étape 1

Réflexion et conceptualisation du projet. Après une phase de réflexion, nous avons finalisé le schéma du boîtier. Celui-ci intègre le détecteur d'une part, et les interfaces de sortie (LEDs et haut-parleur) d'autre part. Ce dispositif nous permettra d'être alertés à distance de l'intrusion de James Bond dans la pièce.

Plan JamesBox.jpg

étape 2

Phase de test du matériel et des interactions. Pour commencer, nous avons récupéré des codes de base sur Internet afin de valider le fonctionnement individuel de chaque composant. Nous les avons ensuite adaptés pour qu'ils correspondent à nos besoins spécifiques. Cette approche nous fournit une base solide pour chaque module, ce qui facilitera grandement l'écriture du programme final.

JamesBox test3.JPG Elouan Code.JPG Wilhem Teste.JPG

étape 3

Documentation continue sur le Wiki. Nous rédigeons le wiki au fur et à mesure de l'avancement du projet. Nous prenons soin de photographier chaque étape afin d'illustrer nos propos et d'en faciliter la compréhension. Cette rédaction en temps réel nous assure de ne rien omettre, notamment concernant les difficultés rencontrées.

Thibault Rédige.JPG

étape 4

Câblage et construction de la box. Nous avons procédé à la découpe et au dimensionnement du boîtier pour disposer d'un support de test. Actuellement, seule la partie dédiée au détecteur est assemblée. Nous fixerons les éléments restants (LEDs et haut-parleur) uniquement lorsque le programme sera totalement validé.

JamesBox câble3.JPG JamesBox Câbe1.JPG JamesBox PartieBF.JPG

étape 5

Intégration et programmation finale. Nous programmons l'ensemble des composants pour assurer la communication à distance entre le détecteur et le boîtier de réception. En parallèle, nous ajustons l'agencement des éléments à l'intérieur du boîtier afin de respecter les contraintes dimensionnelles définies précédemment.

JamesBox CablageFinal.JPG JamesBox CodageFinal.JPG JamesBox Partied.JPG JamesBox câble4.JPG

Troubleshouting

Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?

Nous avons rencontré deux problèmes majeurs qui nous ont demandé beaucoup de temps.

Le premier concernait le haut-parleur. Impossible de le faire fonctionner, malgré le remplacement du matériel et la modification du code. Nous avons finalement identifié l'origine du problème : une soudure défectueuse. Une fois celle-ci refaite, le système a fonctionné immédiatement.

Le second obstacle concernait la connexion Wi-Fi entre les deux cartes, qui s'est révélée plus complexe que prévu. Nous avons eu des difficultés à appréhender le code nécessaire et, lors de nos essais, nous avons malheureusement endommagé quelques composants. De plus, il a fallu réaliser un programme spécifique pour récupérer l'adresse de chaque carte, étape indispensable pour établir la connexion.

Sources et documentation complémentaire

  • Rédаctiоn et illustratiоn :

Les photos ont été réalisé pas notre secrétaire Thibault donc elles sont libre de droit.

  • Transpаrence et dосumеntatiоn :

Nous avons consulté plusieurs ressources en ligne pour maîtriser les schémas de câblage. Cette démarche nous a permis d'obtenir des exemples de code pour valider le fonctionnement de chaque composant et d'en comprendre la logique de programmation.

Pour le sonar : https://randomnerdtutorials.com/esp32-hc-sr04-ultrasonic-arduino/

Pour le moteur : https://www.upesy.fr/blogs/tutorials/esp32-servo-motor-with-arduino-code-sg90?srsltid=AfmBOopU3CgdZ1zXnTinbgdxA_x03GatGw9WdU6eaWhY8GE8jk9kVVXG#

  • Traçabilité :

Nous avons entièrement écrit le programme de la box finale ainsi que ceux destinés aux tests du haut-parleur et des LEDs. Toutefois, concernant le capteur à ultrasons (sonar) et le moteur, nous nous sommes appuyés sur les codes sources disponibles sur les sites mentionnés précédemment.

Elément de présentation

ne pas modifier sous cette ligne