#include "DHTesp.h"
#include <WiFi.h>
#include <PubSubClient.h> // Implementa o protocolo MQTT
#include <WiFiClient.h> // Acesso ao WiFi
const int DHT_PIN = 15;
const char *SSID = "Wokwi-GUEST";
const char *SENHA = "";
const char *BROKER = "broker.hivemq.com";
const int PORTA = 1883;
const char *ID = "ESP01";
const LED_pin 13
WiFiClient wifi;
PubSubClient mqtt(wifi);
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
Serial.println("Tentando conectar no WiFi...");
WiFi.begin(SSID, SENHA);
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(100);
}
Serial.println("Conectado ao WiFi.");
pinMode(LED_pin, OUTPUT);
mqtt.setServer(BROKER, PORTA);
mqtt.setCallback(callback);
}
void connect(){
Serial.print("Tentando conectar no broker...");
while(!mqtt.connected()){
if(mqtt.connect(ID)){
Serial.print("Conectado ao broker.");
mqtt.subscribe("ifpb/oficina/temperatura");
}else{
Serial.print("Erro na conexão.");
delay(5000);
}
}
}
void callback(char *topico, byte *dados, int tam){
Serial.print("Mensagem recebida.");
String topico_str = String(topico);
String mensagem;
for(int i; i < tam; i++){
mensagem += (char) dados[i];
}
if(topico_stl == "ifpb/oficina/temperatura") {
if(mensagem.tofloat() >= 30){
digitalWrite(LED_pin, HIGH);
}
else{
digitalWrite(LED_pin, LOW);
}
}
}
TempAndHumidity data;
unsigned int old = millis();
unsigned int novo;
void loop() {
if(!mqtt.connected()){
connect();
}
mqtt.loop();
novo = millis();
}