Info Box

About: I build projects based around arduino. Colossians 3:17 John 3:16 plz look them up and read them it will change your life!?

This box is capable of displaying: temperature, relative humidity, distance (in centimeters and inches), and gas values such as (smoke, butane, and co). Using only an arduino uno.
Any questions or comments will be responded to.

Supplies:

Parts List

(1) arduino uno

(2)breadboard

(3)jumper wires

(4) 220 resistors 2x

(5) leds 2x (green and red)

(6)lcd screen 16x2 with I2C backpack

(7)dht11 humidity sensor

(8)MQ-2 Gas sensor

(9)Ultrasonic distance sensor

Step 1: The Circuit

Second step is putting together the circuit. See diagram.

Step 2: Setting Up the Code

For the last step you need to copy and paste the code into the arduino IDE
and run the code.

Note: you may need to install additional libraries.

#include
#include
#include
#include

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int pinDHT11 = 6;
SimpleDHT11 dht11;
const int buttonPin = 3;
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm, distanceInch;
int Analog_Input = A0;
int lpg, co, smoke;
MQ2 mq2(Analog_Input);


int redLed = 4;
int greenLed = 3;


void setup() {

lcd.begin(16,2);
lcd.clear();
lcd.print("Starting Up In:3");
delay(1000);
lcd.clear();
lcd.print("Starting Up In:2");
delay(1000);
lcd.clear();
lcd.print("Starting Up In:1");
delay(1000);
lcd.clear();


pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);

lcd.backlight();
mq2.begin();

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}

void loop() {

// Create variables for DHT sensor output.
byte temperature = 0;
byte humidity = 0;

// Read sensor data and store results
// in temperature/humidity variables
dht11.read(pinDHT11, &temperature, &humidity, NULL);

// Print first line to LCD
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(round(temperature));
lcd.print("C / ");
lcd.print(round(temperature * 1.8 + 32));
lcd.print("F "); // two extra spaces in case temps drop to single digits

// Print second line to LCD
lcd.setCursor(0,1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print("% "); // extra space in case humidity drops to single digit

// Delay 1 second because DHT11 sampling rate is 1HZ.
delay(2000);
lcd.clear();



digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
distanceInch = duration*0.0133/2;

lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("Distance: "); // Prints string "Distance" on the LCD
lcd.print(distanceCm); // Prints the distance value from the sensor
lcd.print("cm");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance: ");
lcd.print(distanceInch);
lcd.print("inch");
delay(2000);
lcd.clear();



float* values= mq2.read(false); //set it false if you don't want to print the values in the Serial
//lpg = values[0];
lpg = mq2.readLPG();
//co = values[1];
co = mq2.readCO();
//smoke = values[2];
smoke = mq2.readSmoke();
lcd.setCursor(0,0);
lcd.print("LPG:");
lcd.print(lpg);
lcd.print(" CO:");
lcd.print(co);
lcd.setCursor(0,1);
lcd.print("SMOKE:");
lcd.print(smoke);
lcd.print(" PPM");
delay(2000);
lcd.clear();

if (co > 69)
{
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);

} else {
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);

}

}

Sensors Contest

This is an entry in the
Sensors Contest

Share

    Recommendations

    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest
    • Stone Concrete and Cement Contest

      Stone Concrete and Cement Contest
    • Planter Challenge

      Planter Challenge

    Discussions

    0
    None
    seamster

    20 days ago

    Thanks for sharing! : )