Домашна аларма или използване на сензор за движение и LCD монитор с Arduino. Базирана на Arduino gsm система за домашна сигурност Arduino домашна алармена верига

Добър ден! Отново многократен преглед на китайските електронни компоненти, както обикновено по малко за всичко, ще се опитам да бъда кратък, но дали ще стане? Така че добре дошли GSM алармаструва до 700 рубли. Интересно? Моля за "нарязване"!

Да започваме! Преди да започнете, препоръчвам да разгледате този, по-малко компоненти и повече автономия. И така, "техническото задание", основните изисквания за сигнализиране:

1) Уведомете, когато сензорите се задействат.
2) В случай на прекъсване на захранването трябва да се осигури известна автономия.
3) Управление на аларми чрез sms и разговори.

Поради факта, че процесът на създаване на аларма се проточи в продължение на няколко месеца и някои продавачи вече не продават тези компоненти, които са закупени от тях, връзките ще бъдат актуализирани към продукти на други продавачи, които имат максимален или близо до максималния брой на продажбите на продукти и най-добра цена... Цените в ревюто са актуални към датата на писане.

Списък на това, от което се нуждаете:

Списък на промените

GSM_03_12_2016-14-38.hex- фиксирана работа на устройството с модема M590.
GSM_05_12_2016-13-45.hex- добавена конзолна команда memtest, оптимизиране на използването на RAM.
GSM_2016_12_06-15-43.hex- добавено извеждане на резултатите от командите в конзолата, оптимизация на паметта. Заетост: 49% SRAM.
GSM_2016_12_07-10-59.hex- сега телефонните номера се добавят и премахват правилно. Заети: 49% SRAM, 74% флаш памет.
GSM_2016_12_07-15-38.hex- добавена е възможност за свързване на сензор за движение, той е свързан към щифт A0 (в този случай пин A0 се използва като цифров). Добавени SMS - команди ПИРОН, PIROff... Заети: 48% SRAM, 76% Flash памет.
GSM_2016_12_08-13-53.hex- Сега, след успешното изпълнение на командата, която не изпраща SMS съобщение в отговор, устройството мига веднъж със син светодиод. Сега, след неправилно изпълнение на командата, която не изпраща SMS съобщение в отговор, устройството мига два пъти със син светодиод. Сега, след инициализиране на параметрите на устройството, ако "тихият" режим е активиран (SendSms = 0), устройството мига със син светодиод бързо за 2 секунди. Поправена е грешката, поради която номерът не винаги е бил изтриван от паметта чрез командата DeletePhone. Заети: 48% SRAM, 78% Flash памет.
GSM_2016_12_11-09-12.hex- Добавени конзолни команди AddPhone и DeletePhone, синтаксисът е подобен на SMS командите. Оптимизиране на паметта. Заети: 43% SRAM, 79% Flash памет.
GSM_2017_01_03-22-51.hex- Реализирана поддръжка за подобни разширители на I/O портове на чипа PCF8574, за свързване на допълнителни 8 сензора, включително тръстикови превключватели. Автоматично търсене на адреси и автоматично конфигуриране на модула. Стандартните имена на сензорите и логическото ниво на тяхното задействане се променят с командата EditSensor. Променено съдържание на алармен SMS за основния сензор (пин D0) „Аларма! Основен сензор!" и сензора за движение (щифт A0) „Аларма! PIR сензор!“. Добавени команди EditSensor и I2CScan. Заети: 66% SRAM, 92% флаш памет.
GSM_2017_01_15-23-26.hex- Поддръжка за модем A6_Mini. Управление на външно захранване (пин D7). Добавени SMS команди WatchPowerOn, WatchPowerOff. Добавени конзолни команди ListConfig, ListSensor. Сега sms командата EditSensor работи правилно. Изходът за отстраняване на грешки към монитора на порта е леко "нарязан". Заети: 66% SRAM, 95% флаш памет.
GSM_2017_01_16-23-54.hex- Сега в съобщението за отговор на SMS командата "Инфо" се отчита и състоянието на сензора за движение. Поправена е грешка, поради която понякога се изпращат празни съобщения за отговор на SMS. Сега устройството уведомява не само за изключване, но и за възобновяване на външното захранване. Всички модеми започнаха да "чатят по-малко", сега мониторът на порта е малко по-чист. Заети: 66% SRAM, 95% флаш памет.
GSM_2017_02_04-20-23.hex- Фиксирана грешка "Гледайте включеното захранване". Сега, след дезактивиране, "аларменият щифт" е изключен. Сега след изтриване на номера правилната информация се показва в конзолата. Вероятно отстранена грешка, поради която понякога се изпращаха празни SMS съобщения за отговор. Заети: 66% SRAM, 90% флаш памет.
GSM_2017_02_14-00-03.hex- Сега SMS съобщенията се изпращат по подразбиране, параметърът SendSms отново е равен на 1. Сега, когато контактите на главния тръстиков превключвател са затворени (вратата е затворена), устройството мига със син светодиод за 2 секунди, като сигнализира нормална работасензор. Заети: 66% SRAM, 90% флаш памет.
GSM_2017_03_01-23-37.hex- Командата WatchPowerOn е премахната. Добавена е конзолна команда WatchPowerOff, идентична с SMS командата. Добавени команди WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 - външното наблюдение на захранването е активирано, ако алармата е активирана, WatchPowerOn2 - външното наблюдение на захранването е винаги активирано. Реализирана е функцията за включване и изключване от външни устройства, за което се използват клеми A1 (D15) и A2 (D16). Включване/изключване на аларма, когато се появи на щифт A1 (D15) високо ниво+ 5V или на пин A2 (D16) ниско ниво GND. Пин A1 (D15) се изтегля към GND, щифт A2 (D16) се изтегля до + 5V през 20 (10) kΩ резистора. Добавени команди GuardButtonOn и GuardButtonOff. Сега, след активиране, червеният светодиод мига, докато се провери целостта на веригата на главния тръстиков сензор. Ако веригата е непокътната, червеният светодиод светва. Заети: 66% SRAM, 95% флаш памет.
GSM_2017_03_12-20-04.hex- Сега конзолата стана още по-чиста, но ако тестовият режим "TestOn" е активиран, тогава в конзолата се показва допълнителна информация. Поправена грешка "Изпратено!", Сега съобщението за изпращане на съобщения се показва правилно в конзолата. Поправена е грешката при "повторно фалшиво обаждане". Заявката за баланс вече трябва да работи правилно на всички модеми. Заети: 67% SRAM, 95% флаш памет.
GSM_2017_04_16-12-00.hex- Поправено. Сега екипите за информация и пари винаги ще изпращат SMS за отговор. Командата GuardButtonOn е заменена от командите GuardButtonOn1 и GuardButtonOn2. Заети: 67% SRAM, 99% флаш памет.
GSM_2017_04_21-09-43.hex - не се препоръчва за използване, само за тестване, благодаря за установените грешки :) - Сега параметърът sendsms не влияе на изпращането на SMS съобщения за наблюдение на електрическата мрежа. Добавена е SMS команда DelayBeforeGuard, която е отговорна за забавянето при активиране, стойността не може да надвишава 255 секунди. Добавена е SMS команда DelayBeforeAlarm, която е отговорна за забавянето на изпращането на известия и активиране на "алармен щифт" при задействане на сензорите, стойността не може да надвишава 255 секунди. Премахнати ClearSMS команди, сега съобщенията се изтриват автоматично при получаване. Заети: 68% SRAM, 100% Flash памет.
GSM_2017_04_22-20-42.hex- Поправени множество грешки. Командите ClearSMS отново присъстват във фърмуера. Оптимизиране на паметта. Заети: 68% SRAM, 98% флаш памет.
GSM_2017_04_23-17-50.hex- Сега заявката за баланс трябва да работи правилно на всички модеми. Включването и изключването от външни устройства вече работи правилно. Информационната команда SMS отговорните съобщения не трябва да са празни. Оптимизиране на паметта. Заети: 68% SRAM, 98% флаш памет.
GSM_2017_04_24-13-22.hex- Сега прехвърлянето на конзолни команди към GSM модулизвършва се само ако тестовият режим е активиран. Сега няма разделение на SMS команди и конзолни команди, всички съществуващи команди могат да се изпращат както чрез SMS, така и чрез конзолата. Вероятно е отстранена грешка с командата Info. Оптимизиране на паметта. Заети: 68% SRAM, 94% флаш памет.
GSM_2017_04_25-20-54.hex- Поправена е грешка, при която командата ListConfig променя стойността на последното събитие. Сега при въвеждане на команди през kosol не се изпращат ненужни SMS съобщения. Вероятно е отстранена грешка с командата Info. Оптимизиране на паметта. Заети: 66% SRAM, 94% флаш памет.
GSM_2017_04_30-12-57.hex- Временно е активирано извеждането на допълнителна информация към конзолата при изпращане на SMS съобщения и формиране на отговор на командата Info. Вероятно е отстранена грешка с командата Info. Оптимизиране на паметта. Заети: 66% SRAM, 92% флаш памет.
GSM_2017_05_06-11-52.hex- Поправено с функцията DelayBeforeAlarm. Заети: 66% SRAM, 93% флаш памет.
GSM_2017_05_23-21-27.hex- Леко променено извеждането на информация към конзолата. Добавена поддръжка за модули за разширение на портове на PCF8574A с адреси от 0x38 до 0x3f включително. Поправена грешка c. Сега устройството се рестартира автоматично след командите FullReset, ResetConfig, ResetPhone и ако командата MemTest е изпълнена успешно. Добавена команда WatchPowerTime. Сега е възможно да зададете времето, след което ще бъде изпратено SMS съобщение за прекъсване на връзката външен източникхранене. Заети: 67% SRAM, 94% флаш памет.
GSM_2017_05_26-20-22.hex- Фиксирана инициализация на паметта на сензорите на разширителната платка. Синтаксисът на командата AddPhone е променен. Добавена команда EditMainPhone. Принципът на работа на системата за известяване е променен, при задействане на сензора първо ще се изпращат sms съобщения, след което ще се извършват гласови повиквания. На телефонни номера със знак "S" (SMS) ще се изпращат тревожни sms съобщения. Гласови повиквания ще се извършват до номера със знак "R" (Звънене). Съобщения за изключване/включване на външното захранване ще се изпращат на телефонните номера със знак “P” (Захранване). Добавена е команда RingTime. Сега е възможно да зададете продължителността на аларменото гласово повикване, параметърът може да има стойност от 10 до 255 секунди. Сега командата RingOn / RingOff глобално активира / деактивира уведомяването за гласови повиквания. Добавена команда ResetSensor. Заети: 68% SRAM, 99% флаш памет.
GSM_2017_06_02-17-43.hex- Добавен параметър “I” (Info) към командите AddPhone и EditMainPhone, който е отговорен за sms известяване за включване или изключване на устройството. Сега, след добавяне на основния номер, устройството автоматично се рестартира. Сега можете да добавите същите числа към паметта на устройството. При добавяне на второто и следващите дублиращи се числа атрибутите "M", "S", "P" и "I" автоматично ще бъдат премахнати от тях. Тези номера ще се използват за повтарящи се гласови повиквания, когато сензорите се задействат. Поправена е грешка с извеждане на крива в конзолата след изпълнение на командата AddPhone, сега информацията не се показва автоматично след добавяне на номер. Добавена команда за рестартиране. Заети: 69% SRAM, 99% флаш памет.
GSM_2017_06_11-00-07.hex- Сега отново, когато контактите на главния тръстиков превключвател са затворени (вратата е затворена), устройството мига със син светодиод за 2 секунди, сигнализирайки за нормалната работа на сензора, докато устройството не е активирано или дезактивирано. Командите RingOn / RingOff са премахнати. Сега устройството може да бъде дезактивирано по време на алармен разговор, сега те се изпълняват във фонов режим. Заети: 69% SRAM, 99% флаш памет.
GSM_2017_07_04-21-52.hex- Сега командата Пауза не изпраща SMS за отговор. Премахнати команди TestOn и TestOff. Флагът за управление е премахнат от всички номера. Заети: 68% SRAM, 96% флаш памет.
GSM_2017_07_24-12-02.hex- Добавени команди ReedSwitchOn / ReedSwitchOff за наблюдение на главния сензор за тръстика, сега той може да бъде активиран / деактивиран по същия начин като сензора за движение. Поправена грешка в командата Info. Командите TestOn и TestOff отново присъстват във фърмуера. Заети: 68% SRAM, 96% флаш памет.
GSM_2017_07_26-10-03.hex- Добавена команда ModemID. Автоматичното откриване на модема се извършва само ако стойността на този параметър е 0. След задаване на стойността на параметъра на 0, устройството автоматично се рестартира. Заети: 68% SRAM, 98% флаш памет.
GSM_2017_08_03-22-03.hex- Сега алармата може да управлява външни устройства. За управление се използва аналогов изход A3 (D17 - използва се като цифров). Логическото ниво на изхода (+ 5V или GND) може да се промени, след промяна на нивото чрез командата за настройка, устройството автоматично ще се рестартира. Продължителността на сигнала за управление на външното устройство може да се променя. Добавени команди ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Някои промени в логиката на командите за управление. Оптимизиране на паметта. Заети: 68% SRAM, 99% флаш памет.
GSM_2017_08_10-12-17.hex- Премахнати команди SmsOn / SmsOff, ReedSwitchOn / ReedSwitchOff, PIRON / PIROff и всичко свързано с тях. Командата DelayBeforeAlarm е заменена с разширени команди. Изходът на информационната команда е променен. Оптимизиран изходът на командата ListConfig към конзолата. Сега всички цифрови сензори с високо или ниско ниво на реакция, включително тръстикови превключватели, могат да бъдат свързани към щифтове D6 и A0. Изводите D6 и A0 трябва да бъдат свързани към земята (GND) чрез резистор 10 (20) kΩ. Ако сензорът е конфигуриран за ниско ниво на задействане (разрешено в режим на тръстика), тогава непрекъснатостта на веригата се проверява. Логическото ниво на задействане на входове D6 и A0 (+ 5V или GND) може да се промени, след промяна на логическото ниво устройството ще се рестартира автоматично. За всеки от сензорите (основна, втора, PCF карти за разширение) при задействане може да се зададе собствено време, след което ще се направи известие (SMS и/или гласово повикване). „PIR сензор“ се преименува на „Втори сензор“. Поправена е работата на разширителната платка, грешка, поради която устройството винаги уведомява за задействане на сензори, независимо дали устройството е било активирано или не. Сега можете да изберете режима на работа, в който устройството може да наблюдава сензорите на разширителната платка както в режим на охрана (GuardOn), така и в изключен режим (GuardOff). Добавени команди PCFForceOn / PCFForceOff, MainSensorLevelHigh / MainSensorLevelLow / MainSensorLevelOff, SecondSensorLevelHigh / SecondSensorLevelLow / SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeFAforeAlay, PC Заети: 68% SRAM, 99% флаш памет.

