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

2.1. SĂ©lection du Design Initial

Pour la conception physique de la boîte, nous avons choisi un modèle avec charnière intégrée disponible sur le site Hackerspace Bamberg. Ce modèle nous a semblé idéal en raison de sa robustesse et de sa simplicité de construction, tout en étant compatible avec la découpe laser que nous prévoyions d'utiliser.

(Ici, nous avons inséré une image du modèle initial de la boîte)

2.2. Modifications et Optimisations
2.2.1. Ajustements de la Profondeur

Nous avons modifié la profondeur de la boîte pour qu'elle puisse accueillir à la fois les clés des invités et les composants électroniques nécessaires. Ces ajustements nous ont permis d'optimiser l'espace intérieur sans compromettre la solidité de la boîte.

(Ici, nous avons inséré un schéma des dimensions modifiées)

2.2.2. Renforcement des Chevilles

Lors de notre première version, nous avons constaté que le système de chevilles était trop fragile, ce qui rendait la boîte instable. Pour remédier à ce problème, nous avons réalisé un burn test afin de déterminer les paramètres optimaux de découpe laser.

  • Burn Test :

    • Nous avons testĂ© diffĂ©rentes valeurs de burn, notamment 0,12 mm et 0,13 mm.
    • Les rĂ©sultats ont montrĂ© que 0,13 mm offrait le meilleur ajustement pour notre matĂ©riau de 3 mm d'Ă©paisseur.

(Nous avons inséré des images du burn test et des échantillons découpés)

  • Chevilles RenforcĂ©es :

    • Nous avons redessinĂ© les chevilles pour les rendre plus robustes.
    • Une barre en mĂ©tal a Ă©tĂ© ajoutĂ©e pour renforcer la structure globale de la boĂ®te.

(Ici, nous avons inséré des images des nouvelles chevilles renforcées)

2.2.3. Conception Modulaire

Pour faciliter l'assemblage et optimiser l'espace, nous avons décidé de diviser la boîte en deux compartiments superposés :

  • BoĂ®te SupĂ©rieure :

    • Contient les clĂ©s des invitĂ©s et le système d'ouverture/fermeture.
  • BoĂ®te InfĂ©rieure :

    • Accueille toute l'Ă©lectronique, y compris l'Arduino, le capteur d'alcoolĂ©mie et l'Ă©cran OLED.

Les deux compartiments sont fixés sur une plaque de 6 mm d'épaisseur pour assurer la stabilité de l'ensemble.

(Nous avons inséré un schéma de la boîte modulaire en deux compartiments)


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.