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)
(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
-
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.
-
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.
-
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.
-
Demande Ă l'Utilisateur de Souffler :
L'Ă©cran OLED affiche un message invitant l'utilisateur Ă souffler dans le capteur.
-
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.
-
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.
-
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é.
-
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 :
- Réalisée sur Tinkercad.
-
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
-
Sites Utilisés pour la Conception :
-
Bibliothèques Arduino :
-
Tutoriels Consultés :
- ContrĂ´le d'un servomoteur avec Arduino
- Utilisation du capteur MQ-3 pour mesurer l'alcoolémie
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.