#include <WiFi.h>
#include <PubSubClient.h> //MQTT
#define MQTT_SERVER "broker.hivemq.com"
#define MQTT_PORT 1883
#define MQTT_USERNAME "fsdf45reert"
#define MQTT_PASSWORD "orrs23d5tff"
#define MQTT_NAME "dfgsfdsg"
const char*topic = "erowtq22";
WiFiClient client;
PubSubClient mqtt(client);
const char*WIFI_NAME = "Wokwi-GUEST";
const char*WIFI_PASS = "";
#define led1 5
#define led2 4
#include <DHTesp.h>
DHTesp sensor;
DHTesp sensor1;
#define sensorPin 15
float t,h; //t=temperature, h=humidity
unsigned long pTime; //timer
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
sensor.setup(sensorPin,DHTesp::DHT22);
WiFi.begin(WIFI_NAME,WIFI_PASS);
while(WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print(".");
}
Serial.println("Connected!");
mqtt.setServer(MQTT_SERVER,MQTT_PORT);
mqtt.setCallback(callback);
}
void loop() {
if(mqtt.connected() == false)
{
Serial.print("MQTT connecting....");
if(mqtt.connect(MQTT_NAME,MQTT_USERNAME,MQTT_PASSWORD))
{
Serial.println("MQTT connected");
mqtt.subscribe(topic);
delay(1000);
}
else
{
Serial.println("MQTT Failed Connect");
delay(3000);
return;
}
}
else
{
mqtt.loop();
if(millis() - pTime >= 5000)
{
pTime = millis();
TempAndHumidity data = sensor.getTempAndHumidity();
t = data.temperature;
char sdata1[5];
dtostrf(t,1,2,sdata1);
mqtt.publish("teyyre23",sdata1);
h = data.humidity;
char sdata2[5];
dtostrf(h,1,2,sdata2);
mqtt.publish("uytrerty21",sdata2);
}
}
}
void callback(char*topic, byte*payload, unsigned int lenght)
{
Serial.println(topic);
String msg = "";
int i = 0;
while(i<lenght)
{
msg += (char)payload[i++];
}
Serial.println(msg);
if(msg == "ON1")
{
digitalWrite(led1,HIGH);
}
else if(msg == "OFF1")
{
digitalWrite(led1,LOW);
}
else if(msg == "ON2")
{
digitalWrite(led2,HIGH);
}
else if(msg == "OFF2")
{
digitalWrite(led2,LOW);
}
}