Skip to main content

BLOWBOX

Documentation du Projet : Boîte Éthylotest Connectée


1. Introduction

Lors de nos soirées entre amis, nous avons souvent constaté l'importance cruciale de la sécurité routière, surtout lorsque l'alcool est de la partie. Pour prévenir les risques liés à la conduite en état d'ivresse, nous avons décidé de concevoir ensemble une boîte éthylotest connectée. Cette boîte conserve les clés de voiture des invités et ne s'ouvre que si le taux d'alcoolémie du conducteur est inférieur au seuil légal, garantissant ainsi la sécurité de tous.


2. Conception et Optimisationoptimisation de la Boîboîte


2.1. Première Versionversion de la Boîboîte

Au début de notre projet, nous avons conçu une première version de la boîte en plexiglas. Cependant, dès les premiers essais, nous avons constaté que ce système était trop fragile. Les chevilles avaient tendance à se casser facilement et l'emboîtement de la boîte insuffisamment solide. Cette version ne répondait donc pas à nos critères en termes de stabilité et de durabilité, ce qui nous a poussé à chercher des améliorations.

Image 1 : Première version de la boîte avec système de chevilles initial

image.png




2.2. RĂ©alisation dud'un Burnburn Testtest

Pour améliorer l'ajustement et la solidité des emboîtements de la boîte, nous avons décidé de réaliser un burn test. Ce test a pour objectif d'évaluer les paramètres optimaux de brûlage lors de la découpe laser, afin de compenser la largeur du faisceau et d'obtenir des joints plus précis et robustes.

  • Processus du Burnburn Testtest :
    • Nous avons testĂ© diffĂ©rentes valeurs de burn, de 0,10 mm Ă  0,17 mm, en rĂ©alisant des dĂ©coupes sur des Ă©chantillons en plexiglas de 3 mm d'Ă©paisseur.
  • RĂ©sultats :
    • Les tests ont montrĂ© que les valeurs de 0,12 mm et 0,13 mm donnaient des rĂ©sultats acceptables en termes d'ajustement.
  • DĂ©cision :
    • Après comparaison, nous avons retenu la valeur de 0,13 mm pour les dĂ©coupes suivantes, car elle offrait le meilleur compromis entre ajustement prĂ©cis et facilitĂ© d'assemblage.

Image 2 : Fichier des différentes valeurs de burn

image.png

image.png



2.3. Modèle avec un meilleur système de chevilles

Fort de nos résultats du burn test, nous avons réalisé un nouveau modèle de boîte avec des chevilles plus solides. Pour augmenter leur robustesse, plusieurs modifications ont été apportées :

  • Chevilles renforcĂ©es :
    • Le style de boĂ®te choisi a des chevilles plus rĂ©sistantes. Nous avons tout de mĂŞme du les dĂ©couper sĂ©parĂ©ment avec un burn plus faible de 0,1 mm, car lors du montage il y avait trop de rĂ©sistance et elles avaient tendence Ă  casser.
  • Ajout d’une barre en mĂ©tal :
    • Pour garantir une meilleure stabilitĂ© de la structure, nous avons ajoutĂ© une barre en mĂ©tal qui renforce l'emboĂ®tement des chevilles et assure une fixation plus solide entre les diffĂ©rentes parties de la boĂ®te.
  • Utilisation d’une boĂ®te transparente :
    • Nous avons optĂ© pour une boĂ®te transparente lors de cette Ă©tape. Cela nous a permis de relever prĂ©cisĂ©ment les cotes nĂ©cessaires pour conceptualiser la version finale et d'ajuster les dimensions internes en fonction des composants Ă©lectroniques et des clĂ©s.

Image 3 : Paramètre du nouveau design de boîte

image.png



2.4. Prototype avec double fond

