/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: Smart_Class_Environment
- Source Code compiled for: Arduino Uno
- Source Code created on: 2023-10-16 14:48:04
- Source Code generated by: AlexWind
********* Pleasedontcode.com **********/
/****** DEFINITION OF LIBRARIES *****/
#include
#include
#include
#include
/****** SYSTEM REQUIREMENT 1 *****/
/* Display the MQ7 and MQ135 sensor values on LCD */
/* and activate the relay when the values are high */
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t MQ135_Sensor_PushButton_PIN = 2;
const uint8_t DHT_sensor_PIN = 10;
const uint8_t MQ7_sensor_PIN = 4;
/***** DEFINITION OF DIGITAL OUTPUT PINS *****/
const uint8_t relay_PIN = 3;
/***** DEFINITION OF I2C PINS *****/
const uint8_t lcd_I2C_PIN_SDA = A4;
const uint8_t lcd_I2C_PIN_SCL = A5;
const uint8_t lcd_I2C_SLAVE_ADDRESS = 0x27;
// Initialize the LCD object with I2C address and dimensions
LiquidCrystal_I2C lcd(lcd_I2C_SLAVE_ADDRESS, 16, 2);
// Initialize the DHT object with the sensor type and pin
DHT dht(DHT_sensor_PIN, DHT11);
void setup(void)
{
// Set the input and output pin modes
pinMode(MQ135_Sensor_PushButton_PIN, INPUT_PULLUP);
pinMode(MQ7_sensor_PIN, INPUT);
pinMode(relay_PIN, OUTPUT);
// Initialize the LCD
lcd.begin(16, 2);
lcd.setBacklight(LOW); // Turn off the backlight initially
// Initialize the DHT sensor
dht.begin();
}
void loop(void)
{
// Read the sensor values
int mq7Value = analogRead(MQ7_sensor_PIN);
int mq135Value = analogRead(MQ135_Sensor_PushButton_PIN);
// Read temperature and humidity from DHT sensor
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check if DHT sensor readings are valid
if (isnan(temperature) || isnan(humidity)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DHT Read Error");
delay(2000);
return;
}
// Display the sensor values on the LCD
lcd.setCursor(0, 0);
lcd.print("MQ7: ");
lcd.print(mq7Value);
lcd.setCursor(0, 1);
lcd.print("MQ135: ");
lcd.print(mq135Value);
// Check if the sensor values are high and activate the relay
if (mq7Value > 500 || mq135Value > 500) {
digitalWrite(relay_PIN, HIGH);
} else {
digitalWrite(relay_PIN, LOW);
}
// Delay for a short period
delay(1000);
}