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]] |