* Следващите версии на фърмуера включват промени от предишни версии.


Използвани портове на Arduino Nano v3

D4- изход на щифт "аларма", когато сензорът се задейства, на този щифт се задава високо ниво на сигнал
D5- инверсен изход на щифта "аларма", когато сензорът се задейства, на този щифт се задава ниско ниво на сигнал

D6- тръстиков превключвател. Започвайки от версията GSM_2017_08_10-12-17.hex, всички цифрови сензори с високо или ниско ниво на реакция, включително тръстикови превключватели, могат да бъдат свързани към щифт D6. Пин D6 трябва да бъде изтеглен към земята (GND) чрез резистор 10 (20) kΩ.
D7- свързан към делител на напрежение от външно захранване + 5V. Горното рамо е 2,2 kOhm, долното е 3,3 kOhm.

Делител на напрежението


D8- TX модем
D9- RX модем

D10- червен светодиод
D11- син светодиод
D12- зелен светодиод

Периферна връзка:
A0- Датчик за движение . Започвайки от версия GSM_2017_08_10-12-17.hex, всички цифрови сензори с високо или ниско ниво на задействане, включително тръстикови превключватели, могат да бъдат свързани към щифт A0. Пин A0 трябва да бъде изтеглен към земята (GND) чрез резистор 10 (20) kΩ.

