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
Action: sound, flashlight
Green light (normal VOCs level)
Red light (high level of VOCs) and BUZZ Sound
Blue light (moderate VOCs level)
Sensing: VOC (Volatile Organic conc) Sensor
User Input: air
the connection between the MQ 135 with arduino
Circuit on TINKERCAD
Software
Arduino IDE
I connect the
+ve wire of RGB LED (RED = PIN 4"unhealthy",GREEN = PIN 5"healthy",BLUE = PIN 6"moderat")
-ve wire of RGB LED to PIN GND on a GND of Breadboard, (Each LED PIN attach to resistor 220 ohm)
+ve wire of Buzzer to PIN 7 & -ve wire of Buzzer to PIN GND on a GND of Breadboard,
Terminal of Button to PIN 3 &the other terminal of Button to PIN GND on a GND of Breadboard,
GND of Breadboard to a GND of Arduino.
I connect the MQ 135 sensor, VCC connects to the 5v pin& GND is connected to a GND of Arduino & DO connect To digital PIN 2 & Analog PIN A0.
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?
reading of the value of the VOCs Level on the Screen.
sending sms to phone by Bluetooth.