#include <WiFi.h>
#include <PubSubClient.h>
#include "MQ135.h"
#include "DHT.h"
const char* mqtt_server = "broker.emqx.io";
#define PIN_MQ135 32
#define DHTPIN 27
#define DHTTYPE DHT22
MQ135 mq135_sensor = MQ135(PIN_MQ135);
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void reconnect() {
while (!client.connected()) {
if (client.connect("ESP32Client")) {
// Do nothing
} else {
delay(5000);
}
}
}
void setup() {
setup_wifi();
client.setServer(mqtt_server, 1883);
dht.begin();
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
float humi = dht.readHumidity();
float tempC = dht.readTemperature();
float ppm = mq135_sensor.getCorrectedPPM(tempC, humi);
char msg[150];
snprintf (msg, 150, "PPM: %.2f, Humidity: %.2f%%, Temperature: %.2f°C", ppm, humi, tempC);
client.publish("IoT", msg);
delay(3000);
}