A1- Вход за външно управление. Алармата ще активира/дезактивира системата, когато на входа се появи високо ниво + 5V.
A2- Инвертиран вход за външно управление. Алармата ще активира/дезактивира, когато на входа се появи ниско ниво GND.

A3- Конфигурируем (+ 5V или GND) изход за управление на външни устройства. Когато се получи управляваща команда, стойността на този изход се променя в зависимост от това коя е била зададена за определен период от време.

A4- SDA I2C
A5- SLC I2C
, за свързване на допълнителни 8 сензора.


Команди за управление за шестнадесетичен - фърмуер

Внимание!Специални команди с удебеленмогат да се извършват само от основния номер, тъй като те са отговорни за конфигурацията на устройството. Останалите команди могат да се изпълняват от числа със знак "Управление".

SMS - командите за управление не са чувствителни към малки и големи букви:
AddPhone- Добавете телефонен номер. Общо не могат да се добавят повече от 9 номера + 1 основен номер, който автоматично се записва в паметта, когато за първи път се обадите на устройството след нулиране към фабричните настройки с помощта на команди Нулиране на телефонаили Пълно нулиране... Тези. който първи се е обадил на устройството, след като е било нулирано към фабричните настройки, е „основният“, този номер се въвежда в първата клетка на паметта и не може да бъде променен или изтрит чрез SMS. Не е възможно да се съберат две еднакви числа.
Примерна команда:



Синтаксис на командата:

