#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 botaoLiga = 18;
int botaoDesliga = 19;
boolean estadoLed = false;
int estadoAnteriorBotaoLiga = HIGH;
int estadoAnteriorBotaoDesliga = HIGH;
void setup(){
Serial.begin(9600);
conectarWiFi();
espClient.setInsecure();
MQTT.setServer(broker, 8883);
pinMode(botaoLiga, INPUT_PULLUP);
pinMode(botaoDesliga, INPUT_PULLUP);
}
void loop(){
if(MQTT.connected() == false){
ConectarMQTT();
}
MQTT.loop();
int estadoAtualBotaoLiga = digitalRead(botaoLiga);
int estadoAtualBotaoDesliga = digitalRead(botaoDesliga);
char estadoStr[10];
//Verificar se o botao foi presionado
if(estadoAtualBotaoLiga == LOW && estadoAnteriorBotaoLiga == HIGH){
Serial.println("LIGADO");
estadoLed = true;
dtostrf(estadoLed, 1, 2, estadoStr);
//converte um numero para uma cadeia de caracteres
//dtostrf(valor, largura, precisao, buffer_string)
MQTT.publish("aulaLed/12/estadoLed", estadoStr, true);
MQTT.publish("aulaLed/12/status", "LIGADO", true);
delay(50);
}else if(estadoAtualBotaoDesliga == LOW && estadoAnteriorBotaoDesliga == HIGH){
Serial.println("DESLIGA");
estadoLed = false;
dtostrf(estadoLed, 1, 2, estadoStr);
//converte um numero para uma cadeia de caracteres
//dtostrf(valor, largura, precisao, buffer_string)
MQTT.publish("aulaLed/12/estadoLed", estadoStr, true);
MQTT.publish("aulaLed/12/status", "DESLIGA", true);
delay(50);
}
}
void ConectarMQTT(){
Serial.println("Conectando ao MQTT");
if(MQTT.connect("envio12", "ricardodias", "TesteSenai1")){
Serial.println("Conectado ao MQtt");
}else {
Serial.println("Erro ao conectar!");
}
}
void conectarWiFi() {
WiFi.begin(nome_wifi, senha);
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.print("WiFi conecntado..!");
}