bool alarmSent = false;   // Флаг отправки тревоги
bool systemEnabled = false; // По умолчанию система выключена

void setup() {
  Serial.begin(115200);
  pinMode(8, OUTPUT);   // Синий светодиод
  pinMode(7, INPUT);    // PIR-датчик
  pinMode(12, OUTPUT);  // Красный светодиод
  pinMode(4, INPUT_PULLUP); // Кнопка (ползунок)
}

void loop() {
  // Проверяем команды в Serial Monitor
  while (Serial.available() > 0) {
    char command = Serial.read();
    
    if (command == 'R' || command == 'r') {
      systemEnabled = !systemEnabled; // Переключаем состояние системы
      Serial.println(systemEnabled ? "Система ВКЛЮЧЕНА" : "Система ВЫКЛЮЧЕНА");
      delay(200); // Защита от дребезга
    }
  }

  if (!systemEnabled) { 
    // Если система выключена, отключаем всё
    digitalWrite(8, LOW);
    digitalWrite(12, LOW);
    return;
  }

  int motion = digitalRead(7); // Читаем PIR-датчик
  int switchState = digitalRead(4); // Читаем кнопку (ползунок)

  if (motion == HIGH) {  
    digitalWrite(8, HIGH);  // Включаем синий светодиод

    if (!alarmSent) {  // Если тревога ещё не была отправлена
      Serial.println("тревога: обнаружено движение!");
      alarmSent = true;  // Запоминаем, что уже отправили тревогу
    }

    if (switchState == HIGH) {  
      digitalWrite(12, HIGH);  // Включаем красный светодиод
    }
  } else {  
    digitalWrite(8, LOW);  // Выключаем синий светодиод
    alarmSent = false;  // Сбрасываем флаг тревоги, чтобы можно было снова отправить
  }

  if (switchState == LOW) {  
    digitalWrite(12, LOW);  // Выключаем красный светодиод
  }
}
$abcdeabcde151015202530fghijfghij