AddPhone- команда
: - разделител
5 - запис на петото място в паметта
+71234567890 - телефонен номер
Преди версия GSM_2017_05_26-20-22.hex:
a - параметър “Аларма” - SMS ще бъдат изпратени на номера с този параметър - съобщения за активиране на алармата и съобщения за включване или изключване.
От версия GSM_2017_05_26-20-22.hex:
m - параметър "Управление" - активирано управление на аларми
s - параметър "SMS" - ще бъде изпратено sms съобщение при задействане на сензорите
r - параметър "Звънене" - при задействане на сензорите ще се извърши гласово повикване
p - параметър "Захранване" - ще бъде изпратено sms съобщение при включване/изключване на външното захранване
i - Параметър "Инфо" - ще бъде изпратено sms съобщение при включване или изключване
При липса на параметри "m", "s", "r", "p", "i" телефонът се съхранява в паметта, но не се използва по никакъв начин.


Изтриване на телефона- Изтриване на телефонен номер.
Примерна команда:

Синтаксис на командата:

DeletePhone - команда
: - разделител
+71234567891 - телефонен номер


Редактиране на основния телефон- Променете параметрите "s", "r", "p", "i" на главния телефон, този номер се въвежда в първата клетка на паметта.
Примерна команда:

Синтаксис на командата:

EditMainPhone - команда
: - разделител
srpi - параметри


BalanceNum- Промяна на номера на заявката за баланс и обработка на дължината на отговора на заявката. Стойност по подразбиране за Beeline: # 100 # L22.
Примерна команда:

Синтаксис на командата:

BalanceNum - команда
: - разделител
# 103 # - номер на заявка за баланс
L24 - Дължината (len) на изпратения отговор е 24 знака, ние отрязваме спама от заявката за баланс.


EditSensor- Променете името на сензора и логическото ниво на работа. Общо не може да има повече от 8 допълнителни сензора. След промяна на параметрите е необходимо рестартиране на устройството.
Примерна команда:
EditSensor: 1 + Датчик движения в коридор # h

Синтаксис на командата:

EditSensor - команда
: - разделител
1 - запис на първото място в паметта
+ - разделител
Datchik dvizheniya v koridore - името на сензора, не може да надвишава 36 знака, включително интервали.
#h - Знак за високо логическо ниво от сензора, при получаване на което ще се задейства аларма. Ако "#h" липсва, алармата ще се задейства, когато от сензора се получи ниско логическо ниво.


Време за сън- Времето на "заспиване" на алармата при получаване на SMS - командата "Пауза", се посочва в минути. Стойност по подразбиране: 15, не може да бъде по-малко от 1 и повече от 60.
Примерна команда:

Синтаксис на командата:

SleepTime - команда
: - разделител
20 - 20 минути "сън".


AlarmPinTime- Времето, за което алармата / инверсния щифт се включва / изключва, се показва в секунди. Стойност по подразбиране: 60, не може да бъде по-малко от 1 секунда и повече от 43200 секунди (12 часа).
Примерна команда:

Синтаксис на командата:

Команда AlarmPinTime
: - разделител
30 - 30 секунди включване/изключване на щифта за аларма.


DelayBeforeGuard- Време преди включване на устройството след получаване на съответната команда.
Примерна команда:

Синтаксис на командата:

DelayBeforeGuard - Екип
: - разделител
25 - 25 секунди преди включване


Закъснение преди аларма- Времето, след което ще бъде изпратено "аларменото" SMS известие, ако алармата не е била дезактивирана през този период от време. Заменено с разширени команди, започващи от версия GSM_2017_08_10-12-17.hex
Примерна команда:

Синтаксис на командата:

DelayBeforeAlarm - команда
: - разделител
40 - 40 секунди преди изпращане на известието "аларма".


WatchPowerTime- Време в минути, след което ще бъде изпратено SMS съобщение за изключване на външния източник на захранване. Ако външното захранване се възстанови преди изтичането на зададеното време, съобщението няма да бъде изпратено.
Примерна команда:

Синтаксис на командата:

WatchPowerTime - Екип
: - разделител
5 - 5 минути преди изпращане на SMS


Време на звънене- Продължителност на аларменото гласово повикване, параметърът може да има стойност от 10 до 255 секунди.
Примерна команда:

Синтаксис на командата:

RingTime - команда
: - разделител
40 - 40 продължителността на разговора ще бъде 40 секунди, след което ще бъде извикан следващият абонат.


ModemID- Принудителна инсталация на модела на използвания модем. Възможни стойности: 0 - автоматично откриване на модем, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Примерна команда:

Синтаксис на командата:

ModemID - команда
: - разделител
2 - ID на модема.


ExtDeviceTime- Броят секунди, с които нивото на сигнала на изхода за управление на външното устройство ще се промени.
Примерна команда:

Синтаксис на командата:

ExtDeviceTime- команда
: - разделител
5-5 секунди


ExtDeviceLevelLow- Външно устройство, свързано към изход A3, се задвижва от ниско ниво на сигнала (GND). По подразбиране изходът ще присъства на високо ниво от +5V, докато не бъде получена команда за управление на външно устройство.
ExtDeviceLevelHigh- Външно устройство, свързано към изход A3, се управлява от високо ниво на сигнала (+ 5V). Изходът по подразбиране ще бъде на ниско ниво GND, докато не бъде получена команда за управление на външно устройство.

ResetSensor- нулиране на параметрите на сензорите за разширител на портове

ResetConfig- нулиране на настройките до фабричните настройки

Нулиране на телефона- изтриване от паметта на всички телефонни номера

Пълно нулиране- нулиране на настройките, изтриване на всички телефонни номера от паметта, възстановяване на стойността по подразбиране на командата BalanceNum.

RingOn- активиране на известяване чрез извикване на "основния" номер, записан в първата клетка на паметта, когато сензорът се задейства. Премахнато от версия GSM_2017_06_11-00-07.hex
RingOff- изключете известяването чрез повикване при задействане на сензор. Премахнато от версия GSM_2017_06_11-00-07.hex

SMSOn- активиране на sms известяване при задействане на сензор. Премахнато от версия GSM_2017_08_10-12-17.hex
SmsOff- изключете sms известията при задействане на сензор. Премахнато от версия GSM_2017_08_10-12-17.hex

