Сигнализация для гаража.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Сигнализация для гаража, новичок в работе с ардуино. Не получается подвязать 2 задачи.

1. Реле зарядки подключить не получается (12), чтобы работало час через 48 часов (условно).

2. Чтобы при открытие двери (А0), сигнал на реле сирены и телефона шел через 60 секунд, чтоб было время для отклчения.

int LedV = 13; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки


void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT);
  pinMode(Butt13, INPUT);
  digitalWrite(Butt12, 1);
  digitalWrite(Butt13, 1);
  
}

void loop() {

  if (digitalRead(Butt12) == 0 && Timer == 0) { //если таймер не взведен и кнопка нажата
  
    Timer = millis() + Waiting12; // то взводим таймер
    digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле
  }
  if (digitalRead(Butt13) == 0 && Timer == 0) { //если таймер не взведен и кнопка нажата
    Timer = millis() + Waiting13; // то взводим таймер
    digitalWrite(LedV, 1); //и активируем диод
    digitalWrite(LedX, 1); //и активируем реле
  }
   if (Timer <= millis() && Timer != 0) { //если таймер был взведен и текущее время его превысило
    digitalWrite(LedV, 0); // то тушим свет
    digitalWrite(LedX, 0); // откл
        Timer = 0; //

  }

}

Принцип работы такой, при открытие ворот(А1) или двери (А0). При открытие двери А0 идет задержка в 60 секнунд для того чтобы отключить питания, если не отклить то срабатывает реле сирены и реле для телефона(быстрый набор моего номера). И пока установленное время не пройдет то будет работать. В случае с открытием ворот сразу срабатыет без задержки.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Купи для начала огнетушитель.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Gvozdkov Aleksey пишет:

Принцип работы такой, при открытие ворот(А1) или двери (А0). При открытие двери А0 идет задержка в 60 секнунд для того чтобы отключить питания, если не отклить то срабатывает реле сирены и реле для телефона(быстрый набор моего номера). И пока установленное время не пройдет то будет работать. В случае с открытием ворот сразу срабатыет без задержки.

Ну, так и напишите. Что мешает? Неясно в чём проблема.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ЕвгенийП пишет:

Gvozdkov Aleksey пишет:

Принцип работы такой, при открытие ворот(А1) или двери (А0). При открытие двери А0 идет задержка в 60 секнунд для того чтобы отключить питания, если не отклить то срабатывает реле сирены и реле для телефона(быстрый набор моего номера). И пока установленное время не пройдет то будет работать. В случае с открытием ворот сразу срабатыет без задержки.

Ну, так и напишите. Что мешает? Неясно в чём проблема.


Проблема в том что, не получается написать рабочий скетч. Код не работает в конечном итоге. Если бы смог написать, то не спрашивал... Спасибо за уделённое время.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

-NMi- пишет:
Купи для начала огнетушитель.

Спасибо за совет, учту...
Лучше бы подсказал как задержку сделать с 60 секунд.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

легко!
для этого создаём виртуальный датчик, к примеру d_t
реле срабатывает ЕСЛИ сработал датчик ворот ИЛИ виртуальный датчик d_t
при срабатывании датчика дверей взводишь переменную к примеру old_m
далее если (миллис - old_m > 60000 И  не !выключатель сигнализации ) d_t =1

Всё

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ua6em пишет:

легко!
для этого создаём виртуальный датчик, к примеру d_t
реле срабатывает ЕСЛИ сработал датчик ворот ИЛИ виртуальный датчик d_t
при срабатывании датчика дверей взводишь переменную к примеру old_m
далее если (миллис - old_m > 60000 И  не !выключатель сигнализации ) d_t =1

Всё


Спасибо за полезный совет. Вечером буду пробовать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Gvozdkov Aleksey пишет:
Проблема в том что, не получается написать рабочий скетч.

А Вы и не пробовали. По крайней мере, нам не показываете свои пробы.

Но В любом случае, Вы не поняли моей фразы. Попробую пояснить.

Её нужно понимать буквально. Пишите точно так, как Вы пишете словами, только латинскими буквами. И каждое нетривиальное действие, которое Вы написали, оформляйте функцией, которые получатся тривиальными. . Тогда у Вас будет код, который Вы сами понимаете, а не та мешанина, что Вы нам тут показывал. Вы должны думать и писать в терминах своей задачи, а не непонятными Вам инструкциями в которых Вы постоянно путаетесь.

