#include <WiFi.h>
#include <PubSubClient.h>
#define BSW1 9 // Bell Switch 1
#define BSW2 7 // Bell Switch 2
#define BSW3 6 // Bell Switch 3
#define BSW4 4 // Bell Switch 4
#define DRL0 1 // Door Relay 0
#define LED0 LED_BUILTIN // GPIO8 on C3
volatile uint8_t sw_flag = 0;
#define DevID "ESP32C3-MasterSW"
const char* WiFiSSID = "Wokwi-GUEST";
const char* password = "";
const char* mqttServer = "broker.hivemq.com";
const uint16_t mqttPort = 1883;
//const char* mqttUser = "MQTT_USER";
//const char* mqttPw = "MQTT_PW";
const char* mqttID = DevID;
const char* DoorRL = "teste-sw/DoorBell/DoorRL";
const char* BellSW = "teste-sw/DoorBell/BellSW";
WiFiClient tcpSocket;
PubSubClient broker(tcpSocket);
void setup() {
Serial.begin(9600);
Serial.print("Connecting");
WiFi.begin(WiFiSSID, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WIFI: " + String(WiFiSSID));
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
broker.setServer(mqttServer, mqttPort);
broker.setCallback(mqttCallback); //
pinMode(BSW1, INPUT_PULLUP);
pinMode(BSW2, INPUT_PULLUP);
pinMode(BSW3, INPUT_PULLUP);
pinMode(BSW4, INPUT_PULLUP);
pinMode(DRL0, OUTPUT);
pinMode(LED0, OUTPUT);
digitalWrite(DRL0, LOW);
digitalWrite(LED0, LOW);
attachInterrupt(digitalPinToInterrupt(BSW1), ISRflag1, RISING);
attachInterrupt(digitalPinToInterrupt(BSW2), ISRflag2, RISING);
attachInterrupt(digitalPinToInterrupt(BSW3), ISRflag3, RISING);
attachInterrupt(digitalPinToInterrupt(BSW4), ISRflag4, RISING);
}
void loop() {
if (!broker.connected())
reconnect();
broker.loop();
mqttHandle();
/*
flagCall(0);
flagCall(1);
flagCall(2);
flagCall(3);
*/
}