This is an old revision of the document!


Alcooltest

Introducere

Proiectul constă în realizarea unui alcooltest cu ajutorul unui senzor de vapori de alcool și a unei plăci Arduino UNO pentru a măsura alcoolemia din respirație.

Scopul acestui proiect este de a afișa corect alcoolemia detectată din vaporii de alcool ce intră în senzor și de a informa utilizatorul prin sunete/culoarea LED-urilor dacă valoarea este una îngrijorătoare sau dacă este una normală.

Am avut această idee deoarece, în ultimul timp, avem de-a face cu din ce în ce mai multe accidente rutiere din cauza condusului sub influența alcoolului. De aceea, am decis să creez un alcooltest care îți va indica dacă este sigur să te urci la volan în cazul în care ai consumat alcool la un moment dat în zi.

Descriere generală

Schema bloc

Hardware Design

Piese

Arduino UNO R3

  • Cu microcontroller ATmega 328p

Breadboard

Senzor detectie alcool MQ-3

  • Tensiune alimentare: 5VDC, 150mA
  • Va capta vaporii de alcool, valoare ce va fi afisata pe ecranul LCD

LED-uri

  • LED verde pentru a determina o alcoolemie in regula
  • LED rosu pentru a semnala o alcoolemie peste limite

Ecran LCD 1602

  • Comunica prin interfata I2C
  • Pe acest ercan se va afisa alcoolemia detectata de senzor
  • Tensiunea de alimentare: 5V

Modul interfata I2C pentru LCD 1602 Modul cu buzzer

  • Tensiune de alimentare: 3.3 V - 5 V
  • Va emite un sunet de alerta in cazul unei alcoolemii peste limita

Fire

  • Mama-Tata, Tata-Tata, Mama-Mama

Rezistente

  • Pentru LED-uri
  • 220 Ω, 100 Ω

Pushbutton

  • Cand acesta va fi apasat se va produce o intrerupere
  • Apasarea acestui buton va porni/opri masurarea

Condensator

  • Pentru a evita detectarea unor intreruperi “false” de la buton

Schema electrica

Pini

  • La senzorul de alcool MQ-3 am folosit pin-ul A0 pentru semnal analogic ce va intra in pin-ul A0 de pe Arduino, iar alimentarea va fi la 5V.
  • Pentru ecranul LCD am conectat pinii SCL si SDA de pe modulul I2C lipit la ecran, la pinii de SCL si respectiv SDA de pe Arduino, iar alimentarea la 5V.
  • Modulul cu Buzzer va avea pin-ul de I/O conectat la pin-ul 8 de pe Arduino, pentru semnal digital si alimentarea la 5V.
  • LED-urile vor avea anodul conectat la pinii 3 si 4 de pe Arduino pentru semnal digital.

Asamblare

  • Am testat initial senzorul cu spirt pentru a vedea ce valori detecteaza acesta si de asemenea l-am calibrat lasandu-l peste un pahar cu putin spirt pana tot alcoolul s-a evaporat pentru a vedea ce valori ia acesta si cat de mult scad pe masura ce trece timpul
  • Se poate vedea ca este aprins si LED-ul verde de pe spatele senzorului MQ-3 care arata ca s-a detectat alcoolul, dar si LED-ul verde montat de mine care se aprindea atunci cand era detectata o alcoolemie destul de mare (doar pentru testare, in varianta finala LED-ul verde va arata ca alcoolemia este ok.

  • Am lipit cu ciocanul de lipit modulul I2C de ecranul LCD 1602 pentru a il putea conecta la Arduino

  • Componentele sunt montate si functionale, dupa cum se poate vedea in poza de mai jos este afisata alcoolemia captata de senzor si un status pe ecran.
  • Pe parte hardware merge totul ok, insa mai sunt necesare adjustari ale design-ului.
  • Ramane sa schimb LED-ul albastru cu unul rosu cum am descris si in schemele circuitului, dar momentan doar pe acesta l-am avut.

Software Design

Descrierea codului aplicaţiei (firmware):

  • Mediu de dezvoltare: Arduino IDE
  • Librarii folosite: LiquidCrystal_I2C.h, Wire.h

Repository GitHub

Rezultate Obţinute

Alcooltestul detecteaza cu succes prezenta alcoolului notificand utilizatorul prin sunete pe buzzer si luminarea intermitenta a LED-urilor. De asemenea, pe LCD este afisata constant valoarea din aer a alcoolului in unitatea de masura “ppm” (parts per million) si statusul “No alcohol”/“Alcohol detected”. De asemenea, acuratetetea testarii depinde si de cat de incalzit este senzorul deoarece pe masura ce este mai incalzit acesta devine mai sensibil la vaporii de alcool oferind rezultate mai precise.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/vstoica/andrei.vasilescu02.1716656006.txt.gz · Last modified: 2024/05/25 19:53 by andrei.vasilescu02
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