#include <WiFi.h>
#include <PubSubCliente.h>
const char* ssid = "Woki-GUEST";
const char* senha = "";
const char * mqttServer = "mqtt-dashboard.com";
const int mqttPort = 1883;
const char* mqttClientID = "ESP32_Button_Client";
const char* mqttTopicPublish = "esp/32/button/press";
wifiClient espClient;]
PubSubClient mqttClient(espClient);
const int buttonPin = 4;
bool lastButtonState = HIGH;
bool buttonState = HIGH;
bool ledState = false;
void connectToWiFi() {
Wifi.begin(ssid, senha);
while (Wifi.status() != WL_CONNECTED) {
delay(500);
Serial.print("-");
}
Serial.println(("\nWifi conectado! IP: " + Wifi.localIP().toString));
}
void connectToMQTT() {
mqttClient.setServer(mqttServer, mqttPort);
while (!mqttClient.connected()) {
Serial.println("Conectado ao MQTT...");
if (mqttClient.connect(mqttClientID)) {
Serial.println("Conectado ao MQTT!");
} else{
Serial.println("Falha na conexão. Código de erro: ");
Serial.println((mqttClient.state());
delay(2000);
}
}
}
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
connectyToWifi();
connectToMQTT();
}
void loop() {
if (!mqttClient.connected()) {
connectToMQTT();
}
mqttClient.loop();
buttonState = digitalRead(buttonPin);
if (lastButtonState == HIGH && buttonState == LOW) {
// Alterar o estado do LED
ledState = !ledState;
if (ledState) {
mqttClient.publish(mqttTopicPublish, "LED_ON");
Serial.println("Botão pressionado . LED ON.");
} else{
mqttClient.publish(mqttTopicPublish, "LED_OFF");
Serial.println("Botão pressionado. LED OFF.");
}
delay(300);
}
lastButtonState = buttonState;