ПИРОН- активиране на обработката на сензора за движение
PIROff- деактивирайте обработката на сензора за движение

ReedSwitchOn- активиране на обработката на главния тръстиков сензор
ReedSwitchOff- изключете обработката на главния тръстиков сензор

WatchPowerOn- активиране на управление на външно захранване, ще бъде изпратено SMS съобщение за изключване на външно захранване, при условие че алармата е активирана. Премахнато от версия GSM_2017_03_01-23-37.

WatchPowerOn1- активиране на управление на външно захранване, ще бъде изпратено SMS съобщение за изключване на външно захранване, при условие че алармата е активирана.
WatchPowerOn2- активиране на контрол на външно захранване, при всички случаи ще бъде изпратено SMS съобщение за изключване на външното захранване

WatchPowerOff- деактивирайте управлението на външното захранване

GuardButtonOn- активиран е алармен контрол от външни устройства или чрез бутон Премахнато от версия GSM_2017_04_16-12-00.
GuardButtonOn1- функция включване или дезактивиранезащита от външни устройства или бутонът е включен
GuardButtonOn2- функция само продукцииактивиран от външни устройства или бутонът е активиран, дезактивирането се извършва чрез повикване на устройството или чрез SMS команда.
GuardButtonOff- управлението на алармата от външни устройства или чрез бутон е забранено

PCFForceOn- непрекъснато наблюдение на група от всички сензори на разширителя
PCFForceOff- наблюдение на група от всички разширителни сензори само когато устройството е активирано

MainSensorLevelHigh- алармено известие ще бъде изпратено, когато на входа (D6) от сензора се появи сигнал от високо ниво (+5 V)
MainSensorLevelLow- алармено известие ще бъде изпратено, когато на входа (D6) от сензора се появи сигнал с ниско ниво (GND)
MainSensorLevelOff- обработката на входа на сензора (D6) е деактивирана

SecondSensorLevelHigh- алармено известие ще бъде изпратено, когато на входа (A0) от сензора се появи сигнал с високо ниво (+5 V)
SecondSensorLevelLow- алармено известие ще бъде изпратено, когато на входа (A0) от сензора се появи сигнал с ниско ниво (GND)
SecondSensorLevelOff- обработката на сензора на входа (A0) е забранена

Основно закъснение преди аларма- времето, след което ще бъде изпратено „аларма“ SMS известие при задействане на главния сензор (D6), ако алармата не е била дезактивирана през този период. Синтаксисът е същият като при командата DelayBeforeAlarm.
Второ забавяне преди аларма- времето, след което ще бъде изпратено SMS известие „аларма“ при задействане на допълнителен сензор (A0), ако алармата не е била дезактивирана през този период. Синтаксисът е същият като при командата DelayBeforeAlarm.
PCFDelayBeforeAlarm- времето, след което ще бъде изпратено „алармиращо“ SMS известие при задействане на сензорите на разширителната платка (PCF8574), ако алармата не е била дезактивирана през този период от време. Синтаксисът е същият като при командата DelayBeforeAlarm.

GuardOn - ръка
GuardOff - премахване на защитата

Отвори - команда за управление на външно устройство

Информация - проверете състоянието, в отговор на това съобщение ще бъде изпратен sms с информация за номера, от който е включена/изключена сигурността

Пауза - поставя системата на пауза за времето, зададено от командата време за заспиване в минути, системата не реагира на задействане на сензора.

TestOn - тестовият режим е активиран, мига син светодиод.
TestOff - тестовият режим е изключен.

LedOff - изключва светодиода в режим на готовност.
LedOn - включва светодиода в режим на готовност.

Заявка за пари - баланс.

ClearSms - Изтриване на всички sms от паметта

Конзолни команди (до версия GSM_2017_04_24-13-22.hex) - въведени в монитора на Arduino IDE порта:

AddPhone – подобно на SMS командата AddPhone

DeletePhone – подобно на SMS командата DeletePhone

EditSensor - подобно на sms командата EditSensor

ListPhone - показва списъка с телефони, съхранени в паметта, към монитора на порта

ResetConfig - подобно на командата ResetConfig sms

ResetPhone – подобно на sms командата ResetPhone

FullReset - подобно на командата FullReset sms

ClearSms – подобно на командата ClearSms sms

WatchPowerOn1 - подобно на командата WatchPowerOn1 sms
WatchPowerOn2 - подобно на командата WatchPowerOn2 sms
WatchPowerOff - подобно на командата WatchPowerOff sms

GuardButtonOn - подобно на SMS командата GuardButtonOn. Премахнато от версия GSM_2017_04_16-12-00
GuardButtonOn1 - подобно на SMS командата GuardButtonOn1
GuardButtonOn2 - подобно на SMS командата GuardButtonOn2
GuardButtonOff - подобно на SMS командата GuardButtonOff

Memtest - тест на енергонезависимата памет на устройството, всички настройки на устройството ще бъдат нулирани, подобно на командата FullReset.

I2CScan - търсене и инициализиране на поддържани устройства на I2C шината.

ListConfig - извежда текущата конфигурация на устройството към монитора на порта.

ListSensor - извежда текущата конфигурация на сензора към монитора на порта.

UPD. При използване на сензор за движение, за да се изключат фалшиви аларми, когато модемът работи, е необходимо междущифтове GNDи A0 Arduino оказват съпротива, ние казваме благодаря на приятел
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - Номера, на които е разрешено да контролират сигурността.
AlarmPhone = ("70001234501", "70001234502") - Номера за изпращане на SMS известия при задействане на сензор и известия за дезактивиране или включване. Първият номер в списъка ще бъде извикан, когато сензорът се задейства, ако се изпълни командата RingOn, по подразбиране тази опция е активирана. Това е така, защото SMS съобщенията може да отнеме известно забавяне, но обаждането трябва да премине незабавно.