Начните вот с этого сообщения, там (и далее) подробно расписано, как такие вещи делаются.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Gvozdkov Aleksey пишет:
ua6em пишет:

легко!
для этого создаём виртуальный датчик, к примеру d_t
реле срабатывает ЕСЛИ сработал датчик ворот ИЛИ виртуальный датчик d_t
при срабатывании датчика дверей взводишь переменную к примеру old_m
далее если (миллис - old_m > 60000 И  не !выключатель сигнализации ) d_t =1

Всё

Спасибо за полезный совет. Вечером буду пробовать.

Лови!
 

//int LedV = 13; // реле сирены
int LedV = LED_BUILTIN; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки
bool flag_a0 = LOW;
bool flag_a1 = LOW;
unsigned long Zaderzhka = 60000;

void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT_PULLUP);
  pinMode(Butt13, INPUT_PULLUP);

  Timer = millis();                          // задержка на включение
  while (millis() - Timer <= Zaderzhka * 2); // сигнализации (2 минуты)

  // здесь бы зуммером пропищать, что встали на сигнализацию
  digitalWrite(LedV, HIGH); // активируем реле
  delay(1000);
  digitalWrite(LedV, LOW); // выключаем реле
}

void readButtons() {
  if (!digitalRead(Butt12) && !flag_a0) {
    flag_a0 = HIGH;
    Timer = millis();
  }
  if (!digitalRead(Butt13) && !flag_a1) flag_a1 = HIGH;
}

void loop() {
  readButtons();

  if ((flag_a0 && millis() - Timer >= Zaderzhka) || flag_a1) {
    digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле
  }
}

 

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Спасибо за проделанную работу. Я сначало скетч не увидел, по твоим сломал пробывал, не получалось, завис... А потом увидел, что снизу прикреплен код... Все супер, ты его переделал, проще сделал. Но есть проблема, при включении сигнализации "тревоги" они работает бесконечно получается, хотя время отключения стоит. Сможешь помочь с этой проблемой?

unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки

 

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ua6em пишет:

Gvozdkov Aleksey пишет:
ua6em пишет:

легко!
для этого создаём виртуальный датчик, к примеру d_t
реле срабатывает ЕСЛИ сработал датчик ворот ИЛИ виртуальный датчик d_t
при срабатывании датчика дверей взводишь переменную к примеру old_m
далее если (миллис - old_m > 60000 И  не !выключатель сигнализации ) d_t =1

Всё

Спасибо за полезный совет. Вечером буду пробовать.

Лови!
 

//int LedV = 13; // реле сирены
int LedV = LED_BUILTIN; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки
bool flag_a0 = LOW;
bool flag_a1 = LOW;
unsigned long Zaderzhka = 60000;

void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT_PULLUP);
  pinMode(Butt13, INPUT_PULLUP);

  Timer = millis();                          // задержка на включение
  while (millis() - Timer <= Zaderzhka * 2); // сигнализации (2 минуты)

  // здесь бы зуммером пропищать, что встали на сигнализацию
  digitalWrite(LedV, HIGH); // активируем реле
  delay(1000);
  digitalWrite(LedV, LOW); // выключаем реле
}

void readButtons() {
  if (!digitalRead(Butt12) && !flag_a0) {
    flag_a0 = HIGH;
    Timer = millis();
  }
  if (!digitalRead(Butt13) && !flag_a1) flag_a1 = HIGH;
}

void loop() {
  readButtons();

  if ((flag_a0 && millis() - Timer >= Zaderzhka) || flag_a1) {
    digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле
  }
}

 

Спасибо за проделанную работу. Я сначало скетч не увидел, по твоим сломал пробывал, не получалось, завис... А потом увидел, что снизу прикреплен код... Все супер, ты его переделал, проще сделал. Но есть проблема, при включении сигнализации "тревоги" они работает бесконечно получается, хотя время отключения стоит. Сможешь помочь с этой проблемой?

код
unsigned long Timer;
unsigned long Zaderzhka = 2000;
unsigned long Waiting12 = 5000; //величина выдержки
unsigned long Waiting13 = 4000; //величина выдержки
 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Gvozdkov Aleksey пишет:

Спасибо за проделанную работу. Я сначало скетч не увидел, по твоим сломал пробывал, не получалось, завис... А потом увидел, что снизу прикреплен код... Все супер, ты его переделал, проще сделал. Но есть проблема, при включении сигнализации "тревоги" они работает бесконечно получается, хотя время отключения стоит. Сможешь помочь с этой проблемой?

unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки

по идее должно работать, но не проверял
 

//int LedV = 13; // реле сирены
int LedV = LED_BUILTIN; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки
bool flag_a0 = LOW;
bool flag_a1 = LOW;
bool flag_trevoga = LOW;

unsigned long Zaderzhka = 60000;

void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT_PULLUP);
  pinMode(Butt13, INPUT_PULLUP);

  Timer = millis();                          // задержка на включение
  while (millis() - Timer <= Zaderzhka * 2); // сигнализации (2 минуты)

  // здесь бы зуммером пропищать, что встали на сигнализацию
  digitalWrite(LedV, HIGH); // активируем реле
  delay(1000);
  digitalWrite(LedV, LOW); // активируем реле
}

void readButtons() {
  if (!digitalRead(Butt12) && !flag_a0) {
    flag_a0 = HIGH;
    Timer = millis();
  }
  if (!digitalRead(Butt13) && !flag_a1) flag_a1 = HIGH;
}

void loop() {
  readButtons();

  if (((flag_a0 && millis() - Timer >= Zaderzhka) || flag_a1) && !flag_trevoga) {
    digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле
    flag_trevoga = true;
    Timer = millis();
  }
  if (flag_trevoga && millis() - Timer >= Waiting12) digitalWrite(LedX, LOW);
  if (flag_trevoga && millis() - Timer >= Waiting13) digitalWrite(LedV, LOW);
}

 

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ua6em пишет:

Gvozdkov Aleksey пишет:

Спасибо за проделанную работу. Я сначало скетч не увидел, по твоим сломал пробывал, не получалось, завис... А потом увидел, что снизу прикреплен код... Все супер, ты его переделал, проще сделал. Но есть проблема, при включении сигнализации "тревоги" они работает бесконечно получается, хотя время отключения стоит. Сможешь помочь с этой проблемой?

unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки

по идее должно работать, но не проверял
 

//int LedV = 13; // реле сирены
int LedV = LED_BUILTIN; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки
bool flag_a0 = LOW;
bool flag_a1 = LOW;
bool flag_trevoga = LOW;

unsigned long Zaderzhka = 60000;

void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT_PULLUP);
  pinMode(Butt13, INPUT_PULLUP);

  Timer = millis();                          // задержка на включение
  while (millis() - Timer <= Zaderzhka * 2); // сигнализации (2 минуты)

  // здесь бы зуммером пропищать, что встали на сигнализацию
  digitalWrite(LedV, HIGH); // активируем реле
  delay(1000);
  digitalWrite(LedV, LOW); // активируем реле
}

void readButtons() {
  if (!digitalRead(Butt12) && !flag_a0) {
    flag_a0 = HIGH;
    Timer = millis();
  }
  if (!digitalRead(Butt13) && !flag_a1) flag_a1 = HIGH;
}

void loop() {
  readButtons();

  if (((flag_a0 && millis() - Timer >= Zaderzhka) || flag_a1) && !flag_trevoga) {
    digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле
    flag_trevoga = true;
    Timer = millis();
  }
  if (flag_trevoga && millis() - Timer >= Waiting12) digitalWrite(LedX, LOW);
  if (flag_trevoga && millis() - Timer >= Waiting13) digitalWrite(LedV, LOW);
}

 


 

Спасибо, теперь работает. Но есть опять одно Но, 1 раз срабатывает и больше не работает... 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Gvozdkov Aleksey пишет:

Спасибо, теперь работает. Но есть опять одно Но, 1 раз срабатывает и больше не работает... 

так и задумано, выключаете сигнализацию, включаете, даёт две минуты выйти из гаража и закрыть дверь, по истечении 2-х минут пикнет сиреной, что встала на сигнализацию...
все задержки можно отрегулировать

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Понял, я прост делал по другому. Теперь все понятно, спасибо огромное. 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А в чем тут «сигнализация»? Что за «датчики»? Что контролируют? Как проверяются?

Больше на автоматическую «незабывайку выключить свет» похоже.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

BOOM пишет:

А в чем тут «сигнализация»? Что за «датчики»? Что контролируют? Как проверяются?

Обычные концевики на дверях. Включают сирену и плюс идет быстрый набор номера на мой телефон.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Я этого в коде не увидел. )

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

