Final Project Journal

Project Ideation

1- Tell us about the idea of your project. Why do you care about this? What were you inspired by? Include images and videos of similar projects

my inspiration

 I'm a curious person who needs to know how things work, as I work as an environmental specialist I deal with environmental measuring systems so I wondered how the VOCs system works inside....

First of all, let's talk about VOCs (Volatile Organic Compounds) are a large group of chemicals that are found in many products we use to build and maintain our homes. Once these chemicals are in our homes, they are released or “off-gas” into the indoor air we breathe. They may or may not be able to be smelled, and smelling is not a good indicator of health risk. 

AS Breathing VOCs can irritate the eyes, nose, and throat, can cause difficulty breathing and nausea and can damage the central nervous system and other organs. Some VOCs can cause cancer.


Common examples of VOCs that may be present in our daily lives are benzene, ethylene glycol, formaldehyde, methylene chloride, tetrachloroethylene, toluene, xylene, and 1,3-butadiene, LPG, Smoke, Alcohol, Propane, Hydrogen, Methane, and Carbon Monoxide.


MY IDEA is to make a device to sense the VOCs level in the air, warning me if the VOCs level is higher than the healthy level of parameters of the VOCs in the Environmental Affairs Agency.

Project Construction

2- Explain the CAD process of your project. How did you use the software to design your project? (List the softwares/tools/materials...etc that you used)

Software

Fusion 360 (Design)

GRABCAD

MAIN TOOL

1- CREATE (drawing the Skitch & EXTRUDE)

2- MODIFY (MOVE & COPE)

3-ASSEMBLE (JOIN & COMPONENT)

As I Learned from the pervious weeks, i start with making a component from ASSEMBLE

Starting drawing a rectangle from CREATE 

Starting drawing a T-Slot Female, By drawing Two rectangle from CREATE holding a circle in between from CREATE TOO.

Then we start to Extrude to give the material thickness From EXTRUDE we choose Join 3 mm that is the thickness of plywood 

To give the plywood appearance we choose from MODIFY physical material the appearance of wood

To upload the components inside we download it from GRABCAD As step then upload it in FUSION then insert it into the design.

Then we start to plan how to fix it on the plywood sheet so we choose from CREATE -project , then we choose the positions of the nails then From EXTRUDE we cut this holes.

Then we start to fix the breadboard AS the previous

the same for every step but here we draw multi holes by a circular pattern

In the end, to cut the final design we save it as DXF, from CREATE we choose to save DXF for laser cutting then, we choose each component and save it.

I know I'm not perfect in Documentation So IF you feel Lost get in touch with me 

3- Explain the fabrication process of your project. How did you use the machine to fabricate your project? (List the softwares/tools/materials...etc that you used)

Software 

LaserWorkV6

(LaserCut)

Machine

Morn LaserCutter (Laser Cut)

Material 

Plywood sheet 0.3*30*50 cm 

To import the Design 

From File we choose import then we choose our design as DXF.

 Then we set the speed to 30, Power 50.

 then Download the File then run it on the machine.

Project Electronics & Power Management 

4- Describe your electronic circuit. What are the input and action components? What is the function of each? How do the components integrate together to form your smart system? (List the softwares/tools/components...etc that you used)

INPUTs

VOCs Sensor QM135 

Detect the level Of VOCs

ON/OFF Switch

Turn the Circuit ON & OFF

OUTPUTs (ACTION)

RGB LED

Give (Blue & Green & Red) light

Resistor 330/220 Ohm

Protect the RGB from High Voltage

Buzzer

Make a BUZZZZ (Sound)

Essentials

USB Cable

To connect Arduino with Laptop

Arduino UNO

To Upload the Code to the Circuit

DC Adaptor 5 Volt

Source of Electricity

Wires

To connect the circuit 

BreadBoard

To connect the circuit to Arduino 

the connection between the MQ 135 with arduino

Circuit on TINKERCAD

Software

Arduino IDE

I connect the

5- What is your power source? How did you select the suitable power source for your project? (List the softwares/tools/components...etc that you used)

DC Adaptor 5 Volt

Source of Electricity