Ако идва обаждане от оторизиран номер или SMS съобщение с командата GuardOn / GuardOff, тогава в зависимост от текущото състояние на защита, SMS съобщение за активиране или дезактивиране ще бъде изпратено до номерата, изброени в масива AlarmPhone, и SMS съобщението също ще бъде изпратено до номера, от който е получено обаждането.

Когато сензорът се задейства SMS съобщенията се изпращат до всички номера от масива (списък) AlarmPhone и ще бъде направено гласово повикване до първия номер от този масив.

Светлинна индикация:
Червен светодиод - въоръжен.
Светодиодът свети в зелено - дезактивиран, активиран/деактивиран чрез SMS команда LedOn / LedOff.
Светодиодът постоянно мига в синьо - той сигнализира, че всичко е наред с Arduino, платката не е замръзнала, използва се изключително за отстраняване на грешки, активира се / деактивира се чрез SMS командата TestOn / TestOff.
* Кодът съдържа функцията LedTest (), мига със син светодиод, направен е само за наблюдение на Arduino, мига означава, че работи, не мига - замръзна е. Още не замръзва :)

Не е уместно!

Свързване на 2 или повече сензора за отворен фърмуер (отнася се само за този фърмуер sketch_02_12_2016.ino)
За да свържете допълнителни тръстикови превключватели, ние използваме безплатни цифрови щифтове D2, D3, D5 или D7. Схема на свързване с допълнителен сензор на D7.

