BREATHALYSER

Introduction: BREATHALYSER

Nowadays, one of the biggest problems of drinking alcohol is taking the car drunk. Many people consider that they are not so drunk that something could happen and they think that they can drive the perfectly, when they really can’t.

For this reason, we wanted to create a breathalyzer that is incorporated into your own arm. With this, you can easily control your alcohol level, preventing many misfortunes. On a finger of the left hand we place an MQ3 sensor, through which the person must blow, and on the inside of the right forearm we have placed a LED screen that indicates the level of alcohol detected.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: COMPONENTS NEEDED

- 1 Protoboard: Board with holes that are electrically connected to each other internally, usually following line patterns.

- Jumpers: Element that is responsible for joining or bridging between two terminals thus closing an electrical circuit.

- Arduino UNO: Open source microcontroller board

- 6 Leds RGB: The RGB LED (Red, Green, Blue) is a LED that combines these three colors to form more than 16 million light tones. In this way, depending on the hue passed as a parameter, we can emit one color of light or another.

- 18 220Ohms resistors: electronic component designed to introduce a certain electrical resistance between two points of an electrical circuit

- 1 MQ3 Alcohol sensor: Sensor that detects the concentration of alcohol in the air.

For the prototype:

- Liquid silicone

- Catalyst

- Alginate

Step 2: CIRCUIT

To carry out this project, we have created a circuit in which we can find 1 MQ3 Alcohol Sensor, 18 resistors of 220 Ohms, 6 RGB LEDs and several jumpers, all incorporated on a portoboard, in addition to an Arduino UNO .

Step 3: ARDUINO CODE

We have carried out the creation of the code with which we achieve the LEDs to show colored lights according to the level of alcohol detected by the sensor.

ARDUINO CODE

int limit1 = 594; // limit 0-594
int limit2 = 688; // limit 595-688

int limit3 = 782; // limit 689-782

int limit4 = 876; // limit 783-876

float valor_alcohol; //Define alcohol value

long randNumber; //Define radom Number for LED's colors.

void setup() {

Serial.begin(9600); // Activate the serial port 9600 Baudios.

//Define the pins of the rgb LED as an outputs.

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(A3, OUTPUT);

pinMode(A2, OUTPUT);

pinMode(A1, OUTPUT);

}

void loop() {

blanc(); // Activate withe function for LED's.

delay(1000); //Wait

valor_alcohol = analogRead(A0); //Read de value of the mq3 sensor on de PIN A0 and define it as the alcohol value.

Serial.println( valor_alcohol); //Print alcohol value.

if (valor_alcohol <= limit1) { //If the alcohol value is <= than limit1, turn the green LED's on.

verd (); //Activate green function.

stop(); //Activate stop function.

verd();

stop();

verd();

stop();

verd();

stop();

verd();

stop();

verd();

stop();

verd();

stop();

Serial.println(String("0,0 - 0,15 mg/l = ") + valor_alcohol); // Print the sensor value on the screen and the mg/l.

delay (5000); //Wait.

}

else if (valor_alcohol <= limit2) { //If the alcohol value is <= than limit2, turn the yellow LED's on.

groc(); //Activate yellow function.

stop(); //Activate stop function.

groc();

stop();

groc();

stop();

groc();

stop();

groc();

stop();

groc();

stop();

groc();

stop();

groc();

stop();

Serial.println(String("0,15 - 0,25 mg/l = ") + valor_alcohol); // Print the sensor value on the screen and the mg/l.

delay (5000); //Wait.

}

else if (valor_alcohol <= limit3) { //If the alcohol value is <= than limit3, turn the violet LED's on.

violeta(); //Activate violet function.

stop(); //Activate stop function.

violeta();

stop();

violeta();

stop();

violeta();

stop();

violeta();

stop();

violeta();

stop();

violeta();

stop();

violeta();

stop();

violeta();

stop();

Serial.println(String("0,25 - 0,5 mg/l = ") + valor_alcohol); // Print the sensor value on the screen and the mg/l.

delay (5000);

}

else if (valor_alcohol <= limit4) { //If the alcohol value is <= than limit4, turn the red LED's on.

red1(); //Activate red function.

stop(); //Activate stop function.

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

red1();

stop();

Serial.println(String("0,5 - 0,6 mg/l = ") + valor_alcohol); // Print the sensor value on the screen and the mg/l.

delay (5000);

}

else if (valor_alcohol > limit4) { //If the alcohol value is > than limit4, turn the crazy LED's on.

crazy(); //Activate crazy function.

stop(); //Activate stop function.

crazy1(); //Activate crazy1 function.

stop();

crazy();

stop();

crazy1();

stop();

crazy();

stop();

crazy1();

stop();

crazy();

stop();

crazy1();

stop();

crazy();

stop();

crazy1();

stop();

crazy();

stop();

crazy1();

stop();

crazy();

stop();

Serial.println(String("+ 0,6 mg/l = ") + valor_alcohol); // Print the sensor value on the screen and the mg/l.

delay (5000);

}

}

void stop() { //Function that turn off the LED's.

digitalWrite(13, 0);

digitalWrite(12, 0);

digitalWrite(11, 0);

delay(0);

digitalWrite(8, 0);

digitalWrite(9, 0);

digitalWrite(10, 0);

delay(0);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 0);

delay(0);

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

delay(0);

digitalWrite(A3, 0);

digitalWrite(A2, 0);

digitalWrite(A1, 0);

delay(100);

}

