This shows you the differences between two versions of the page.
|
pm:prj2021:cghenea:alcooltest [2021/06/01 23:19] amihailescu1507 [Alcooltest] |
pm:prj2021:cghenea:alcooltest [2021/06/02 20:07] (current) amihailescu1507 [Software Design] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| Autor: MIHAILESCU Alexandru \\ | Autor: MIHAILESCU Alexandru \\ | ||
| Grupa: 334CA | Grupa: 334CA | ||
| - | ==== Alcooltest ==== | + | ===== Alcooltest ===== |
| - | === Introducere=== | + | ===== Introducere ===== |
| Proiectul pe care l-am ales consta in realizarea unui aparat ce masoara cantitatea de alcool din aerul expirat. | Proiectul pe care l-am ales consta in realizarea unui aparat ce masoara cantitatea de alcool din aerul expirat. | ||
| - | === Descriere generală=== | + | ===== Descriere generală===== |
| Pentru realizarea proiectului, voi folosi un senzor MQ-3 de masurare a alcoolului din aerul expirat, un display LED si un modul Bluetooth. | Pentru realizarea proiectului, voi folosi un senzor MQ-3 de masurare a alcoolului din aerul expirat, un display LED si un modul Bluetooth. | ||
| Dupa ce aerul patrunde in senzor, acesta va transmite datele atat catre display-ul LCD cat si catre modulul Bluetooth care va transmite date catre dispozitive mobile cu capacitati Bluetooth. | Dupa ce aerul patrunde in senzor, acesta va transmite datele atat catre display-ul LCD cat si catre modulul Bluetooth care va transmite date catre dispozitive mobile cu capacitati Bluetooth. | ||
| - | === Hardware Design=== | + | |
| + | ===== Hardware Design===== | ||
| Componentele necesare: \\ | Componentele necesare: \\ | ||
| * Arduino UNO | * Arduino UNO | ||
| Line 17: | Line 18: | ||
| * Modul I2C pentru display\\ | * Modul I2C pentru display\\ | ||
| {{:pm:prj2021:cghenea:schema_electrica2_alcooltest_am.png?700|}} | {{:pm:prj2021:cghenea:schema_electrica2_alcooltest_am.png?700|}} | ||
| - | **Pentru a putea realiza partea hardware am urmat urmatorii pasi**: \\ | + | Pentru a putea realiza partea hardware am urmat urmatorii pasi: \\ |
| - Am conectat placuta Arduino la Laptop prin USB\\ | - Am conectat placuta Arduino la Laptop prin USB\\ | ||
| - Modulul I2C pentru display a venit separat, asa ca a trebuit sa il lipesc de display\\ | - Modulul I2C pentru display a venit separat, asa ca a trebuit sa il lipesc de display\\ | ||
| - Dupa lipire, l-am conectat la Arduino conform cu un tutorial de pe internet\\ | - Dupa lipire, l-am conectat la Arduino conform cu un tutorial de pe internet\\ | ||
| - Am conectat senzorul MQ-3\\ | - Am conectat senzorul MQ-3\\ | ||
| - | === Software Design=== | + | ===== Software Design===== |
| - | **Pentru a putea realiza partea de software am utilizat Arduino IDE**. \\ | + | Pentru a putea realiza partea de software am utilizat Arduino IDE. \\ |
| - Am descarcat biblioteca LiquidCrystal_I2C pentru a interfata cu display-ul LCD\\ | - Am descarcat biblioteca LiquidCrystal_I2C pentru a interfata cu display-ul LCD\\ | ||
| - Am implemetat codul pentru display-ul LCD(pentru a putea afisa pe ecran daca utilizatorul a consumat sau nu alcool)\\ | - Am implemetat codul pentru display-ul LCD(pentru a putea afisa pe ecran daca utilizatorul a consumat sau nu alcool)\\ | ||
| - | - Am initializat senzorul pentru masurarea alcoolului | + | - Am initializat senzorul pentru masurarea alcoolului\\ |
| - | === Rezultate obtinute=== | + | - Se fac 3 citiri consecutive de la senzorul de alcool si apoi se face media pentru a returna valoarea |
| + | |||
| + | |||
| + | <spoiler COD PROIECT> | ||
| + | <code> | ||
| + | #include <LiquidCrystal_I2C.h> | ||
| + | // Create lcd object of class LiquidCrystal_I2C: | ||
| + | LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); | ||
| + | const int analogPin = 0; //the AOUT pin of the alcohol sensor goes into analog pin A0 of the arduino | ||
| + | |||
| + | int value; | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(9600);//sets the baud rate | ||
| + | pinMode(DOUTpin, INPUT);//sets the pin as an input to the arduino | ||
| + | lcd.init(); | ||
| + | lcd.backlight(); | ||
| + | } | ||
| + | |||
| + | int readAlcohol() { | ||
| + | int val = 0; | ||
| + | int val1; | ||
| + | int val2; | ||
| + | int val3; | ||
| + | |||
| + | val1 = analogRead(analogPin); | ||
| + | delay(10); | ||
| + | val2 = analogRead(analogPin); | ||
| + | delay(10); | ||
| + | val3 = analogRead(analogPin); | ||
| + | |||
| + | val = (val1+val2+val3)/3; | ||
| + | return val; | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | value = readAlcohol(); //reads the analaog value from the alcohol sensor's AOUT pin | ||
| + | if (value > 400) { | ||
| + | lcd.setCursor(0, 0); | ||
| + | lcd.clear(); | ||
| + | lcd.print("Exista alcool"); | ||
| + | } else { | ||
| + | lcd.setCursor(0, 1); | ||
| + | lcd.clear(); | ||
| + | lcd.print("Nu exista alcool"); | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | </spoiler> | ||
| + | ===== Rezultate obtinute===== | ||
| Utilizatorul care sufla in senzorul MQ-3 va afla imediat daca are sau nu alcool in aerul expirat prin intermediul display-ului LCD\\ | Utilizatorul care sufla in senzorul MQ-3 va afla imediat daca are sau nu alcool in aerul expirat prin intermediul display-ului LCD\\ | ||
| [[https://youtu.be/NM9aRyAH66A|Video Demo]] | [[https://youtu.be/NM9aRyAH66A|Video Demo]] | ||
| - | === Concluzii=== | + | ===== Concluzii===== |
| Proiectul a fost o provocare pentru mine intrucat partea hardware nu este neaparat o parte preferata de mine. // | Proiectul a fost o provocare pentru mine intrucat partea hardware nu este neaparat o parte preferata de mine. // | ||
| - | Totusi, trebuie sa recunosc ca lucrul cu hardware s-a dovedit a fi destul de interesant. | + | Totusi, trebuie sa recunosc ca lucrul cu hardware s-a dovedit a fi destul de interesant. // |
| - | === Jurnal=== | + | |
| + | ===== Jurnal===== | ||
| * 25.04.2021 --> Alegerea temei proiectului si completarea paginii de wiki cu schema bloc si componentele necesare realizarii proiectului \\ | * 25.04.2021 --> Alegerea temei proiectului si completarea paginii de wiki cu schema bloc si componentele necesare realizarii proiectului \\ | ||
| * 17.05.2021 --> Comandare pieselor \\ | * 17.05.2021 --> Comandare pieselor \\ | ||
| * 19.05.2021 --> Sosirea pieselor \\ | * 19.05.2021 --> Sosirea pieselor \\ | ||
| - | * 27.05.2021 --> Inceperea realizarii proiectului \\ | + | * 29.05.2021 --> Inceperea realizarii proiectului \\ |
| - | * 30.05.2021 --> Finalizarea proiectului \\ | + | * 31.05.2021 --> Finalizarea proiectului \\ |
| - | * 01.06.2021 --> Finalizarea paginii de wiki\\ | + | * 01.06.2021 --> Finalizarea paginii de wiki \\ |
| - | === Bibliografie/Resurse=== | + | ===== Bibliografie/Resurse===== |
| [[https://www.makerguides.com/character-i2c-lcd-arduino-tutorial/|Tutorialul pentru display-ul LCD]]\\ | [[https://www.makerguides.com/character-i2c-lcd-arduino-tutorial/|Tutorialul pentru display-ul LCD]]\\ | ||
| [[https://create.arduino.cc/projecthub/yashikibrahim/alcohol-detection-sensor-dc32cd|Tutorialul pentru senzorul MQ-3]] | [[https://create.arduino.cc/projecthub/yashikibrahim/alcohol-detection-sensor-dc32cd|Tutorialul pentru senzorul MQ-3]] | ||