Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino-Based Air Quality Monitoring System with Multiple Gas Sensors and GSM Module

Image of Arduino-Based Air Quality Monitoring System with Multiple Gas Sensors and GSM Module

Circuit Documentation

Summary

This circuit is designed to monitor air quality using various gas sensors and a humidity/temperature sensor. The data collected from these sensors is processed by an Arduino UNO microcontroller, which then outputs the readings via serial communication. Additionally, a SIM800L module is included for potential GSM communication capabilities.

Component List

  1. MQ-7 Breakout

    • Description: Carbon Monoxide (CO) sensor
    • Pins: VCC, GND, DO, AO
  2. Arduino UNO

    • Description: Microcontroller board based on the ATmega328P
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  3. MQ131

    • Description: Ozone (O3) sensor
    • Pins: GND, AOUT, DOUT, VCC
  4. MKE-S09 MQ-135 Air Quality Sensor

    • Description: Air quality sensor for detecting various gases
    • Pins: GND, 5V, SIG
  5. SIM800L

    • Description: GSM/GPRS module for communication
    • Pins: NFT, RING, VCC, DTR, RST, MIC +, RXD, MIC-, TXD, SPK+, GND, SPK-
  6. DHT11 Humidity and Temperature Sensor

    • Description: Sensor for measuring humidity and temperature
    • Pins: VDD, DATA, NULL, GND
  7. Battery 12V

    • Description: Power source
    • Pins: +, -

Wiring Details

MQ-7 Breakout

  • VCC connected to Arduino UNO 5V
  • GND connected to Arduino UNO GND
  • AO connected to Arduino UNO A2

Arduino UNO

  • UNUSED connected to DHT11 Humidity and Temperature Sensor NULL
  • IOREF connected to Battery 12V +
  • 3.3V connected to SIM800L VCC
  • 5V connected to:
    • DHT11 Humidity and Temperature Sensor VDD
    • MKE-S09 MQ-135 Air Quality Sensor 5V
    • MQ131 VCC
    • MQ-7 Breakout VCC
  • GND connected to:
    • DHT11 Humidity and Temperature Sensor GND
    • MKE-S09 MQ-135 Air Quality Sensor GND
    • MQ131 GND
    • MQ-7 Breakout GND
    • SIM800L GND
    • Battery 12V -
  • A0 connected to MQ131 AOUT
  • A1 connected to MKE-S09 MQ-135 Air Quality Sensor SIG
  • A2 connected to MQ-7 Breakout AO
  • D2 connected to DHT11 Humidity and Temperature Sensor DATA
  • D8 connected to SIM800L RST
  • D9 connected to SIM800L TXD

MQ131

  • GND connected to Arduino UNO GND
  • AOUT connected to Arduino UNO A0
  • VCC connected to Arduino UNO 5V

MKE-S09 MQ-135 Air Quality Sensor

  • GND connected to Arduino UNO GND
  • 5V connected to Arduino UNO 5V
  • SIG connected to Arduino UNO A1

SIM800L

  • VCC connected to Arduino UNO 3.3V
  • GND connected to Arduino UNO GND
  • RST connected to Arduino UNO D8
  • TXD connected to Arduino UNO D9

DHT11 Humidity and Temperature Sensor

  • VDD connected to Arduino UNO 5V
  • DATA connected to Arduino UNO D2
  • NULL connected to Arduino UNO UNUSED
  • GND connected to Arduino UNO GND

Battery 12V

  • + connected to Arduino UNO IOREF
  • - connected to Arduino UNO GND

Code Documentation

Arduino UNO Code

int mq131Pin = A0;  // MQ131 connected to A0
int mq135Pin = A1;  // MQ135 connected to A1
int mq7Pin = A2;    // MQ7 connected to A2

void setup() {
  Serial.begin(9600);
}

void loop() {
  int mq131Value = analogRead(mq131Pin);  // Read value from MQ131
  int mq135Value = analogRead(mq135Pin);  // Read value from MQ135
  int mq7Value = analogRead(mq7Pin);      // Read value from MQ7

  Serial.print("MQ131 (Ozone): ");
  Serial.println(mq131Value);
  Serial.print("MQ135 (Air Quality): ");
  Serial.println(mq135Value);
  Serial.print("MQ7 (CO): ");
  Serial.println(mq7Value);

  delay(1000);  // Delay for readability
}

This code initializes the analog pins connected to the MQ131, MQ135, and MQ7 sensors. In the setup function, the serial communication is started. The loop function reads the sensor values and prints them to the serial monitor every second.