Avec une meilleure stabilité obtenue grâce aux chevilles renforcées, nous avons développé une deuxième version de la boîte, intégrant uniquement l'intérieur. Cette version avait pour objectif de tester un système de double fond, cela permet de séparer les clefs de l'utilisateur de la partie électronique de la boîte. Ici aussi la boîte transparente a permit de relever les cotes des différents câbles et composants pour organiser au mieux l'espace intérieur de la boîte. Le système de double fond est principalement basé sur une plaque équivalente à un fond qui rentre dans des encoches placées au milieu des différents cotés de la boîte.

  • RĂ©sultat :
    • Nous avons rencontrĂ© des difficultĂ©s pour concilier dans une mĂŞme boĂ®te les clĂ©s, qui doivent rester facilement accessibles, et l’électronique, qui nĂ©cessite un espace spĂ©cifique plus grand en dessous. La taille limitĂ©e de la boĂ®te rendait l'organisation interne complexe et peu pratique.

Image 4 : Prototype avec double fond en test

image.png



2.5. Troisième version : Boîte modulaire

Pour surmonter les limitations rencontrées avec le double fond, nous avons adopté une approche modulaire en concevant une troisième version de la boîte. Cette nouvelle conception se décompose en deux compartiments superposés, chacun dédié à une fonction spécifique.

  • Deux compartiments superposĂ©s :
    • BoĂ®te supĂ©rieure :
      • Contient uniquement les clĂ©s des invitĂ©s et le système d'ouverture/fermeture.
      • ÉquipĂ©e d’un couvercle permettant le système de verrouillage mĂ©canique.
    • BoĂ®te infĂ©rieure :
      • Plus grande, elle accueille toute l’électronique, incluant l'Arduino, l'Ă©cran OLED et le capteur d'alcoolĂ©mie.
      • Dispose de quelques trous pour faire passer les branchements nĂ©cessaires, assurant ainsi une organisation interne optimale.
  • Fixation des compartiments :
    • Les deux boĂ®tes, fabriquĂ©es en plexiglas de 3 mm d'Ă©paisseur, s’emboĂ®tent sur une plaque de 6 mm. Cette plaque assure une fixation solide et stable des deux parties de la boĂ®te.
  • Conclusion de la boĂ®te modulaire :
    • Nous avons abouti Ă  une boĂ®te en deux parties distinctes :
      • Partie infĂ©rieure : DĂ©dicacĂ©e Ă  l’électronique, Ă©quipĂ©e d’un Ă©cran pour faciliter l’utilisation et la lecture des donnĂ©es.
      • Partie supĂ©rieure : Conçue pour contenir les clĂ©s ainsi que le système d’ouverture et de fermeture mĂ©canique.

Image 5 : Conception modulaire de la boîte avec compartiments superposés boîte du bas

image.png

Image 6 : Conception modulaire de la boîte avec compartiments superposés boîte du haut

image.png

Défis Rencontrés :

    • Système de boĂ®te inĂ©dit :
      • Il a fallu dĂ©velopper un système qui n’existait pas auparavant, impliquant la modĂ©lisation de pièces aux dimensions spĂ©cifiques pour garantir un bon ajustement:
    • Problème des chevilles :
      • Les chevilles avaient tendance Ă  se casser facilement, nous obligeant Ă  en dĂ©couper davantage pour obtenir les dix chevilles fonctionnelles nĂ©cessaires.
      • Cela a mis en Ă©vidence l'importance d'utiliser un burn adaptĂ© lors de la dĂ©coupe de petites pièces fragiles.
    • Système de plaque de 6 mm :
      • Bien que ce système garantisse une bonne fixation des deux parties de la boĂ®te, des ajustements ont Ă©tĂ© nĂ©cessaires en raison de petits dĂ©calages, notamment au niveau des cotes, lors de l'installation du couvercle de la boĂ®te infĂ©rieure.
      • Ces ajustements Ă©taient essentiels pour assurer le bon fonctionnement du mĂ©canisme de verrouillage et l’esthĂ©tique gĂ©nĂ©rale de la boĂ®te.



