Сигнализация для дома с отправкой sms
- Войдите на сайт для отправки комментариев
Вынашиваю идею по созданию охранной сигнализации для дома.
Функции устройства:1.вкл\выкл кнопкой 2.Индикатор режимов работы 3.Сирена. 4.1 охранный шлейф(лучше 3-4) 5.Отправка смс(через кнопочный тлф,по средствам нажатия кнопок в нужной последовательности.
Логика работы:
индикатор не горит.система в покое.
Постановка на охрану:Нажимаем кнопку (вкл),индикатор мигает.Система ждёт 15сек и ставится на охрану.
Индикатор горит постоянно.
Сработка:сирена работает 30сек,индикатор мигает.ардуино нажимает кнопки(пусть 4-5 нажатий) и отправляет смс.
Через 2мин если шлейф целый ставится сама снова на охрану.
Снятие:нажатие кнопки.(никаких задержек)
доп функционал:Звоню на тлф ардуины,снимает трубку для прослушки помещения.
-----------------
В качестве кнопки будет кодовая радио панель на 2 канала,к ардуино прикручу совместимый приёмник.
Она у меня есть уже.Стоять будет в частном дворе.Так что просто так не сломают.
Основные трудности у меня вызывает программный код,так что кто чем может.
В остальном проблем не вижу.
Не из любопытства, а чтобы знать, какой уровень ответов Вам подойдёт - это Ваш первый проект (задумка точнее) на Ардуино ?
Да.Это самое начало.в электронике шарю,а вот программирование изучаю.
А не проще вместо кнопочного телефона использовать GSM модуль, тогда возможностей больше и кнопки нажимать не надо.
Модулей сечас море M590, SIM800, SIM900.
Я сейчас похожую сигналку делаю.
1. Удаленная (вдруг уехал и забыл) постановка на охрану по звонку или по СМС (дешево и сердито - входящий бесплатно), а еще только по звонку с твоего номера или нескольких номеров которые прописал в программе (чужие номера в игнор).
2. СМС-кой можно получать в каком состояние находится сигнализация (вкл/выкл/сирена).
3. Так же можно снимать с охраны звонком или СМС (вдруг теща приехала :)
4. Включаем в функции показания повышения температуры (как пожарная сигнализация), протечки воды, отключение электричества
и т.д. и т.п. возможностей с модулем полно.
Берете готовое и переделываете под себя:
Да.Это самое начало.в электронике шарю,а вот программирование изучаю.
Вас ждёт много интересного ))
Я бы посоветовал отложить пока в сторону телефоны, GSMы и SMSы, начать с решения задач попроще :
1. Определить состояние кнопки, определить состояние шлейфа.
2. Управлять индикатором, управлять сиреной.
3. Посложнее: разобраться с millis() и управлять таймерами ("Система ждёт 15сек и ставится на охрану", "сирена работает 30сек", "Через 2мин ставится сама снова на охрану").
Ну и так далее по нарастающей сложности..
Либо найти готовый проект аналогичного функционала (они есть, их немало) и пытаться на его основе что-то делать.
Делал я для дома, работающую длительно от кислотного АКБ.
есть схема и програмка.
тута (фотка не адекватная):
http://uselect-el.ucoz.com/
на базе UNO+Sim900 shield.
Делать буду то что задумал.Для начала хотя бы это осилить и понять.Нашел подходящий код,но он работает от ключа.Мне же нужно от кнопки.Вот эту самую кнопку не как не могу приделать.
Оригенал скетча.
Мой модифицированный код,точнее его начальная часть.Пробывал разные варианты писать,не компилируется.
Лучше выкладывать скетчи, как описано здесь http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Когда не компилируется, желательно выкладывать сообщения компилятора.
Так у Вас будет больше шансов на ответы/помощь.
//Сигнализация для частного дома.Разработка:Zipper31.Mail:zz66zz@ya.ru //постоянные const byte GreenLed = 10; //зеленая лампочка const byte RedLed = 11; //красная лампочка const byte Sirena = 9; //сирена const byte GerkonPin = 8; //геркон const byte ButtonPin = 12; //пин для кнопки //переменные boolean PushOn = true; // включать ли кнопку boolean PushState = false; // переменная кнопки boolean SecureState = 0; //флаг работающей сигнализации boolean GerkonState = 0; //флаг геркона boolean LedState = 0; //флаг зелёного диода boolean SecCont = 0; //для фиксации сработки //таймеры unsigned long previousMillis = 0;// обнуляем таймер диода unsigned long previousMillisRest = 0;//обнуляем таймер сработки сиги unsigned long intervalLed = 1000; //время мигания зелёного диода unsigned long intervalRest = 30000; //время сирены и перепостановки на охрану void setup() { pinMode(GreenLed, OUTPUT); //задаем режимы работы пинов pinMode(RedLed, OUTPUT); pinMode(Sirena, OUTPUT); pinMode(GerkonPin, INPUT); pinMode(ButtonPin, INPUT_PULLUP); } void loop() { //управление кнопкой и защита от дребезга,получаем переменную PushState //какая то фигня написана неведомая,но работает хорошо :) boolean isButtonUp = digitalRead(ButtonPin); if (PushOn && !isButtonUp) { delay(5); isButtonUp = digitalRead(ButtonPin); if (!isButtonUp) { PushState = !PushState; } } PushOn = isButtonUp; GerkonState = digitalRead(GerkonPin); // назначаем переменную геркону //**********Включение сигнализации********** if (PushState == true) { //сига включена и выполняем if (GerkonState == 1) { //если "1" то SecureState = 1; } } //следим за герконом и всё такое //**********Выключение сигнализации********** if (PushState == false) { //сига выключена и выполняем digitalWrite(RedLed, LOW); //красный диод выкл digitalWrite(Sirena, LOW); //сирена выкл SecureState = 0; //обнуляем SecCont = 0; } //обнуляем //**********Охрана********** if (SecureState == 1) { //если "1" то if (GerkonState == 0 && SecCont == 0) { // если GerkonState"0"то погнали цикл SecCont = 1; // прерывание чтоб таймер сработки сиги не зациклился digitalWrite(Sirena, HIGH); //вкл сирена previousMillisRest = millis(); } } //таймер сработки сиги if ((previousMillisRest > 0) && (millis() - previousMillisRest >= intervalRest)) { digitalWrite(Sirena, LOW); //выкл сирена if (GerkonState == 0) //если геркон разомкнут"0" то PushState = false; //вырубаем сигу else // если геркон замкнут"1"то SecCont = 0; // обнуляем и опять охраняем previousMillisRest = 0; } //обнуляем таймер сработки сиги //**********Управление индикаторами********** //зелёный индикатор показывает режим шлейфа,всегда //красный индикатор показывает работу сигнализации digitalWrite(RedLed, PushState == true && GerkonState == 1); //вкл красный диод if (GerkonState == 0) //если "0" то digitalWrite(GreenLed, LedState); //мигаем зелёным диодом else //если "1" то digitalWrite(GreenLed, HIGH); //светим постоянно //***Таймер индикатора,зелёный диод*** unsigned long currentMillis = millis(); // частота мигания if (currentMillis - previousMillis > intervalLed) { previousMillis = currentMillis; if (LedState == LOW) LedState = HIGH; else LedState = LOW; } }Ещё прикручу пару таймеров и реализую набор кнопок на ТЛФ для отправки смс.Ещё есть мысль,звоним на ТЛФ сиги,она снимает трубку.Слушаем что происходит дома.Не забываем что это мой первый скетч. Что думаете про скетч и что ещё сделать?