This circuit is an air quality monitoring system that uses an ESP8266 microcontroller to read data from a DHT11 humidity and temperature sensor and an MQ-135 gas sensor. The data is displayed on a 128x64 OLED display. The system is powered by a 5V battery.
ESP8266 Custom Board
MQ-135 Gas Sensor
DHT11 Humidity and Temperature Sensor
128x64 OLED Display (I2C IIC SPI Serial)
5V Battery
#include <ESP8266WiFi.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define DHTPIN 2 // DHT11 data pin on GPIO2
#define DHTTYPE DHT11
#define MQ135_PIN A0 // MQ-135 analog output pin
#define PM_SENSOR_TX 3 // PM sensor TX pin
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(128, 64, &Wire, -1);
// Wi-Fi credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
void setup() {
Serial.begin(9600);
// Initialize sensors
dht.begin();
pinMode(MQ135_PIN, INPUT);
// Initialize OLED display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed!");
for (;;);
}
display.clearDisplay();
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to Wi-Fi...");
}
Serial.println("Wi-Fi connected!");
}
void loop() {
// Read data
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
int mq135Value = analogRead(MQ135_PIN);
// Display data on OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Air Quality Monitoring");
display.print("Temp: ");
display.print(temperature);
display.println(" C");
display.print("Humidity: ");
display.print(humidity);
display.println(" %");
display.print("Gas PPM: ");
display.println(mq135Value);
display.display();
// Send data to Serial Monitor
Serial.print("Temperature: ");
Serial.println(temperature);
Serial.print("Humidity: ");
Serial.println(humidity);
Serial.print("MQ135 Value: ");
Serial.println(mq135Value);
delay(2000); // Delay 2 seconds
}
This code initializes the DHT11 sensor, MQ-135 gas sensor, and the OLED display. It connects to a Wi-Fi network and continuously reads data from the sensors, displaying it on the OLED and sending it to the Serial Monitor.