#include <DHT.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <PubSubClient.h>
String nome_wifi = "Wokwi-GUEST";
String senha = "";
WiFiClientSecure espClient;
PubSubClient MQTT(espClient);
char* broker = "9d19cc700cc44018b16cc529b323fc9d.s1.eu.hivemq.cloud";
int ledverde = 23;
int ledvermelho = 22;
float temperatura = 0;
void setup() {
Serial.begin(9600);
conectarWifi();
espClient.setInsecure();
MQTT.setServer(broker, 8883);
MQTT.setCallback(MonitorBroker);
pinMode(ledverde, OUTPUT);
pinMode(ledvermelho, OUTPUT);
}
void loop() {
if(MQTT.connected() == false){
ConectarMQTT();
}
MQTT.loop();
Serial.println(temperatura);
if(temperatura >= 30){
digitalWrite(ledvermelho, HIGH);
digitalWrite(ledverde, LOW);
}else{
digitalWrite(ledvermelho, LOW);
digitalWrite(ledverde, HIGH);
}
}
void MonitorBroker(char* topic, byte* payload, unsigned int length){
String valor = "";
for(int i = 0; i < length; i++){
valor += (char)payload[i];
}
if(strcmp(topic, "aula/10/temperatura") == 0){
temperatura == valor.toFloat();
}
}
void ConectarMQTT(){
Serial.print("Conectando ao MQTT...");
if(MQTT.connect("Aluno10", "ricardodias", "TesteSenai1")){
Serial.println("Conectado");
MQTT.subscribe("aula/10/temperatura");
}else{
Serial.println("erro ao conectar!");
}
}
void conectarWifi(){
//Inicia a conexao WIFI passando como parametro nome e senha da rede
WiFi.begin(nome_wifi, senha);
Serial.print("Conectando");
Serial.println(nome_wifi);
while(WiFi.status() != WL_CONNECTED ){
Serial.print(".");
delay(500);
}
Serial.print("Wifi conectado! Ip obtido");
//Exibir o ip no monitor
Serial.println(WiFi.localIP());
}