Необходими промени във фърмуера
... #define DoorPin 6 // Номер на входа, свързан към главния сензор int8_t DoorState = 0; // Променлива за съхраняване на състоянието на основния сензор int8_t DoorFlag = 1; // Променлива за съхраняване на състоянието на основния сензор #define BackDoorPin 7 // Номер на входа, свързан към допълнителния сензор int8_t BackDoorState = 0; // Променлива за съхраняване на състоянието на допълнителния сензор int8_t BackDoorFlag = 1; // Променлива за съхраняване на състоянието на допълнителния сензор ...
void setup () (... pinMode (DoorPin, INPUT); pinMode (BackDoorPin, INPUT); ...
... void Detect () (// Прочетете стойности от сензори DoorState = digitalRead (DoorPin); BackDoorState = digitalRead (BackDoorPin); // Обработка на основния сензор, ако (DoorState == LOW && DoorFlag == 0) (DoorFlag = 1; забавяне (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm ();) if (DoorState == HIGH && DoorFlag == 1) (DoorFlag = 0; забавяне (100);) // Обработка на допълнителен сензор if (BackDoorState == LOW && BackDoorFlag == 0) (BackDoorFlag = 1; забавяне (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm ();) if (BackDoorState = = ВИСОКА && BackDoorFlag == 1) (BackDoorFlag = 0; забавяне (100);)) ...

И още нещо:
1. По-добре е да използвате диоди, предназначени за ток от 2 A, тъй като модулът заразява с ток от 1 A ​​и все още трябва да захранваме Arduino и модема с нещо. В този случай се използват диоди 1N4007, ако не успеят, сменете ги с 2 A.
2. Използвах всички резистори за светодиода на 20 kOhm, за да не осветявам целия коридор през нощта.
3. Освен това окачих 20 kOhm резистор на тръстиковия сензор между щифта GND и извода D6.

Това е всичко за сега. Благодаря за вниманието! :)

Смятам да купя +207 Добави в любими Хареса ми ревюто +112 +243


Как да си направим проста GSM алармена система за SIM800L и Arduino за гараж или лятна вила. Правим го сами на базата на готови модули от Aliexpress. Основни модули- GSM модул SIM800L, Arduino Nano (можете да използвате всеки-Uno и т.н.), понижаваща платка, батерия от мобилен телефон.

Ориз. 1. Разположение на модулите за охранителна аларма на Arduino

Сигнално производство

Качваме се макетпрез подложките, което ще ви позволи да смените модулите, ако е необходимо. Активиране на алармата чрез подаване на 4,2 волта захранване през превключвателя към SIM800L и Arduino Nano.



Когато първият цикъл се задейства, системата първо извиква първия номер, след това прекратява повикването и се обажда обратно на втория номер. Вторият номер се добавя само в случай, че първият внезапно бъде прекъснат и т.н. При задействане на втория, третия, четвъртия и петия цикъл се изпраща SMS с номера на задействаната зона, също до два номера. Схема и скица, които се интересуват от описанието под видеото.
Поставяме цялата електроника в подходящ корпус.



Ако не се нуждаете от 5 щипка, свържете 5V щифта на Arduino към входовете, от които не се нуждаете. GSM алармена система за 5 контура с батерия, която ще позволи на устройството да продължи да работи автономно няколко дни в случай на прекъсване на тока. Към тях можете да свържете всякакви защитни контактни сензори, релейни контакти и т.н. В резултат на това получаваме просто, евтино компактно устройство за сигурност за изпращане на SMS и набиране на 2 номера. Може да се използва за охрана на лятна къща, апартамент, гараж и др.

Повече във видеото

Авторът му искаше да направи домашен продукт, така че да е евтин и безжичен.
Този домашен продукт използва PIR сензор за движение, а информацията се предава с помощта на RF модул.

Авторът искаше да използва инфрачервения модул, но тъй като той има ограничен обхват и плюс може да работи самолиния на видимост към приемника, така че той избра RF модул, който може да постигне обхват от приблизително 100 метра.


За да улесня посетителите да разгледат алармата, реших да разделя статията на 5 етапа:
Етап 1: Изградете предавател.
Етап 2: Създайте приемник.
Етап 3: Инсталиране на софтуера.
Етап 4: Тестване на сглобените модули.
Етап 5: Сглобяване на корпуса и инсталиране на модула в него.

Всичко, от което се нуждаеше авторът, беше:
- 2 табла ARDUINO UNO / ARDUINO MINI / ARDUINO NANO за приемник и предавател;
- RF приемо-предавателен модул (433 MHZ);
- PIR сензор за движение;
- 9V батерии (2 броя) и конектори за тях;
- Зумер;
- Светодиод;
- Резистор със съпротивление 220 Ohm;
- Дъска за хляб;
- джъмпери/проводници/джъмпери;
- Платка;
- щифтови съединители между платка;
- Ключове;
- Корпуси за приемник и предавател;
- Цветна хартия;
- Монтажна лента;
- Набиращ скалпел;
- Пистолет за горещо лепило;
- Поялник;
- Режещи тел / инструмент за оголване;
- Ножици за метал.


Етап 1.
Нека започнем да създаваме предавателя.
По-долу е дадена диаграма как работи сензорът за движение.


Самият предавател се състои от:
- Датчик за движение;
- Arduino платки;
- Предавателен модул.


Самият сензор има три изхода:
- VCC;
- GND;
- ВЪН.

След това проверих работата на сензора


Внимание!!!
Преди да изтегли фърмуера, авторът се уверява, че текущата платка и серийният порт са правилно зададени в настройките на Arduino IDE. След това качих скицата:

По-късно, когато сензорът за движение засече движение пред себе си, светодиодът ще светне и вие също можете да видите съответното съобщение на монитора.


Според диаграмата по-долу.


Предавателят има 3 пина (VCC, GND и Data), ние ги свързваме:
- VCC> 5V чрез щифт на платката;
- GND> GND;
- Данни> 12 извода на платката.

Етап 2.


Самият приемник се състои от:
- RF приемен модул;
- Arduino платки
- Зумер (говорител).

Верига на приемника:


Приемникът, подобно на предавателя, има 3 извода (VCC, GND и Data), ние ги свързваме:
- VCC> 5V чрез щифт на платката;
- GND> GND;
- Данни> 12 извода на платката.


Етап 3.
Авторът избра библиотечния файл като основа за целия фърмуер. Изтеглих кой е той и го сложих в папката с библиотеки на Arduino.

Софтуер за предавател.
Преди да качи кода на фърмуера на платката, авторът зададе следните параметри на IDE:
- Платка -> Arduino Nano (или каквато и платка да използвате);
- Сериен порт ->


След като зададе параметрите, авторът изтегли файла на фърмуера Wireless_tx и го качи на дъската:

Софтуер за приемник
Авторът повтаря същите стъпки за приемащия борд:
- Платка -> Arduino UNO (или каквато и платка да използвате);
- Сериен порт -> COM XX (проверете com порта, към който е свързана вашата платка).



След като авторът е задал параметрите, изтегля файла wireless_rx и го качва на дъската:


След това, с помощта на програма, която може да бъде изтеглена, авторът генерира звук за зумера.

Етап 4.
Освен това, след като изтегли софтуера, авторът реши да провери дали всичко работи правилно. Авторът свърза захранванията, подаде ръката си пред сензора и зумерът започна да работи за него, което означава, че всичко работи както трябва.


Етап 5.
Окончателно сглобяване на предавателя
Първо авторът отряза стърчащите щифтове от приемника, предавателя, ардуино платките и т.н.


След това свързах платката arduino със сензора за движение и RF предавателя с помощта на джъмпери.


Тогава авторът започна да прави корпус за предавателя.

Първо изряза: дупка за превключвателя и кръгла дупказа сензора за движение и след това го залепих към тялото.




След това авторът нави лист цветна хартия и залепи изображението на предната корица, за да скрие вътрешните части на домашния продукт.


След това авторът започна да вмъква електронния пълнеж вътре в кутията, използвайки двустранна лента.



Окончателно сглобяване на приемника
Авторът реши да свърже платката Arduino към платката с гумена лента и също така да инсталира RF приемника.


След това авторът изрязва две дупки на другия корпус, едната за зумера, другата за превключвателя.


И го залепва.


След това авторът инсталира джъмпери на всички части.




След това авторът вмъква готовата дъска в кутията и я фиксира с двустранно лепило.

Този проект се отнася до разработването и подобряването на система за предотвратяване/контролиране на всякакви опити за влизане от крадци. Разработеното устройство за сигурност използва вградена система (включва хардуерен микроконтролер, използващ софтуер с отворен код и gsm модем) базирана на GSM (глобална система за мобилни комуникации) технология.

В къщата може да се монтира охранително устройство. Интерфейсният сензор за алармата срещу взлом също е свързан към базираната на контролер алармена система.
Когато се направи опит за проникване, системата изпраща предупредително съобщение (например sms) до собственика на мобилен телефонили на всеки предварително конфигуриран мобилен телефон за по-нататъшна обработка.

Системата за сигурност се състои от микроконтролер Arduino Uno и стандартен SIM900A модем, базиран на GSM / GPRS. Цялата система може да се захранва от всяко захранване/батерия 12V 2A.

По-долу е дадена диаграма на включената система за сигурност Ардуино база.

Работата на системата е много проста и разбираема. При подаване на захранване към системата тя влиза в режим на готовност. Когато щифтовете на конектора J2 са окъсени, на необходимия мобилен номер се изпраща предварително програмирано предупредително съобщение. Можете да свържете всеки детектор за проникване (като светлинен предпазител или детектор за движение) към входния конектор J2. Имайте предвид, че сигналът за активно ниско ниво (L) на щифт 1 на J2 ще активира алармата за взлом.

Освен това към системата е добавено опционално устройство „повикване - аларма“. Той се активира телефонно обажданекогато потребителят натисне бутона S2 (или когато друг електронен блок задейства аларма). След натискане на бутона "повикване" (S2), разговорът може да бъде отменен чрез натискане на друг бутон S3 - бутона "край". Тази опция може да се използва за генериране на аларма за „пропуснато повикване“ в случай на проникване.

Схемата е много гъвкава, така че може да използва всеки SIM900A модем (и разбира се платката Arduino Uno). Прочетете внимателно документацията за вашия модем, преди да започнете сглобяването. Това ще направи процеса на правене на системата по-лесен и по-приятен.

Списък на радиоелементите

Обозначаване Тип Деноминация количество ЗабележкаПазарувайтеМоят тефтер
Arduino платка

Arduino Uno

1 В бележника
GSM/GPRS модемSIM900A1 В бележника
IC1 Линеен регулатор

LM7805

1 В бележника
C1 100μF 25V1 В бележника
C2 Електролитен кондензатор10mkF 16V1 В бележника
R1 Резистор

1 kΩ

1 В бележника
LED1 Светодиод 1 В бележника
S1 БутонС фиксиране1

Добро време на деня 🙂 Днес ще говорим за аларма. Пазарът на услуги е пълен с фирми, организации, които се занимават с монтаж и поддръжка на системи за сигурност. Тези фирми предлагат на купувача широк избораларма. Цената им обаче далеч не е евтина. Но за какво да харчи човек, който няма толкова много лични средства, за да ги прави аларма за взлом? Мисля, че заключението се налага от само себе си - направиаларма от техните на ръка... Тази статия предоставя пример за това как можете да направите своя собствена кодирана система за сигурност с помощта на платка Arduino uno и няколко магнитни сензора.

Системата може да бъде деактивирана чрез въвеждане на паролата от клавиатурата и натискане на „ * ‘. Ако искате да промените текущата парола, можете да го направите, като натиснете „ Б', И ако искате да пропуснете или прекъснете операцията, можете да го направите, като натиснете клавиша ‘#’. Системата има зумер за възпроизвеждане на различни звуци при извършване на определена операция.

Системата се активира чрез натискане на бутона 'A'. Системата дава 10 секунди за напускане на помещението. След 10 секунди алармата ще се активира. Броят на магнитните сензори ще зависи от вашия собствено желание... Проектът включва 3 сензора (за два прозореца и една врата). Когато прозорецът се отвори, системата се активира и алармата изгасва от зумера. Системата може да бъде деактивирана чрез въвеждане на парола. Когато вратата се отвори, алармата дава на посетителя 20 секунди да въведе паролата. Системата използва ултразвуков сензор, който може да открие движение.

Видео за работата на устройството

Правянаправени за информационни/образователни цели. Ако искате да го използвате у дома, ще трябва да го прецизирате. Включете контролния блок метален корпуси осигурете електропровода срещу възможни повреди.

Да започваме!

Стъпка 1: от какво се нуждаем

  • Arduino uno дъска;
  • LCD дисплей с висок контраст 16 × 2;
  • 4 × 4 клавиатура;
  • 10 ~ 20kΩ потенциометър;
  • 3 магнитни сензора (те също са тръстикови превключватели);
  • 3 2-щифтови винтови клеми;
  • HC-SR04 ултразвуков сензор;

Ако искате да изградите система без да използвате Arduino, ще ви трябва и следното:

  • DIP конектор за atmega328 + atmega328 микроконтролер;
  • 16MHz кристален резонатор;
  • 2 бр. 22pF керамика, 2 бр. 0.22uF електролитен кондензатор;
  • 1 бр. 10k ома резистор;
  • захранващ контакт (DC захранващ жак);
  • дъска за хляб;
  • 5V захранване;

И една кутия за опаковане на всичко!

инструменти:

  • Нещо, което може да отреже пластмасова кутия;
  • Пистолет за горещо лепило;
  • Бормашина/отвертка.

Стъпка 2: Алармена верига

Схемата за свързване е доста проста.

Малко уточнение:

LCD с висок контраст:

  • Pin1 - Vdd към GND;
  • Pin2 - Vss до 5V;
  • Pin3 - Vo (към централния щифт на потенциометъра);
  • Pin4 - RS към пин 8 на Arduino;
  • Pin5 - RW към GND;
  • Pin6 - EN към пин 7 на Arduino;
  • Pin11 - D4 към пин 6 на Arduino;
  • Pin12 - D5 към пин 5 на Arduino;
  • Pin13 - D6 към пин 4 на Arduino;
  • Pin14 - D7 към пин 3 на Arduino;
  • Pin15 - Vee (към десния или левия щифт на потенциометъра).

4 × 4 клавиатура:

Отляво надясно:

  • Pin1 към A5 щифт на Arduino;
  • Pin2 към A4 щифт на Arduino;
  • Pin3 към A3 щифт на Arduino;
  • Pin4 към A2 щифт на Arduino;
  • Пин 5 към пин 13 на Arduino;
  • Пин 6 към пин 12 на Arduino;
  • Пин 7 към пин 11 на Arduino;
  • Пин 8 към пин 10 на Arduino.

Стъпка 3: Фърмуер

Стъпката представя кода, който се използва от вградения!

Изтеглете приставката codebender. Щракнете върху бутона "Run" в Arduino и флаширайте платката си с тази програма. Това е всичко. Току-що програмирахте Arduino! Ако искате да направите промени в кода, щракнете върху бутона „Редактиране“.

Забележка: Ако няма да използвате Codebender IDE за програмиране Arduino платки, ще трябва да инсталирате допълнителни библиотеки в Arduino IDE.

Стъпка 4: направете своя собствена контролна платка

След като успешно сглобите и тествате нов проект, базиран на Arduino uno, можете да започнете да правите своя собствена дъска.

Няколко съвета за по-успешно завършване на предприетото:

  • 10K резистор трябва да бъде свързан между изводите 1 (нулиране) и 7 (Vcc) на микроконтролера Atmega328.
  • 16MHz кристал трябва да бъде свързан към щифтове 9 и 10, обозначени с XTAL1 и XTAL2
  • Свържете всеки проводник на резонатора с 22pF кондензатори. Безоловният кондензатор води до пин 8 (GND) на микроконтролера.
  • Не забравяйте да свържете втората захранваща линия ATmega328 към захранването, изводите 20-Vcc и 22-GND.
  • Можете да намерите повече информация за щифтовете на микроконтролера във второто изображение.
  • Ако планирате да използвате захранване с напрежение по-високо от 6V, трябва да използвате линеен регулатор LM7805 и два електролитни кондензатора 0,22uF, които трябва да бъдат монтирани на входа и изхода на регулатора. Важно е! Не прилагайте повече от 6V към платката !!! В противен случай ще изгорите вашия микроконтролер Atmega и LCD дисплей.

Стъпка 5: Поставете веригата в кутията