 #define PINO_BUZZER 10
 #define PINO_SENSOR_MOV 3
 #define PINO_LED_ALARME 7
+#define INTERRUPCAO_ALARME 1
+
 #define DELAY_SONORO 500
 #define FREQ_BUZZER 1500
+#define ALARME_ACIONADO 1
+#define ALARME_DESATIVADO 2
+#define ALARME_ATIVADO 0
+
 #define TP_ALARME_STATUS "casa/alarme/status"
 
-boolean alarme_disparado = false;
+volatile int status_alarme = ALARME_ATIVADO;
 
 
 void setup() {

  pinMode(PINO_SENSOR_MOV, INPUT);
  pinMode(PINO_LED_ALARME, OUTPUT);
  pinMode(PINO_BUZZER, OUTPUT);
}

void acionar_alarme() {
  if (!alarme_disparado) {
    client.publish(TP_ALARME_STATUS, "1");
    alarme_disparado = true;
    digitalWrite(PINO_LED_ALARME, HIGH);
  } else {
    digitalWrite(PINO_LED_ALARME, LOW);
  }
}

void verificar_movimento() {  
  Serial.println(digitalRead(PINO_SENSOR_MOV));
  if (digitalRead(PINO_SENSOR_MOV) == HIGH) {
    acionar_alarme();
  }
}




  // Setup da funcionalidade 03
  setup_alarme();
  MsTimer2::start();
  pinMode(PINO_LED_SETUP_OK, OUTPUT);
}

void loop() {
