#include <WiFi.h>
#include <DHTesp.h>
#include <ArduinoMqttClient.h>
const int DHT_PIN = 12;
DHTesp dhtSensor;
WiFiClient wifi_client;
MqttClient mqttClient(wifi_client);
const char broker[] = "test.mosquitto.org";
int port = 1883;
const char temperature[] = "152336/temperature";
const char humidity[] = "152336/humidity";
void setup() {
Serial.begin(9600);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
if (!mqttClient.connect(broker, port)) {
Serial.print("MQTT connection failed! Error code = ");
Serial.println(mqttClient.connectError());
while (1);
}
Serial.println("You're connected to the MQTT broker!");
Serial.println();
}
void sendData(TempAndHumidity data){
mqttClient.beginMessage(temperature);
mqttClient.print(String(data.temperature, 2));
mqttClient.endMessage();
mqttClient.beginMessage(humidity);
mqttClient.print(String(data.humidity, 1));
mqttClient.endMessage();
}
void loop() {
mqttClient.poll();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
sendData(data);
delay(2000);
}