Я этого в коде не увидел. )

так замаскировано )))
 

  digitalWrite(LedV, 1); //и активируем реле
    digitalWrite(LedX, 1); //и активируем реле

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А где проверка состояний «датчиков» ПЕРЕД постановкой «на охрану»?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

А где проверка состояний «датчиков» ПЕРЕД постановкой «на охрану»?

краткость сестра таланта )))
ЗЫ да и "Кристал"  доступен как-бы...если уж о сигнализации говорить...и таки да...если датчики неисправны - сработает жеж

PS а вот герконы с перекидными контактами более дефицитны, тут соглашусь

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Для начала думаю сойдет... В дальнейшем доработаю... Когда более углубленно освою ардуино) Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

b707
Offline
Зарегистрирован: 26.05.2017

Gvozdkov Aleksey пишет:

Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

Надежность железа вполне на уровне.

А надежность всей системы в первую очередь зависит от вас как разработчика и тут у меня большие сомнения :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Gvozdkov Aleksey пишет:

Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

При Вашем умении программировать - нет, не справится. Я вот смотрю на строки №№ 33 и 37 из первого сообщения и вижу, что через два месяца работы Вам прилетит. Вы выключите, включите, всё нормализуется, а через два месяца - опять. Вы плюнете, спишете всё на "китайскость". А "китайскость" - она "в голове".

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

b707 пишет:

Gvozdkov Aleksey пишет:

Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

Надежность железа вполне на уровне.

А надежность всей системы в первую очередь зависит от вас как разработчика и тут у меня большие сомнения :)

Все мы когда то учились, а кто то и сейчас осваивает новые знания.  Тыкать носом новичков удел слаборазвитого интелекта человека. Если бы я хотел пофилосовствовать я бы написал на форуме по психологии. Спасибо за ответ про надежность.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ЕвгенийП пишет:

Gvozdkov Aleksey пишет:

Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

При Вашем умении программировать - нет, не справится. Я вот смотрю на строки №№ 33 и 37 из первого сообщения и вижу, что через два месяца работы Вам прилетит. Вы выключите, включите, всё нормализуется, а через два месяца - опять. Вы плюнете, спишете всё на "китайскость". А "китайскость" - она "в голове".

Все мы когда то учились, а кто то и сейчас осваивает новые знания.  Тыкать носом новичков удел слаборазвитого интелекта человека. Если бы я хотел пофилосовствовать я бы написал на форуме по психологии.  

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Gvozdkov Aleksey пишет:

Тыкать носом новичков

Это и есть процесс обучения. Человеку с тонкой душевной организацией лучше вообще не рыпаться ))

Тем более, что в данном случае вам "ткнули" на реальную ошибку, которую делают почти все новички

-NMi-
Offline
Зарегистрирован: 20.08.2018

В таком случае одного мало будет, второй купи. Вместе с аффтором тушить будете.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

Gvozdkov Aleksey пишет:

Кстати, что можете сказать про надежность? Справится с поставленными задачами в долгосрочной перспективе?

Надежность железа вполне на уровне.

А надежность всей системы в первую очередь зависит от вас как разработчика и тут у меня большие сомнения :)

надёжность системы равна произведению надёжности отдельных её составляющих, к примеру если имеем систему из трёх компонентов с надёжностью каждого по 0,9 то общая надёжность системы составит 0,729 )))
 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

надёжность системы равна произведению надёжности отдельных её составляющих, к примеру если имеем систему из трёх компонентов с надёжностью каждого по 0,9 то общая надёжность системы составит 0,729 )))

Это не исключает возможности присутствия в системе "слабого звена", т.е. элемента, надежность которого фактически определяет надежность системы в целом. Например, в случае тех же трех элементов: 0.99*0.99*0.1.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

v258 пишет:

Человеку с тонкой душевной организацией лучше вообще не рыпаться ))

это кому? отставному лейтенанту поступившему в институт им.Горького?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

надёжность системы равна произведению надёжности отдельных её составляющих, к примеру если имеем систему из трёх компонентов с надёжностью каждого по 0,9 то общая надёжность системы составит 0,729 )))

Это не исключает возможности присутствия в системе "слабого звена", т.е. элемента, надежность которого фактически определяет надежность системы в целом. Например, в случае тех же трех элементов: 0.99*0.99*0.1.

так и не опровергает )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Gvozdkov Aleksey пишет:

