This shows you the differences between two versions of the page.
pm:prj2025:ccristi:stefan.bucura [2025/05/27 22:22] stefan.bucura [Software Design] |
pm:prj2025:ccristi:stefan.bucura [2025/05/27 22:41] (current) stefan.bucura |
||
---|---|---|---|
Line 14: | Line 14: | ||
{{\:pm\:prj2025\:ccristi\:schema.png?700|}} | {{\:pm\:prj2025\:ccristi\:schema.png?700|}} | ||
- | * Senzorul MQ-3 detectează vaporii de alcool din aerul expirat | + | * Senzorul MQ-3 detectează vaporii de alcool din aerul expirat |
- | * Valoarea citită este afișată pe un display OLED | + | * Valoarea citită este afișată pe un display OLED |
- | * În funcție de valoare, se aprinde LED-ul roșu sau verde și se activează buzzerul pentru avertizare | + | * În funcție de valoare, se aprinde LED-ul roșu sau verde și se activează buzzerul pentru avertizare |
- | * Utilizatorul poate naviga prin meniu folosind encoderul rotativ pentru a vedea moduri diferite de afișare (valoare sau sancțiune) | + | * Utilizatorul poate naviga prin meniu folosind encoderul rotativ pentru a vedea moduri diferite de afișare (valoare sau sancțiune) |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 40: | Line 40: | ||
Librării folosite: | Librării folosite: | ||
- | * Adafruit_GFX - pentru grafică OLED | + | * Adafruit_GFX - pentru grafică OLED |
- | * Adafruit_SSD1306 - pentru controlul display-ului | + | * Adafruit_SSD1306 - pentru controlul display-ului |
Funcționalități implementate: | Funcționalități implementate: | ||
- | * Meniu interactiv controlat cu encoder (Start Test, Set Prag 1, Set Prag 2, Mod Afisare) | + | * Meniu interactiv controlat cu encoder (Start Test, Set Prag 1, Set Prag 2, Mod Afisare) |
- | * Afișare numerică sau textuală în funcție de valoarea măsurată (e.g., "Avertisment", "Dosar Penal") | + | * Afișare numerică sau textuală în funcție de valoarea măsurată (e.g., "Avertisment", "Dosar Penal") |
- | * Avertizare sonoră și vizuală (buzz continuu + LED roșu pentru valori periculoase) | + | * Avertizare sonoră și vizuală (buzz continuu + LED roșu pentru valori periculoase) |
- | * Calibrare automată a senzorului la pornire și secvență de start-up (buzzer + LED) | + | * Calibrare automată a senzorului la pornire și secvență de start-up (buzzer + LED) |
- | * Toate intrările/ieșirile tratate la nivel de registru (DDRx, PORTx, PINx, ADMUX, ADCSRA etc.) | + | * Toate intrările/ieșirile tratate la nivel de registru (DDRx, PORTx, PINx, ADMUX, ADCSRA etc.) |
</note> | </note> | ||
Line 57: | Line 57: | ||
Produsul final funcționează conform cerințelor: detectează alcoolul din aerul expirat, oferă avertizare sonoră și vizuală, iar meniul este complet funcțional și ușor de navigat. Displayul arată clar informațiile. Pragurile se pot ajusta ușor și nu se salvează între porniri, conform cerinței. </note> | Produsul final funcționează conform cerințelor: detectează alcoolul din aerul expirat, oferă avertizare sonoră și vizuală, iar meniul este complet funcțional și ușor de navigat. Displayul arată clar informațiile. Pragurile se pot ajusta ușor și nu se salvează între porniri, conform cerinței. </note> | ||
- | {{\:pm\:prj2025\:ccristi\:etilotest\_final1.jpg?200|}} | + | {{:pm:prj2025:ccristi:img_2103.jpeg?200|}} |
- | {{\:pm\:prj2025\:ccristi\:etilotest\_final2.jpg?200|}} | + | |
- | [[https://youtu.be/demo\_link](https://youtu.be/demo_link) | DEMO video - etilotest]] | + | [[https://youtube.com/shorts/k2fTEFICqwE | DEMO video - etilotest]] |
- | [[https://github.com/stefanbucura/etilotest-pmf-2025](https://github.com/bucurastefan/Breathalyzer) | Link GitHub]] | + | [[https://github.com/bucurastefan/Breathalyzer | Link GitHub]] |
===== Concluzii ===== | ===== Concluzii ===== | ||
Proiectul și-a atins scopul de a crea un etilotest portabil, fiabil, ușor de utilizat, fără utilizarea funcțiilor standard Arduino. Codul este optimizat la nivel de registru, meniul este complet funcțional, iar feedbackul vizual și sonor este bine sincronizat cu valorile senzorului. Este un proiect ideal pentru uz educațional și personal. | Proiectul și-a atins scopul de a crea un etilotest portabil, fiabil, ușor de utilizat, fără utilizarea funcțiilor standard Arduino. Codul este optimizat la nivel de registru, meniul este complet funcțional, iar feedbackul vizual și sonor este bine sincronizat cu valorile senzorului. Este un proiect ideal pentru uz educațional și personal. | ||
- | ===== Download ===== | ||
- | <note warning> | ||
- | Arhiva completă conține: | ||
- | |||
- | * cod sursă C++ (fără funcții Arduino standard) | ||
- | * scheme electrice și layout | ||
- | * README cu instrucțiuni de utilizare | ||
- | * ChangeLog și script de upload dacă este cazul | ||
- | |||
- | Namespace: **:pm\:prj2025\:ccristi\:bucura\_stefan** | ||
- | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
<note tip> | <note tip> | ||
- | * 04.05.2025 - alegere temă proiect | + | * 04.05.2025 - alegere temă proiect |
- | * 07.05.2025 - comandă componente | + | * 07.05.2025 - comandă componente |
- | * 09.05.2025 - testare componente (senzații false MQ-3) | + | * 09.05.2025 - testare componente (senzații false MQ-3) |
- | * 11.05.2025 - montaj pe breadboard și test buzzer/LED-uri | + | * 11.05.2025 - montaj pe breadboard și test buzzer/LED-uri |
- | * 13.05.2025 - implementare ecran și meniu | + | * 13.05.2025 - implementare ecran și meniu |
- | * 15.05.2025 - integrare citire encoder | + | * 15.05.2025 - integrare citire encoder |
- | * 18.05.2025 - implementare praguri și conversie mg/L | + | * 18.05.2025 - implementare praguri și conversie mg/L |
- | * 22.05.2025 - feedback sonor/LED în funcție de valoare | + | * 22.05.2025 - feedback sonor/LED în funcție de valoare |
- | * 25.05.2025 - optimizare interfață și calibrare senzor | + | * 25.05.2025 - optimizare interfață și calibrare senzor |
- | * 27.05.2025 - testare finală și demo video | + | * 27.05.2025 - testare finală și demo video |
</note> | </note> | ||
Line 99: | Line 86: | ||
=== Resurse Software === | === Resurse Software === | ||
- | * [[https://www.arduino.cc/en/software|Arduino](https://www.arduino.cc/en/software|Arduino) IDE]] | + | * [[https://www.arduino.cc/en/software|Arduino IDE]] |
- | * [[https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples](https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples) | Adafruit SSD1306]] | + | * [[https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples](https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples) | Adafruit SSD1306]] |
=== Resurse Hardware === | === Resurse Hardware === | ||
- | * [[https://components101.com/sensors/mq3-alcohol-sensor](https://components101.com/sensors/mq3-alcohol-sensor) | MQ-3 Alcohol Sensor Datasheet]] | + | * [[https://components101.com/sensors/mq3-alcohol-sensor](https://components101.com/sensors/mq3-alcohol-sensor) | MQ-3 Alcohol Sensor Datasheet]] |
- | * [[https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf](https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf) | SSD1306 OLED Datasheet]] | + | * [[https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf](https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf) | SSD1306 OLED Datasheet]] |
- | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P\_Datasheet.pdf](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf) | ATmega328P Datasheet]] | + | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P\_Datasheet.pdf](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf) | ATmega328P Datasheet]] |