This is an old revision of the document!


Tester alcoolemie

Autor: Popa Alexandru-Matei

Introducere

Proiectul constă în implementarea unui aparat, care poate detecta cantitatea de alcool din aerul expirat. Voi folosi 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 pentru a semnaliza o posibilă cantitate prea mare de alcool.

Acest aparat este util, deoarece te informează cu privire la cantitatea de alcool din aerul expirat înainte de a te urca la volan. Proiectul poate fi folosit doar ca o simplă curiozitate sau ca o prevenire a unei posibile infracțiuni.

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.

Senzorul MQ-3 are 4 pini, dintre care primul se conectează la tensiunea de 5V de pe microcontroller, al doilea la GND, al treilea la D0, dacă se dorește o reprezentare digitală a valorii senzorului, iar al patrulea la A0 la analog. Senzorul MQ3 este de tip MOS (metal oxide semiconductor) și poate detecta concentrații de alcool oriunde începând cu valori de la 25 ppm, ajungând până la 600 ppm (valori corecte, după ce a fost senzorul calibrat).

1 ppm = parts-per-million. O concentrație de 500 ppm de alcool înseamnă ca din 1.000.000 de molecule de gaz, 500 ar fi de alcool.

Modulul de Buzzer utilizează 3 pini: primul se conectează la tensiunea de 5V, al doilea la pinul 8 de la Digital PWM, iar ultimul reprezintă împămantarea.

În final, modulul LCD 1602 permite afisarea a cate 16 caractere pe 2 linii, continand un adaptor I2C. Astfel, se micșorează numărul de pini folosiți la 4. Primul este GND, al doilea tensiunea de 5V, iar al treilea (SDA - serial data) și al patrulea (SCL - serial clock) se duc la analog IN, pe A4, respectiv A5.

Schemă bloc

Hardware Design

Piese necesare

Schemă electrică

Am utilizat Eagle pentru schema electrică.

Schema internă a modulului MQ-3

Software Design

Am utilizat Arduino IDE pentru partea de software și două librării:

  • Wire.h: pentru a putea comunica cu I2C
  • LiquidCrystal_I2C.h: pentru accesul la funcțiile necesare folosirii ecranului LCD

Funcțiile principale sunt setup() și loop(), în încercarea de a face codul cât mai modular.

  • În funcția setup, inițializez ecranul LCD, configurez pin-ul pentru buzzer și afișez pe ecran un mesaj corespunzător, lăsând la încălzit senzorul pentru câteva secunde.
  • În funcția loop, calibrez senzorul, iau valoarea pe care acesta o transmite și afișez un mesaj specific în funcție de mai multe intervale.
    • calibrateSensor(): citesc valoarea data de senzor de pe pin-ul 0 cu analogRead. Fiind o valoare prea mare, a trebuit sa calibrez senzitivitatea rezistenței potentiometrului din modul, pe care am setat-o la 32.000. RS_gas este rezistenta senzorului, care se schimba în funcție de concentrația gazului, iar R0 este rezistenta la o valoare stiuta fără prezența altor gaze în jur. Am aflat valoare minima si maxima, iar pentru a afișa o valoare cat mai ușor de recunoscut, am schimbat capetele intervalului prin funcția map. RS_gas se calculeza dupa formula:
    • alcoholLevel(): se face media a doua valori, cu un anumit delay între ele, pentru o valoare cat mai corecta
    • printLCD(): se afișează un mesaj pentru o anumită valoare data de senzor. Dacă valoarea este prea mare, buzzer-ul scoate un sunet.

RS = [(Vin x R / Vout] - R, unde R este rezistenta potentiometrului.

Rezultate obtinute

Concluzii

Download

Jurnal

  • 25 aprilie 2021: crearea paginii de wiki, completarea temei proiectului, descrierea proiectului și adăugarea schemei bloc
  • 19 mai 2021: testarea componentelor, calibrarea senzorului MQ-3, crearea hardware a proiectului
  • 21 mai 2021: completarea descrierii, adăugarea schemelor electrice

Bibliografie/Resurse

pm/prj2021/avaduva/alcoholtester.1622111832.txt.gz · Last modified: 2021/05/27 13:37 by alexandru.popa0809
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