Все мы когда то учились, а кто то и сейчас осваивает новые знания.  Тыкать носом новичков удел слаборазвитого интелекта человека. Если бы я хотел пофилосовствовать я бы написал на форуме по психологии.  

Вас, молодой человек, никто ни во что не тыкал. Я указал Вам конкретные строки, в которых у Вас проблема.

Коль скоро, Вы не спросили в чём проблема (а сами-то точно не знаете, иначе не писали бы так), а начали играть в обиженную гимназистку, позвольте усомниться в том, что Вы чему-то учитесь. Так не учатся.

Поэтому впредь Вам лучше писать не на форуме по философии, а на https://blondie.ru/forum - самое то место для обиженных гимназисток с тонкой душевной организацией.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ЕвгенийП пишет:

Gvozdkov Aleksey пишет:

Все мы когда то учились, а кто то и сейчас осваивает новые знания.  Тыкать носом новичков удел слаборазвитого интелекта человека. Если бы я хотел пофилосовствовать я бы написал на форуме по психологии.  

Вас, молодой человек, никто ни во что не тыкал. Я указал Вам конкретные строки, в которых у Вас проблема.

Коль скоро, Вы не спросили в чём проблема (а сами-то точно не знаете, иначе не писали бы так), а начали играть в обиженную гимназистку, позвольте усомниться в том, что Вы чему-то учитесь. Так не учатся.

Поэтому впредь Вам лучше писать не на форуме по философии, а на https://blondie.ru/forum - самое то место для обиженных гимназисток с тонкой душевной организацией.

Спасибо Вам, за найденную ошибку. Но были лишним писать про "китайскость". Если бы Вы описали проблему то цены бы Вам не было.

P.s. У меня нет цели ругаться, не вижу в этом смысла.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Добрый вечер, сегодня все собрал. Время отрегулировал, все работает спасибо. Но в процессе пришло пару идей для боле корректной работы (на мой взгляд). Не мог бы помочь дописать скетч?
1. Чтоб Ардуино было в режиме энергосбережения.
2. В случае тревоги сначала сработало "реле телефона"(быстрый набор номера), а затем реле сирены (секунд через 10).
3. Добавить выход на реле чтоб уличное освещение(12в) моргало во время тревоги.
4. Добавить выход на реле которые включает зарядку, 48часов(172800000) ожидания и час(3600000) зарядки.

Спасибо Вам. К сожалению соседний гараж вскрыли на днях... Поэтому все дела на второй план. Усилил дверь, и сегодня все подключил сигнализацию.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Ну шо, владелец втарого агнитушиталя, пейши код, иначе придёцца пакупать третий ахнитушитель )))

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

У меня энергетическое образование, все системы защиты соблюдены. Достаточно сложно сделать возгорание при напруге 5в. С программированием у меня все сложно,если бы сам полностью разобрался, то не стал бы спрашивать советы и просить о помощи.

В электрике достаточно все просто... Есть 3 проблемы: обрыв цели, плохой контакт, короткое замыкание.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

В чем смысл твоих комментариев??? Нет желания помогать, зачем тогда засорять чат?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Gvozdkov Aleksey пишет:
В чем смысл твоих комментариев??? Нет желания помогать, зачем тогда засорять чат?

А в чем смысл вашей темы? Написать програ'мму? Пытайтесь /пробуйте учитесь, коллективный разум поможет. Готовый код - идите в платный раздел.
ЗЫ. Всё мы учились, первую свою железку тоже через ж...писал лет 5 назад.
PPS. Всем похер на ваше образование, тут всякие есть, и админы и гидрологи и врачи и механики...и ничё, справляемся.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ЕвгенийП пишет:
Если бы Вы описали проблему ...

С чего бы мне её описывать? Вы про неё не спрашивали. Вы спросили про надёжность, я ответил, и указал где проблема. Даже описал как она проявляется. Про суть проблемы вопросов не было.

А вообще, по этой Вашей реплике (а также вот по этой, адресованной -NMi-)

Gvozdkov Aleksey пишет:
В чем смысл твоих комментариев??? Нет желания помогать, зачем тогда засорять чат?

Вы решили нас поучить как вести себя на этом форуме? Очень мило, но ... ничего, что мы оба здесь больше лет, чем Вы дней?

Давайте, теперь я Вас поучу.

