Код (C++): int door_sensor7 = 7; //пин для подключения геркона int door_val = 0; // переменная для хранения состояния датчика void setup() { pinMode(8, OUTPUT); // выход для светодиода pinMode(door_sensor7, INPUT); // вход для геркона delay(2000); void loop() { door_val = digitalRead(door_sensor7); //считываем значения с геркона { if (door_val == HIGH) //дверь откыта {digitalWrite(door_sensor7, LOW); { digitalWrite(8, HIGH); mySerial.println("AT+CMGS=\"+792********\""); //команда для отправки смс delay(100); mySerial.println("Door_7_open"); //отправляем текст mySerial.println((char)26); //символ завершающий передачу mySerial.println("Ok"); delay(10000);}} // Задержка на 10 секунд и снова проверка else{ digitalWrite(8, LOW);} } } Здравствуйте, подскажите как сделать так, чтобы сообщение об открытии двери (размыкание геркона) отправлялось ОДИН раз по каждому открытию (размыканию). Сделал через delay, но через каждые 10 секунд отправляется смс снова и снова пока геркон разомкнут.
сделать флаг который изменится при отправке смс и запихать его в условие. или сделать разные режимы работы, вроде установки и снятия с охраны.
Спасибо за ответ, подскажи как это сделать, про флаг я читал но ни чего не понял, там вроде с логической переменной boolean нужно сделать
Решение с флагом проще. Нужно отслеживать состояние двери. Открыли - отправили смс - взвели. Закрыли - сбросили флаг