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
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
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
Fire
Rezistente
Pentru LED-uri
220 Ω, 100 Ω
Pushbutton
Condensator
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.
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):
Repository GitHub
* Functia setup()
Se seteaza baud rate-ul la 9600 pentru comunicarea cu seriala
Se seteaza pinii pentru LED-ul rosu si cel verde dar si pentru buzzer ca pini de output
Se seteaza pinii pentru senzorul de alcool MQ-3 si cel pentru buton ca pini de input
Se activeaza rezistenta de pull-up pe pinul pentru buton
Se initializeaza ecranul LCD si se afiseaza un scurt mesaj “Warming up…” pentru a lasa putin senzorul sa se incalzeasca inainte de pornirea testarii.
Dupa incalzirea senzorului se apeleaza functia “startPrint()” ce afiseaza pe LCD titlul proiectului “ALCOHOLTEST” si apoi un mesaj “Press button to start!” asteptand apasarea butonului.
Se activeaza intreruperea pe buton
* Functia loop()
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