На этом форуме есть правила, которых Вы прочесть не удосужились. И самый первый пункт этих правил гласит: "1. На форуме действует принцип "Со своим уставом в чужой монастырь не суйся". Не следует указывать старожилам, для чего нужен форум, и что на нем следует делать". 

Вот как-то так.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

andycat пишет:
Gvozdkov Aleksey пишет:
В чем смысл твоих комментариев??? Нет желания помогать, зачем тогда засорять чат?

А в чем смысл вашей темы? Написать програ'мму? Пытайтесь /пробуйте учитесь, коллективный разум поможет. Готовый код - идите в платный раздел.
ЗЫ. Всё мы учились, первую свою железку тоже через ж...писал лет 5 назад.
PPS. Всем похер на ваше образование, тут всякие есть, и админы и гидрологи и врачи и механики...и ничё, справляемся.

Мой комментарий был адресован -NMi-. Я его не понимаю, 2 раза пишет про огнетушитель. Про образование написал для того, что есть понятие об электрических схемах. Сейчас пытаюсь сам разобраться с кодом, не для 1 проекта. Я сейчас завис вроде бы на простом... Не получается написать код моргание светодиода через millis... Утро вечера мудренее.

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

Уважаемый Евгений П. Я против Вас ничего не имею. Спасибо за то что отвечаете. Правила я читал. Много тем интересных есть на форуме, последние время часто сижу тут... Это первый мой серьезный самостоятельный проект и то уже не самостоятельный...
Первый блин комом (

-NMi-
Offline
Зарегистрирован: 20.08.2018
Вотт сматри, фсё очч проста:
оберни всё в конечный автомат с пятью состояниями::
1 сигналка выкльчена
2 сигналка включена
3 сигналка встаёт на охрану
4 сигналка выходит их состояния охраны
5 сигналка сработала
 
Хотя, я~б добавил ещё пару-тройку состояний...       И вот те непаханное поле... паши, кодь, и моццк нам не Йй#би...
 
ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andycat пишет:
тут всякие есть, и админы и гидрологи и врачи и механики...и ничё, справляемся.

а нас, кузнецов, чего обидел...или считаешь, что не справляемся )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

-NMi- пишет:
оберни всё в конечный автомат
Про автомат, ТС ещё в #7 было сказано со ссылкой на то, как это делать.

Но тут засада, в #8 ua6em выдал готовый код и на этом все попытки "самописания" закончились :(

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

ЕвгенийП пишет:

