const int buttonPin1 = 0;
const int buttonPin2 = 16;
const int buttonPin3 = 5;
const int buzzerPin = 27;
unsigned long previousMillis = 0;
const long interval = 3000;  // Intervalo desejado em milissegundos (3 segundos)
boolean buzzerActive = false;

void setup() {
  // Inicialização do Serial
  Serial.begin(115200);
  Serial.println("Hello, ESP32!");

  // Configuração dos pinos dos botões como entrada
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);

  // Configuração do pino do buzzer como saída
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  // Leitura do estado dos botões
  int buttonState1 = digitalRead(buttonPin1);
  int buttonState2 = digitalRead(buttonPin2);
  int buttonState3 = digitalRead(buttonPin3);

  // Verificação se algum botão foi pressionado
  if (buttonState1 == HIGH || buttonState2 == HIGH || buttonState3 == HIGH) {
    // Imprime um sinal de alerta no Serial
    Serial.println("Botão pressionado!");

    // Ativa o buzzer para fazer um barulho
    tone(buzzerPin, 1000); // 1000 é a frequência do som
    previousMillis = millis();  // Armazena o tempo atual
    buzzerActive = true;
  }

  // Verifica se o tempo definido foi atingido
  if (buzzerActive && millis() - previousMillis >= interval) {
    noTone(buzzerPin);  // Desliga o som do buzzer após 3 segundos
    buzzerActive = false;
  }

  // Coloque aqui qualquer outra lógica do loop principal, se necessário
  delay(10); // Isso acelera a simulação
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
bz1:1
bz1:2