void blanc () { //Function that turn on the LED's withe

digitalWrite(13, 255);

digitalWrite(12, 255);

digitalWrite(11, 255);

delay(1200);

digitalWrite(8, 255);

digitalWrite(9, 255);

digitalWrite(10, 255);

delay(1200);

digitalWrite(5, 255);

digitalWrite(6, 255);

digitalWrite(7, 255);

delay(1200);

digitalWrite(2, 255);

digitalWrite(3, 255);

digitalWrite(4, 255);

delay(1200);

digitalWrite(A3, 255);

digitalWrite(A2, 255);

digitalWrite(A1, 255);

delay(1200);

}

void verd () { //Function that turn on the LED's green

digitalWrite(13, 0);

digitalWrite(12, 255);

digitalWrite(11, 0);

delay(0);

digitalWrite(8, 0);

digitalWrite(9, 255);

digitalWrite(10, 0);

delay(0);

digitalWrite(5, 0);

digitalWrite(6, 255);

digitalWrite(7, 0);

delay(0);

digitalWrite(2, 0);

digitalWrite(3, 255);

digitalWrite(4, 0);

delay(0);

digitalWrite(A3, 0);

digitalWrite(A2, 255);

digitalWrite(A1, 0);

delay(500);

}

void groc() { //Function that turn on the LED's yellow

digitalWrite(13, 0);

digitalWrite(12, 255);

digitalWrite(11, 255);

delay(0);

digitalWrite(8, 255);

digitalWrite(9, 255);

digitalWrite(10, 0);

delay(0);

digitalWrite(5, 255);

digitalWrite(6, 255);

digitalWrite(7, 0);

delay(0);

digitalWrite(2, 255);

digitalWrite(3, 255);

digitalWrite(4, 0);

delay(0);

digitalWrite(A3, 255);

digitalWrite(A2, 255);

digitalWrite(A1, 0);

delay(500);

}

void violeta () { //Function that turn on the LED's violet

digitalWrite(13, 255);

digitalWrite(12, 0);

digitalWrite(11, 1);

delay(0);

digitalWrite(8, 255);

digitalWrite(9, 0);

digitalWrite(10, 1);

delay(0);

digitalWrite(5, 255);

digitalWrite(6, 0);

digitalWrite(7, 1);

delay(0);

digitalWrite(2, 255);

digitalWrite(3, 0);

digitalWrite(4, 1);

delay(0);

digitalWrite(A3, 255);

digitalWrite(A2, 0);

digitalWrite(A1, 1);

delay(500);

}

void red1 () { //Function that turn on the LED's red

digitalWrite(13, 0);

digitalWrite(12, 0);

digitalWrite(11, 255);

delay(0);

digitalWrite(8, 255);

digitalWrite(9, 0);

digitalWrite(10, 0);

delay(0);

digitalWrite(5, 255);

digitalWrite(6, 0);

digitalWrite(7, 0);

delay(0);

digitalWrite(2, 255);

digitalWrite(3, 0);

digitalWrite(4, 0);

delay(0);

digitalWrite(A3, 255);

digitalWrite(A2, 0);

digitalWrite(A1, 0);

delay(500);

}

void crazy () { //Function that turn on the LED's randomly and in different colors

randNumber = random(0, 255);

digitalWrite(13, randNumber);

digitalWrite(12, 0);

digitalWrite(11, randNumber);

delay(20);

digitalWrite(8, 0);

digitalWrite(9, randNumber);

digitalWrite(10, randNumber);

delay(20);

digitalWrite(2, randNumber);

digitalWrite(3, 0);

digitalWrite(4, 0);

delay(20);

digitalWrite(5, randNumber);

digitalWrite(6, randNumber);

digitalWrite(7, 0);

delay(20);

digitalWrite(A3, randNumber);

digitalWrite(A2, 0);

digitalWrite(A1, 0);

delay(20);

}

void crazy1 () { //Function that turn on the LED's randomly and in different colors

randNumber = random(0, 255);

digitalWrite(8, randNumber);

digitalWrite(9, 0);

digitalWrite(19, randNumber);

delay(20);

digitalWrite(A3, 0);

digitalWrite(A2, randNumber);

digitalWrite(A1, randNumber);

delay(20);

digitalWrite(13, randNumber);

digitalWrite(12, randNumber);

digitalWrite(11, 0);

delay(20);

digitalWrite(5, 0);

digitalWrite(6, randNumber);

digitalWrite(7, 0);

delay(20);

digitalWrite(2, randNumber);

digitalWrite(3, 0);

digitalWrite(4, randNumber);

delay(20);

}

Step 4: CREATE THE PROTOYIPE

To carry out the prototype, first of all, we first buy alginate to create the mold and silicone and catalyst for hands. It must be applied 5g of catalyst for every 100g of silicone. Alginate is poured into a cylindrical container and we put our hands inside to create the shape of the mold. For getting our hands out, we have had to wait until the alginate has dried and it is completely compact, approximately 30 minutes.

Once we have the mold, the silicon mixture is poured into the mold little by little so bubbles are not created and we waited for it to dry completely.

For giving a more realistic finish, we used makeup to cover the hands.

Once the hands were made, we made a small hole in a finger of the left hand, where the MQ3 sensor is placed. Also, we made a rectangular cut on the other arm where we incorporated the LED display.

Finally, we build a double bottom base, on the top we place our hands and on the part that we can't see we placed the protoboard.

Step 5: CONCLUSION

After carrying out this project, we have been able to understand in depth the knowledge acquired in the subject “Academic Uses and Specific Terminology in English”.

Carrying out this project has allowed us to go beyond our knowledge. We have entered a bit in the world of cyborgs, with the aim of understanding their operation and limitations. We have carried out the creation of a system that is incorporated directly into the human body, which has meant a completely new issue for us.

Be the First to Share

    Recommendations

    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    Discussions