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 optimisation de la boîte


2.1. Première version de la 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 d'un burn test

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.

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 :

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

image.png

image.png

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.

Image 4 : Prototype avec double fond en test

image.png

image.png

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.

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

image.png

Défis Rencontrés :



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.


4. Intégration Électronique

4.1. Composants Utilisés

Pour la partie électronique, nous avons utilisé :

(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 :

WhatsApp Image 2024-12-03 at 12.56.17.jpeg

4.3. Programmation et Logiciel
4.3.1. Description du Code

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

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.

PXL_20241203_120925837.jpg WhatsApp Image 2024-12-03 à 14.05.31_9627d70b.jpg

PXL_20241203_121010857.jpg PXL_20241203_121145693.jpg

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.

5.3. Assemblage Mécanique


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.

6.2. Tests Électroniques

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

6.3. Scénarios de Test

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

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

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.


Revision #12
Created 3 December 2024 11:34:00 by Zariouh Soulaimane
Updated 3 December 2024 14:38:11 by Zariouh Soulaimane