На этом все попытки "самописания" закончились :(


Тут я с Вами не согласен. Это же конструктор, который можно вечно доработывать. Вчера правда ничем успешным не закончилось.
Я же как то написал изначальный код причем потратил не один день, да согласен с ошибками. Код -NMi- Я до конца ещё не смог разобрать, но я работаю над этим.
Скажу честно приобрел Ардуино и комплектующие ровно год назад, за это время освоил простые задачи. То времени не было, то работа, семья. Идея с сигнализацией и автономным отоплениям родилась тоже год назад... Но пока начал с более менее простого сигнализации, так как грабят гаражи...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Gvozdkov Aleksey пишет:

1. Чтоб Ардуино было в режиме энергосбережения.

(это надо проектировать изначально)

Gvozdkov Aleksey пишет:

2. В случае тревоги сначала сработало "реле телефона"(быстрый набор номера), а затем реле сирены (секунд через 10).

(использовать таймер, к примеру библиотеку от DetSimen, недавно озвучивали про неё)

Gvozdkov Aleksey пишет:

3. Добавить выход на реле чтоб уличное освещение(12в) моргало во время тревоги.

(это можно)

Gvozdkov Aleksey пишет:

4. Добавить выход на реле которые включает зарядку, 48часов(172800000) ожидания и час(3600000) зарядки.

подход в корне не верен, если аккумулятор кислотный (по ТБ) я бы сделал полноценный узел зарядки/буферного режима, компаратор для этих целей у тебя свободен, режимы написаны на аккумуляторе

SergeiL
SergeiL аватар
Offline
Зарегистрирован: 05.11.2018

Gvozdkov Aleksey][quote=andycat][quote=Gvozdkov Aleksey пишет:
Я сейчас завис вроде бы на простом... Не получается написать код моргание светодиода через millis... Утро вечера мудренее.

Судя по фразе выше, я бы посоветовал купить готовую GSM сигнализацию. 

Еще посоветовал бы над дверью снаружи поставить PIR датчик типа "штора" с коротким предупредительным сигналом сирены. Чтобы дело до вскрытия двери не доходило.  

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

SergeiL] </p> <p>[quote=Gvozdkov Aleksey][quote=andycat пишет:
Gvozdkov Aleksey пишет:
Я сейчас завис вроде бы на простом... Не получается написать код моргание светодиода через millis... Утро вечера мудренее.

Судя по фразе выше, я бы посоветовал купить готовую GSM сигнализацию. 

Еще посоветовал бы над дверью снаружи поставить PIR датчик типа "штора" с коротким предупредительным сигналом сирены. Чтобы дело до вскрытия двери не доходило.  


Спасибо за совет.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

SergeiL]</p> <p>[quote=Gvozdkov Aleksey][quote=andycat пишет:
Gvozdkov Aleksey пишет:
Я сейчас завис вроде бы на простом... Не получается написать код моргание светодиода через millis... Утро вечера мудренее.

Судя по фразе выше, я бы посоветовал купить готовую GSM сигнализацию. 

Еще посоветовал бы над дверью снаружи поставить PIR датчик типа "штора" с коротким предупредительным сигналом сирены. Чтобы дело до вскрытия двери не доходило.  

мигать можно вот так:

//int LedV = 13; // реле сирены
int LedV = LED_BUILTIN; // реле сирены
int LedX = 11; // реле телефона
int LedN = 12; // реле зарядки
int Butt12 = A0; //кнопка концевик
int Butt13 = A1; //кнопка концевик


unsigned long Timer;
unsigned long Waiting12 = 2000; //величина выдержки
unsigned long Waiting13 = 4500; //величина выдержки
bool flag_a0 = LOW;
bool flag_a1 = LOW;
bool flag_trevoga = LOW;

unsigned long Zaderzhka = 60000;

void setup() {
  pinMode(LedV, OUTPUT);
  pinMode(LedX, OUTPUT);
  pinMode(LedN, OUTPUT);
  pinMode(Butt12, INPUT_PULLUP);
  pinMode(Butt13, INPUT_PULLUP);

  Timer = millis();                          // задержка на включение
  while (millis() - Timer <= Zaderzhka * 2); // сигнализации (2 минуты)

  // здесь бы зуммером пропищать, что встали на сигнализацию
  digitalWrite(LedV, HIGH); // активируем реле
  delay(1000);
  digitalWrite(LedV, LOW); // активируем реле
}

void readButtons() {
  if (!digitalRead(Butt12) && !flag_a0) {
    flag_a0 = HIGH;
    Timer = millis();
  }
  if (!digitalRead(Butt13) && !flag_a1) flag_a1 = HIGH;
}

/*******************ПИЩАЛКА ИЛИ МИГАЛКА ********************/
void start_Buzzer() {
  //    pinMode(LedV,OUTPUT);
  attachInterrupt(1, Buzzer, RISING );
  analogWrite(3, 0x80);
}

void end_Buzzer() {
  detachInterrupt(1);
  digitalWrite(LedV, LOW);
}

void Buzzer(void) {
  static int i = 250;
  if (!i--)
  {
    digitalWrite(LedV, ! digitalRead(LedV));
    i = 250;
  }
}


void loop() {
  readButtons();

  if (((flag_a0 && millis() - Timer >= Zaderzhka) || flag_a1) && !flag_trevoga) {
 //   digitalWrite(LedV, 1); //и активируем реле
    start_Buzzer();
    digitalWrite(LedX, 1); //и активируем реле
    flag_trevoga = true;
    Timer = millis();
  }
  if (flag_trevoga && millis() - Timer >= Waiting12) digitalWrite(LedX, LOW);
  if (flag_trevoga && millis() - Timer >= Waiting13) end_Buzzer();  //digitalWrite(LedV, LOW);
}

 

Gvozdkov Aleksey
Offline
Зарегистрирован: 30.09.2022

/*******************ПИЩАЛКА ИЛИ МИГАЛКА ********************/
void start_Buzzer() {
  //    pinMode(LedV,OUTPUT);
  attachInterrupt(1, Buzzer, RISING );
  analogWrite(3, 0x80);
}

void end_Buzzer() {
  detachInterrupt(1);
  digitalWrite(LedV, LOW);
}

void Buzzer(void) {
  static int i = 250;
  if (!i--)
  {
    digitalWrite(LedV, ! digitalRead(LedV));
    i = 250;
  }
}


void loop() {
  readButtons();