Cette approche modulaire nous a permis de concilier les besoins d'espace pour l'électronique et d'accessibilité pour les clés. En séparant clairement les fonctions entre les deux compartiments, nous avons pu optimiser l'organisation interne tout en maintenant une structure robuste. Cette expérience nous a également appris l'importance des itérations et des tests pour résoudre les problèmes de conception et améliorer la fonctionnalité de notre boîte éthylotest connectée.


3. Système de Verrouillage

3.1. MĂ©canisme de Fermeture Initial

Au début, nous avions envisagé d'utiliser le système de cheville pour le verrouillage, mais il s'est avéré peu pratique et peu fiable pour notre utilisation.

3.2. Solution de Verrouillage Automatique
3.2.1. Système de Crochet Mécanique

Nous avons conçu un système de verrouillage mécanique simple et ingénieux.

  • Description du Système :

    • Une boucle en fil de fer est fixĂ©e au couvercle de la boĂ®te supĂ©rieure.
    • Un crochet en forme de V est attachĂ© Ă  l'intĂ©rieur de la boĂ®te infĂ©rieure.
  • Fonctionnement :

    • Lors de la fermeture du couvercle, la boucle glisse le long du flanc du crochet en V et se verrouille mĂ©caniquement sans intervention supplĂ©mentaire.
    • Pour dĂ©verrouiller, le servomoteur est activĂ© (après une mesure d'alcoolĂ©mie satisfaisante) et pivote pour libĂ©rer la boucle, permettant ainsi l'ouverture du couvercle.
    • Ce système permet un verrouillage automatique lorsque le couvercle est fermĂ© et un dĂ©verrouillage contrĂ´lĂ©, tout en Ă©tant simple Ă  rĂ©aliser.

(Nous avons inséré un schéma du système de crochet mécanique)


4. Intégration Électronique

4.1. Composants Utilisés

Pour la partie électronique, nous avons utilisé :

  • MicrocontrĂ´leur : Arduino Uno
  • Capteur d'AlcoolĂ©mie : MQ-3
  • Actionneur : Servomoteur FS90MG pour le mĂ©canisme de verrouillage
  • Bouton Poussoir : Pour initier la mesure
  • Affichage : Écran OLED 128x64 pixels pour afficher les messages Ă  l'utilisateur

(Nous avons inséré une photo des composants électroniques)

4.2. Schéma de Connexion

Les connexions entre les différents composants et l'Arduino sont les suivantes :

  • Capteur MQ-3 : ConnectĂ© Ă  l'entrĂ©e analogique A0
  • Servomoteur : ConnectĂ© Ă  la broche numĂ©rique 9 (PWM)
  • Bouton Poussoir : ConnectĂ© Ă  la broche numĂ©rique 2, avec une rĂ©sistance de pull-up interne
  • Écran OLED : ConnectĂ© via le bus I2C (SDA et SCL)

WhatsApp Image 2024-12-03 at 12.56.17.jpeg

(Nous avons inséré le schéma de connexion détaillé)

4.3. Programmation et Logiciel
4.3.1. Description du Code

Le code Arduino gère les fonctionnalités suivantes :

  • Attente de l'appui sur le bouton pour initier la mesure.
  • Calibration du capteur en mesurant l'air ambiant.
  • Demande Ă  l'utilisateur de souffler dans le capteur.
  • Mesure après soufflage et calcul du ratio avec la valeur de calibration.
  • DĂ©cision d'ouvrir ou non la boĂ®te en fonction du ratio obtenu.
  • Affichage des messages sur l'Ă©cran OLED.
  • ContrĂ´le du servomoteur pour le mĂ©canisme de verrouillage.
4.3.2. Algorithme de Fonctionnement
  1. Initialisation :

    Nous avons commencé par configurer les broches de l'Arduino et initialiser les différentes bibliothèques pour le servomoteur et l'écran OLED. Le chauffage du capteur MQ-3 est également activé pour assurer des mesures précises.

  2. Attente de l'Appui sur le Bouton :

    Le système reste en veille jusqu'à ce que l'utilisateur appuie sur le bouton poussoir, ce qui initie la procédure de mesure.

  3. Calibration :

    Une fois le bouton pressé, le capteur mesure l'air ambiant pendant 10 secondes, en effectuant une moyenne des valeurs lues. Cette étape permet d'établir une référence pour la mesure d'alcoolémie.

  4. Demande Ă  l'Utilisateur de Souffler :

    L'Ă©cran OLED affiche un message invitant l'utilisateur Ă  souffler dans le capteur.

  5. Mesure Après Soufflage :

    Le capteur effectue une nouvelle série de mesures pendant 10 secondes pendant que l'utilisateur souffle. Une moyenne est calculée à partir de ces nouvelles valeurs.

  6. Analyse des Données :

    Nous calculons le ratio entre la moyenne des mesures après soufflage et la moyenne de calibration. Ce ratio nous permet de déterminer si le taux d'alcool est acceptable.

  7. DĂ©cision et Action :

    • Si le ratio est supĂ©rieur ou Ă©gal au seuil prĂ©dĂ©fini (par exemple, 0,7), le taux d'alcool est acceptable, et le servomoteur est activĂ© pour dĂ©verrouiller la boĂ®te.
    • Sinon, le taux d'alcool est trop Ă©levĂ©, la boĂ®te reste verrouillĂ©e, et un message d'alerte est affichĂ©.
  8. Retour à l'État Initial :

    Après l'action, le système revient en veille, prêt pour une nouvelle utilisation.

4.3.3. Code Source avec Explications

Voici le code complet avec des explications pour les lignes importantes :

// Inclusion des bibliothèques nécessaires
#include <Servo.h>           // Pour contrĂ´ler le servomoteur
#include <Arduino.h>
#include <U8g2lib.h>         // Pour l'Ă©cran OLED

// Définition des broches utilisées
#define heaterSelPin 15      // ContrĂ´le du chauffage du capteur MQ-3
#define buttonPin 2          // Bouton pour initier la mesure

// Initialisation de l'Ă©cran OLED en I2C
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

// Création de l'objet servomoteur
Servo monServo;

void setup() {
  Serial.begin(9600);                // Initialisation de la communication série
  pinMode(heaterSelPin, OUTPUT);     // Broche pour le chauffage du capteur
  pinMode(buttonPin, INPUT_PULLUP);  // Bouton avec résistance de pull-up interne
  monServo.attach(9);                // Le servomoteur est connecté à la broche 9
  u8g2.begin();                      // Initialisation de l'Ă©cran OLED
  digitalWrite(heaterSelPin, LOW);   // Activation du chauffage du capteur MQ-3
}

void loop() {
  monServo.write(0); // Position initiale du servomoteur (verrouillé à 0 degrés)

  // Attente de l'appui sur le bouton
  if (digitalRead(buttonPin) == LOW) {
    delay(50); // Anti-rebond
    if (digitalRead(buttonPin) == LOW) {
      Serial.println("DĂ©marrage de la mesure...");
      // Affichage de la calibration sur l'Ă©cran OLED
      u8g2.clearBuffer();
      u8g2.setFont(u8g2_font_luBIS08_tf);
      u8g2.drawStr(0, 40, "Calibration...");
      u8g2.sendBuffer();
      delay(100);

      // Phase de calibration
      float airSum = 0;
      for (int i = 0; i < 10; i++) {
        airSum += analogRead(A0); // Lecture du capteur
        delay(1000);
      }
      float airMean = airSum / 10.0;
      Serial.print("Moyenne air ambiant : ");
      Serial.println(airMean);

      // Demande Ă  l'utilisateur de souffler
      Serial.println("Soufflez maintenant...");
      u8g2.clearBuffer();
      u8g2.drawStr(0, 40, "Soufflez maintenant...");
      u8g2.sendBuffer();
      delay(1000);

      // Mesure après soufflage
      float gasSum = 0;
      for (int i = 0; i < 10; i++) {
        gasSum += analogRead(A0);
        delay(1000);
      }
      float gasMean = gasSum / 10.0;
      Serial.print("Moyenne après soufflage : ");
      Serial.println(gasMean);

      // Calcul du ratio
      float ratio = gasMean / airMean;
      Serial.print("Ratio : ");
      Serial.println(ratio);

      // Comparaison avec le seuil
      float seuil = 0.7; // Seuil défini
      if (ratio >= seuil) {
        Serial.println("Taux d'alcool acceptable. Ouverture de la boîte.");
        // Affichage sur l'Ă©cran OLED
        u8g2.clearBuffer();
        u8g2.drawStr(0, 40, "Bien ! Ouverture.");
        u8g2.sendBuffer();
        // Activation du servomoteur
        monServo.write(90); // Le servomoteur passe à 90 degrés pour déverrouiller
        delay(5000);        // Temps pour ouvrir la boîte
        monServo.write(0);  // Le servomoteur revient à 0 degrés pour verrouiller
      } else {
        Serial.println("Taux d'alcool trop élevé. La boîte reste fermée.");
        // Affichage sur l'Ă©cran OLED
        u8g2.clearBuffer();
        u8g2.drawStr(0, 40, "Alcool détecté !");
        u8g2.sendBuffer();
      }
    }
  }
  delay(200); // Anti-rebond
}

5. Fabrication et Assemblage

5.1. DĂ©coupe Laser

Nous avons utilisé la découpe laser pour réaliser les pièces de la boîte.

  • MatĂ©riaux :

    • Plexiglas de 3 mm pour les parois de la boĂ®te.
    • Plaque de 6 mm pour la base assurant la stabilitĂ©.
  • Logiciel :

    • Nous avons gĂ©nĂ©rĂ© les plans via le site IntegratedHingeBox. ModifiĂ© ensuite sur inkscape
  • Paramètres de DĂ©coupe :

    • Nous avons utilisĂ© une valeur de burn de 0,13 mm pour compenser la largeur du faisceau laser.

(Nous avons inséré une photo des pièces découpées prêtes à être assemblées)

5.2. Impression 3D

Pour le capteur d'alcoolémie, nous avons conçu un cône adapté, permettant l'utilisation de pailles jetables ou lavables pour des raisons d'hygiène.

  • Conception :

  • Modifications :

    • Nous avons ajoutĂ© un tuyau sur le dessus du cĂ´ne pour accueillir les pailles.

(Nous avons inséré une image du modèle 3D du cône)

5.3. Assemblage MĂ©canique
  • Montage de la BoĂ®te :

    • Les pièces dĂ©coupĂ©es ont Ă©tĂ© assemblĂ©es en utilisant les chevilles renforcĂ©es.
    • La boĂ®te supĂ©rieure et la boĂ®te infĂ©rieure ont Ă©tĂ© fixĂ©es ensemble sur la plaque de 6 mm.
  • Installation du Système de Verrouillage :

    • Le crochet est fixĂ© au servomoteur dans la boĂ®te infĂ©rieure.
    • La boucle en fil de fer est attachĂ©e au couvercle de la boĂ®te supĂ©rieure.
  • IntĂ©gration de l'Électronique :

    • Nous avons installĂ© l'Arduino, le capteur MQ-3, le servomoteur et l'Ă©cran OLED dans la boĂ®te infĂ©rieure.
    • Les câbles ont Ă©tĂ© connectĂ©s selon le schĂ©ma de connexion.

(Nous avons inséré une photo de la boîte assemblée avec l'électronique intégrée)


6. Tests et Validation

6.1. Tests de Fonctionnement MĂ©canique

Nous avons vérifié la solidité de la boîte et le bon fonctionnement du mécanisme de verrouillage.

  • RĂ©sultats :

    • La boĂ®te est stable et solide.
    • Le système de crochet fonctionne efficacement, permettant un verrouillage automatique Ă  la fermeture et un dĂ©verrouillage contrĂ´lĂ©.
6.2. Tests Électroniques

Nous avons testé les différentes fonctionnalités électroniques :

  • Le bouton poussoir initie correctement la mesure.
  • Les messages s'affichent clairement sur l'Ă©cran OLED.
  • Le servomoteur actionne le crochet pour dĂ©verrouiller la boĂ®te.
  • Le capteur MQ-3 mesure l'alcoolĂ©mie de manière fiable.
6.3. Scénarios de Test

Pour tester le système, nous avons effectué plusieurs essais :

  • Test avec Taux d'Alcool Bas :

    • Nous avons soufflĂ© dans le capteur sans avoir consommĂ© d'alcool.
    • La boĂ®te s'est ouverte, indiquant que le taux d'alcool Ă©tait acceptable.
  • Test avec Taux d'Alcool ÉlevĂ© :

    • Nous avons utilisĂ© un mouchoir imbibĂ© d'Ă©thanol et avons soufflĂ© Ă  travers vers le capteur.
    • La boĂ®te est restĂ©e verrouillĂ©e, et un message d'alerte s'est affichĂ©.

(Nous avons inséré des photos des tests en cours)

6.4. MĂ©thode de Test

Pour simuler une alcoolémie élevée, nous avons utilisé de l'éthanol sur un mouchoir, ce qui a permis de tester efficacement la détection du capteur MQ-3.


7. Améliorations Potentielles

7.1. Optimisation de la DĂ©tection de Soufflage

Nous avons réfléchi à des moyens de nous assurer que l'utilisateur souffle réellement dans le capteur. Une idée était d'intégrer un capteur de flux d'air ou d'utiliser un moteur comme alternateur pour détecter le souffle. Cependant, pour cette version, nous avons opté pour la simplicité et avons uniquement utilisé un bouton pour initier la mesure.

7.2. Interface Utilisateur

Nous envisageons d'améliorer l'interface utilisateur en agrandissant l'écran OLED pour une meilleure visibilité et en ajoutant des indicateurs lumineux ou sonores pour guider l'utilisateur tout au long du processus.

7.3. Sécurité et Robustesse

Pour renforcer la sécurité et la robustesse du système, nous pourrions utiliser des matériaux plus solides pour le crochet et la boucle, et ajouter des redondances au niveau du mécanisme de verrouillage pour éviter les défaillances.


8. Conclusion

Ce projet nous a permis de concevoir une boîte éthylotest connectée qui contribue à la sécurité routière en empêchant les personnes en état d'ivresse de reprendre le volant. Nous avons appris à intégrer des composants électroniques et à développer un mécanisme de verrouillage mécanique efficace. Les tests effectués ont confirmé le bon fonctionnement de notre système.


9. Annexes

9.1. Schémas et Plans

(Nous avons inséré tous les schémas techniques, plans de découpe et modèles 3D utilisés)

9.2. Code Source

Le code complet est disponible dans la section 4.3.3.

9.3. Liste des Composants
  • Arduino Uno
  • Capteur MQ-3
  • Servomoteur FS90MG
  • Écran OLED 128x64 pixels
  • Bouton Poussoir
  • Fils de Connexion
  • MatĂ©riau de la BoĂ®te : Plexiglas 3 mm et 6 mm
  • Fil de Fer : Pour le crochet et la boucle
  • Divers : RĂ©sistances, soudures, etc.

10. Sources et Références


Remerciements

Nous tenons à remercier toutes les personnes et les ressources en ligne qui nous ont aidés tout au long de ce projet. Leur soutien et leurs conseils ont été précieux pour mener à bien cette réalisation.