/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include <PubSubClient.h>
#include <WiFiManager.h>
WiFiClient espClient;
PubSubClient mqttClient(espClient);
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define WIFI_CHANNEL 6
int dely;
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
digitalWrite(LED_BUILTIN,LOW);
WiFi.mode(WIFI_STA);
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
Serial.print("Connecting to WiFi ");
Serial.print(WIFI_SSID);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
mqttClient.setServer("test.mosquitto.org",1883);
mqttClient.setCallback(receiveCallback);
}
void loop() {
if (!mqttClient.connected()){
connectToBroker();
}
mqttClient.loop();
delay(1000);
if (dely){
digitalWrite(LED_BUILTIN,HIGH);
delay(dely);
digitalWrite(LED_BUILTIN,LOW);
delay(dely);
}
}
void connectToBroker(){
while (!mqttClient.connected()){
Serial.println("Attempting MQTT Connection");
if (mqttClient.connect("ESP-8266-180675")){
Serial.println("Connected");
mqttClient.subscribe("ENTC-180675");
}else{
Serial.print("Failed");
Serial.print(mqttClient.state());
delay(5000);
}
Serial.println("");
}
}
void receiveCallback(char* topic,byte* payload, unsigned int length){
String msg;
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("]");
for (int i =0; i<length; i++){
msg += (char)payload[i];
}
Serial.println(msg);
dely = 5000 - 45* msg.toInt();
}