#include <WiFi.h>
#include <PubSubClient.h>
// WiFi credentials
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// MQTT Broker information
const char* mqtt_server = "test.mosquitto.org"; //
const int mqtt_port = 1883;
const char* mqtt_user = "";
const char* mqtt_password = "";
// MQTT topics
const char *mqtt_topic = "button_press";
// Pin connected to the button
const int buttonPin = 2; // Change this according to your setup
// Variables
int lastButtonState = LOW;
// Initialize the WiFi and MQTT client
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
// Start serial communication
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("WiFi connected");
// Set up the button pin
pinMode(buttonPin, INPUT);
// Set up the MQTT client
client.setServer(mqtt_server, mqtt_port);
}
void loop() {
// Check for button press
int buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
Serial.println("Button pressed");
// Send MQTT message on button press
if (client.connect("ArduinoClient", mqtt_user, mqtt_password)) {
client.publish("/ThinkIOT/Push_Botton", "Button Pressed!@ESP32");
client.disconnect();
} else {
Serial.println("Failed to connect to MQTT");
}
}
delay(50); // Debounce delay
}
lastButtonState = buttonState;
}