(Buzzer & RGB & MQ135 didn't need more than 5 Volt Electricity SO it is perfect to it)

Project Programming

6- Describe the code of your project. How did you program each function of the project?  

I needed Simple Code to make the Lights turn to a different color and the buzzer go on according to the readings of VOCs sensor so:

// HERE IS THE EXPLANATION OF EACH PIN 

int sensorValue;

int digitalValue;

int RED = 4;     //  unhealthy LEVEL

int GREEN = 5;   // healthy LEVEL

int BLUE = 6;  // moderate LEVEL

int BUTTON = 3;  // ON/OFF SWITCH

int BUZZER = 7;  // SOUND OF unhealthy LEVEL

void setup() {

// HERE IS DECLARING OF INPUT & OUTPUT

  Serial.begin(9600);  // sets the serial port to 9600

  pinMode(RED, OUTPUT);

  pinMode(GREEN, OUTPUT);

  pinMode(BLUE, OUTPUT);

  pinMode(BUZZER, OUTPUT);


  pinMode(BUTTON, INPUT_PULLUP);

  pinMode(2, INPUT);

}

void loop() {

  BUTTON = digitalRead(3)

  //Serial.println(BUTTON);


  //if (digitalRead(3) == LOW) {

  sensorValue = analogRead(A0);  // read analog input pin 0

  digitalValue = digitalRead(2);

  Serial.println(sensorValue, DEC);  // prints the value read

  Serial.println(digitalValue, DEC);

  Serial.print("Analog= ");

  if (digitalRead(3) == LOW) {// when I turn the switch on // HERE IS THE LOOP START WITH CHECKING IF THE BUTTON IS WORKING OR NOT

    if (sensorValue > 0 && sensorValue < 150) {// healthy level

      digitalWrite(BUZZER, LOW);

      digitalWrite(GREEN, HIGH);

      delay(100);

      digitalWrite(GREEN, LOW);

      delay(100);

    } else if (sensorValue > 151 && sensorValue < 170) { // moderate level

      digitalWrite(BUZZER, LOW);



      digitalWrite(BLUE, HIGH);

      delay(100);


      digitalWrite(BLUE, LOW);

    } else if (sensorValue > 171 && sensorValue < 400) { // unhealthy level

      digitalWrite(BUZZER, HIGH);

      delay(100);

      digitalWrite(BUZZER, LOW);


      digitalWrite(RED, HIGH);

      delay(100);

      digitalWrite(RED, LOW);

    }

    delay(100);  //Just here to slow down the output.

  } else if (BUTTON == HIGH) {// when I turn the switch OFF EVERY THING IS OFF

    digitalWrite(BUZZER, LOW);

  }

  //}

}



Project Integration & Testing 

7- Demonstrate with text and visuals how did you integrate the project’s modules together? What are the testing results? (Include a Demo video separately, showing a proof of functionality)

Connecting the circuit with the wooden box

Closing the wooden Box with nail & nuts and letting my nephews color it

stimulation on real with alcohol 

stimulation on real with lighter

Sharing & Collaboration 

8- Did you ask for feedback? What are the ideas that others have contributed or suggested? What was someone else’s idea that you built upon? How did you help your peers? How did your peers help you?

NOT YET

Overcoming Challenges 

9- When you got stuck, what/who did you turn to? At what point did you have to pause to research or learn more before moving on? What are some mistakes, pitfalls, or challenges that others can avoid if they were doing this project?

the device wasn't working even though each code piece was tested and was functional, but then instructors reviewed and we walked line by line till we found a condition was written twice (duplicated) as shown the digital read (3) is repeated 2 times, so that was confusing the components and we removed the duplicated line then everything worked


here is the wrong Code

if (digitalRead(3) == LOW) {

  sensorValue = analogRead(A0);  // read analog input pin 0

  digitalValue = digitalRead(2);

  Serial.println(sensorValue, DEC);  // prints the value read

  Serial.println(digitalValue, DEC);

  Serial.print("Analog= ");

  if (digitalRead(3) == LOW) {

    if (sensorValue > 0 && sensorValue < 150) {

      digitalWrite(BUZZER, LOW);

      digitalWrite(GREEN, HIGH);

      delay(100);

      digitalWrite(GREEN, LOW);

      delay(100);

    } else if (sensorValue > 151 && sensorValue < 170) {

      digitalWrite(BUZZER, LOW);

      digitalWrite(BLUE, HIGH);

      delay(100);


      digitalWrite(BLUE, LOW);

    } else if (sensorValue > 171 && sensorValue < 400) {

      digitalWrite(BUZZER, HIGH);

      delay(100);

      digitalWrite(BUZZER, LOW);


      digitalWrite(RED, HIGH);

      delay(100);

      digitalWrite(RED, LOW);

    }

    delay(100);  //Just here to slow down the output.

  } else if (BUTTON == HIGH) {

    digitalWrite(BUZZER, LOW);

  }

  //}

}

After Solving the Problem

//if (digitalRead(3) == LOW) {

  sensorValue = analogRead(A0);  // read analog input pin 0

  digitalValue = digitalRead(2);

  Serial.println(sensorValue, DEC);  // prints the value read

  Serial.println(digitalValue, DEC);

  Serial.print("Analog= ");

  if (digitalRead(3) == LOW) {

    if (sensorValue > 0 && sensorValue < 150) {

      digitalWrite(BUZZER, LOW);

      digitalWrite(GREEN, HIGH);

      delay(100);

      digitalWrite(GREEN, LOW);

      delay(100);

    } else if (sensorValue > 151 && sensorValue < 170) {

      digitalWrite(BUZZER, LOW);



      digitalWrite(BLUE, HIGH);

      delay(100);


      digitalWrite(BLUE, LOW);

    } else if (sensorValue > 171 && sensorValue < 400) {

      digitalWrite(BUZZER, HIGH);

      delay(100);

      digitalWrite(BUZZER, LOW);


      digitalWrite(RED, HIGH);

      delay(100);

      digitalWrite(RED, LOW);

    }

    delay(100);  //Just here to slow down the output.

  } else if (BUTTON == HIGH) {

    digitalWrite(BUZZER, LOW);

  }

  //}

}


I Got another challenge connecting RGB with resistors and Jumpers but jumpers keep Disconnecting Easily, so I decided to solder the resistors with RGB to make them all one part

unfixed RGB with resistors

RGB solder with resistors

Future Work

10- If you had more time, what is one thing you would change/ Do next in your project?

 Final Project Design Files