dudelab
Published © MIT

Air Quality Monitoring Made Easy: An IoT Project with ESP32

This project demonstrates a practical approach to air quality monitoring using affordable hardware and MQTT for data transmission.

IntermediateShowcase (no instructions)6 hours2,927
Air Quality Monitoring Made Easy: An IoT Project with ESP32

Things used in this project

Story

Read more

Code

Arduino IDE program

C/C++
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
#include <MQUnifiedsensor.h>

// Replace with your WiFi credentials and MQTT broker details
const char* ssid = "your_WiFi_SSID";
const char* password = "your_WiFi_password";
const char* mqtt_server = "your_MQTT_broker_address";

// Define sensor pins and variables
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

MQUnifiedsensor mq135(board, A0, "MQ-135"); // Adjust board type and analog pin if needed

// CO2 sensor object (adjust library and pin configuration if using a different sensor)
MH_Z19B mhz19b;

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  // Initialize serial, WiFi, MQTT, sensors
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  client.setServer(mqtt_server, 1883);
  dht.begin();
  mq135.setRegressionMethod(1); // Set regression method for air quality sensor
  mhz19b.begin(); // Initialize CO2 sensor
}

void loop() {
  // Connect to WiFi and MQTT broker
  reconnect();
  client.loop();

  // Read sensor values
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  float airQuality = mq135.readSensor();
  int co2Level = mhz19b.getCO2();

  // Publish sensor data to MQTT topics
  client.publish("sensor/temperature", String(temperature).c_str());
  client.publish("sensor/humidity", String(humidity).c_str());
  client.publish("sensor/airquality", String(airQuality).c_str());
  client.publish("sensor/co2", String(co2Level).c_str());

  delay(5000); // Delay between readings
}

void reconnect() {
  while (!client.connected()) {
    // Attempt to connect to MQTT broker
  }
}

Credits

dudelab
1 project • 0 followers
Do what you love
Contact

Comments

Please log in or sign up to comment.