Tester alcoolemie

Autor: Garbuz Cătălin 336CC

Introducere

Proiectul constă în implementarea unui aparat, care poate detecta cantitatea de alcool din aerul expirat. Pentru aceasta, folosesc un senzor MQ-3 pentru detecția alcoolului și un ecran LCD pentru a afișa cantitatea curentă. De asemenea, voi adăuga un buzzer și un led RGB pentru a semnaliza o posibilă cantitate prea mare de alcool. Accesul la aparat va fi monitorizat printr-un modul RFID.

Consider că acest proiect este util, deoarece putem să verificăm cantitatea de alcool din aerul expirat înainte de a ne urca la volan (ideal să nu consumăm deloc pentru a nu avea nevoie de aparat) pentru a preveni o posibilă infracțiune. De asemenea acest proiect poate fi folosit pentru cei curioși de a-și verifica nivelul de alcool, dar ideea principală este cea menționată mai sus.

Descriere generală

Senzorul de alcool gazos MQ-3 este un senzor cu un timp de răspuns rapid și cu o sensibilitate înaltă. Acesta este alimentat la breadboard, de unde se preiau datele de ieșire. Placa Arduino transmite ecranului LCD cantitatea de alcool din aerul expirat și în cazul în care este destul de ridicată, buzzer-ul va semnaliza utilizatorul iar led-ul RGB va fi aprins în culoarea roșie.

Funcționarea și accesul la tester va fi monitorizat prin modulul RFID. Dacă cartela a fost citită, microcontroller-ul ATmega324 va primi date de la senzorul de alcool. Avem un buton ce îl ținem apăsat cât timp suflăm în senzorul de alcool pentru a putea măsura date relevante. Pe LCD se vor afișa mai întâi instrucțiunile de folosire, iar apoi va primi de la microcontroller cantitatea de alcool din aerul expirat. Dacă acesta a depășit un anumit prag, microcontroller-ul va activa buzzerul și va aprinde culoarea roșie a led-ului, pentru a anunța utilizatorul că s-a depășit nivelul admisibil stabilit în cod.

Schema bloc a proiectului:

Hardware Design

Componentele utilizate pentru construirea alcotesterului

  • Placă de dezvoltare UNO R3 compatibilă Arduino
  • LCD 16 x 2
  • Senzor de Alcool Gazos MQ3
  • Buzzer
  • Led RGB
  • Modul RFID
  • Buton
  • Fire mama-mama, tata-tata

Schemă electrică

Software Design

1. Mediu de dezvoltare

Pentru implementarea software a proiectului folosesc Arduino IDE.

2. Librării și cod

Am folosit bibliotecile de bază din C, bibliotecile specifice pentru AVR, biblioteci pentru LCD_I2C [1] și biblioteci pentru modulul MFRC522(RFID) [2].

  • #include <avr/io.h>
  • #include <util/delay.h>
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <math.h>
  • #include <avr/interrupt.h>
  • #include <LiquidCrystal_I2C.h> [1]
  • #include <Wire.h> [1]
  • #include <SPI.h> [2]
  • #include <SPI.h> [2]
  • #include <MFRC522.h>

* La alimentarea inițială a plăcuței, pentru a controla accesul la testerul de alcool folosesc un modul RFID, iar pe LCD printez mesaje informaționale despre starea sistemului și acțiunile care pot fi efectuate de utilizator.

* Citirea valorii de la senzor o fac cât timp butonul de pe plăcuță este apăsat, făcând o medie a valorilor citite în acest timp. Pentru o testare corectă se recomandă să ținem butonul apăsat pentru cel puțin 5 secunde și să facem și o pauză de 10 secunde între două testări consecutive.

* Întrucât, senzorul MQ-3 lucrează în mod normal la temperaturi de circa 30-40 ºC, folosesc funcția delay doar în setup pentru a aștepta ca senzorul să se încălzească. În rest nu am folosit funcția delay, întregul cod bazându-se pe întreruperi și delay-uri non-blocante(utilizând funcția millis())

* După ce butonul de pe breadboard a fost lăsat, pe lcd afisez un mesaj informativ pentru utilizator. Atunci când s-a ajuns la un nivel foarte mare de alcool în aerul expirat( > 400 ppm), buzzerul ne va avertiza că este periculos să mai continuăm să bem, iar ledul RGB va fi aprins roșu.

* Am împărțit rezultatele ce pot fi obținute în 4 nivele:

  • “Nivel alcool 0 mg/l” : < 130 ppm ; ledul va fi aprins verde
  • “CANTITATE MINIMĂ” : >= 130 ppm && < 200 ppm ; ledul va fi aprins galben
  • “PESTE MEDIE” : >= 200 ppm && < 400 ppm ; ledul va fi aprins albastru
  • “COMA ALCOOLICĂ” : > 400 ppm ; (aici începe buzzerul să sune) ledul va fi aprins roșu

* Pe viitor, aș dori să conectez la circuit și un modul de wifi pentru a salva statistici în telefon.

Rezultate Obţinute

  • Am obținut un etilotest funcționabil și mi-am realizat toate ideile propuse inițial.
  • Dispozitivul poate determina daca în aerul expirat se găsește alcool și afișează mesaje, aprinzând și ledul sau acționând buzzer-ul în diferite situatii.

Mai jos atașez poze cu rezultatul final în diferite cazuri de testare:

Concluzii

  • A fost o experiență interesantă, prin care am pus în practică cunoștințe teoretice și am învățat lucruri utile, precum lipitul pinilor pe module, lucrul cu senzori și LCD.
  • Mi-a plăcut procesul de realizare a acestui proiect și mă bucur că am reușit să obțin un produs funcționabil, care lucrează așa cum mi-am propus inițial.

Download

Jurnal

  • 29.04.2022 - Alegere temă proiect
  • 15.05.2022 - Comandare piese
  • 19.05.2022 - Finalizare parte hardware
  • 21.05.2022 - Finalizare parte soft
  • 25.05.2022 - Finalizare documentație proiect

Bibliografie/Resurse

pm/prj2022/sgherman/alcotester.txt · Last modified: 2022/05/27 19:58 by catalin.garbuz
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0