#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 pinoLed = 18;
boolean estadoLed = false;
void setup(){
Serial.begin(9600);
conectarWiFi();
espClient.setInsecure();
MQTT.setServer(broker, 8883);
MQTT.setCallback(MonitorBroker);
pinMode(pinoLed, OUTPUT);
Serial.println(("Bem-vindo ao controle do LED"));
}
void loop(){
if(MQTT.connected() == false){
ConectarMQTT();
}
MQTT.loop();
}
void ConectarMQTT(){
Serial.println("Conectando ao MQTT");
if(MQTT.connect("recebe12", "ricardodias", "TesteSenai1")){
Serial.println("Conectado ao MQtt");
MQTT.subscribe("aulaLed/12/estadoLed");
MQTT.subscribe("aulaLed/12/status");
}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..!");
}
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, "aulaLed/12/estadoLed") == 0){
int estado = valor.toInt();
if(estado == 1){
digitalWrite(pinoLed, estado);
}else{
digitalWrite(pinoLed, estado);
}
}else if(strcmp(topic, "aulaLed/12/status") == 0){
Serial.println(valor);
}
}