Контрол на алармата на дисплея на Arduino. Домашна аларма или използване на сензор за движение и LCD монитор с Arduino. Какво е Arduino модул

Днес ще говорим за това как да го използваме Ардуиносъбирам система за сигурност. Нашата "охрана" ще пази една верига и ще управлява един оповестител.

За Arduino това не е проблем и, както ще видите от програмния код и диаграмата на устройството, можете лесно да увеличите броя на защитените точки за достъп и броя на устройствата за уведомяване или индикация.
система за сигурностможе да се използва за защита както на големи обекти (сгради и конструкции), така и на малки предмети (ковчежета, сейфове), и дори преносими кутии и куфари. Въпреки че трябва да сте по-внимателни с последното, ако инсталирате система за сигурност, например, на куфар, с който сте решили да тръгнете на пътуване, и системата за предупреждение работи на някое летище, тогава мисля, че ще имате сериозен разговор с местната служба за сигурност :-)

Опростеният принцип на работа на устройството е както следва (фиг. 1). След включване на захранването устройството влиза в режим на работа и изчаква поемане под охрана. Активирането и дезактивирането се извършва с един бутон. За да увеличите сигурността, по-добре е да поставите този бутон вътре в защитената стая (сейф или кутия). Преди да включите режима на сигурност, вратата трябва да се отвори леко. При включен режим на защита (с натискане на бутона) електронна схемаизчаква, докато затворите вратата на стаята (вратата на сейфа, капака на кутията и др.).

Всеки тип краен превключвател трябва да бъде инсталиран на вратата (или вратата), повече за това по-късно. Затваряйки (или отваряйки), крайният превключвател ще информира устройството, че защитената верига е затворена и устройството ще премине в режим на охрана. Системата ще ви уведоми за преминаването към режим на охрана с две кратки сигнали(както при автомобилните аларми). В този режим устройството "хваща" отварянето на вратата. След отваряне на вратата системата изчаква няколко секунди (това е конфигурируема стойност, за стаи около десет секунди, за бокс едно или две) за дезактивиране, ако това не се случи, сирената се включва. Алгоритъмът и веригата са проектирани по такъв начин, че сирената може да бъде изключена само чрез пълно разглобяване на корпуса и изключване на захранването.

устройство система за сигурност много проста (фиг. 2). В основата на дъската Ардуино. Крайните изключватели са свързани като обикновен бутон, чрез издърпващи резистори. Отделно ще се спра на крайните изключватели. Те са нормално затворени и нормално отворени. Можете да включите обикновен бутон като краен превключвател, само ходът на обикновен бутон е много голям, луфтът на вратата обикновено е по-голям. Следователно е необходимо да се измисли някакъв вид тласкач за бутона и да го пружинирате, за да не счупите бутона с вратата. Е, ако не е твърде мързелив, тогава можете да отидете до магазина и да си купите магнитен превключвател (тръстиков превключвател) (фиг. 3), той не се страхува от прах и замърсяване.

Подходящ е и краен изключвател за автомобилни аларми (фиг. 4). Трябва да се отбележи, че програмата е написана за рийд превключвателя. Когато вратата е затворена, нейният контакт е затворен. Ако използвате превключвател от автомобилна аларма, тогава когато вратата е затворена, тя най-вероятно ще бъде отворена и на съответните места в кода ще трябва да промените 0 на 1 и обратно.

Като сирена предлагам да използвам звуков сигнализатор PKI-1 IVOLGA на беларуско производство (фиг. 5). Захранващо напрежение 9 - 15 V, работен ток 20 - 30 mA. Това позволява да се използва с батерия. В същото време той "издава" 95 - 105 dB.

С такива характеристики от батерията Krona тя ще звучи няколко десетки минути. Намерих го в интернет за 110 рубли. На същото място тръстиков превключвател с магнит струва около 30 рубли. Превключвателят от автомобилната аларма в авточасти е закупен за 28 рубли. Транзисторът KT315 може да бъде взет с всяка буква или заменен с всеки модерен силициев транзистор с ниска мощност с подходяща проводимост. Ако обемът на един сигнализатор не е достатъчен (кой знае, може би искате да бъдете чути на много километри), можете да свържете няколко сигнализатора паралелно или да вземете по-мощен, само в този случай транзисторът трябва да бъде заменен с по-мощен (например познатия транзисторен монтаж ULN2003). Като конектори за свързване на тръстиков превключвател и сирена използвах най-простите конектори за аудио / видео устройства - цената на радиопазара е 5 рубли. за двойка.

Тялото на устройството може да бъде залепено от пластмаса или шперплат; ако се охранява сериозен обект, тогава е по-добре да го направите метален. Батериите или акумулаторите за повишаване на надеждността и безопасността е желателно да се поставят вътре в кутията.

За опростяване на програмния код не са използвани енергоспестяващи елементи и батериите не са достатъчни за дълго време. Можете да оптимизирате кода или дори по-добре радикално да го преработите, като приложите обработка на събития при прекъсвания и режим на заспиване на MK. В този случай захранването от две квадратни батерии, свързани последователно (9 V), трябва да продължи няколко месеца.

Сега кодът

// постоянно
бутон const int = 12; // игла за бутон
const int gerkon = 3; // щифт за рид ключ
const int сирена = 2; // щифт за управление на сирената
const int led = 13; // индикаторен щифт
// променливи
int buttonState = 0; // състояние на бутона
intgerkonState=0; // състояние на рийд превключвателя
int N = 0; // брояч на бутона за деактивиране
void setup()(
// управление на сирена и индикатор - изход
pinMode(сирена, ИЗХОД);
pinMode(led, OUTPUT); // бутон и ринд превключвател - входове
pinMode(gerkon, INPUT);
pinMode(бутон, INPUT);
}
void loop()(
digitalWrite(led, HIGH);
while(buttonState= =0)( // цикъл на изчакване до натискане на бутона
buttonState = digitalRead(бутон); // за превключване в режим на охрана
}
digitalWrite(led, LOW);
buttonState=0; // стойността на бутона за нулиране
while(gerkonState= =0)( // цикъл докато затворим вратата

}
забавяне (500); // :-)
digitalWrite(сирена, ВИСОКО); // Кодът
забавяне (100); // индикации
digitalWrite(сирена, НИСКО); // включвам
забавяне (70); // режим
digitalWrite(сирена, ВИСОКО); // пази
забавяне (100); // уведомление
digitalWrite(сирена, НИСКО); // звук
while(gerkonState= =1)( // изчакайте вратата да се отвори
gerkonState = digitalRead(gerkon);
}
за (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(бутон); // таен бутон
if (buttonState = = HIGH) ( // следим нашите собствени - нечии други
N=N+1;
}
забавяне (1500); // тайна функция :-)))
}
if (N > 0) ( // най-важното
digitalWrite(сирена, НИСКО); // не включвайте сирената
}
иначе(
digitalWrite(сирена, ВИСОКО); // или включете сирената
}
digitalWrite(led, HIGH); // включване на индикатора N = 0;
buttonState=0;
забавяне (15000); // напомняне за манекени, които харесват
digitalWrite(led, LOW); // бутони без забавяне на прекъсване (1000);

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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



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

Добавяне на телефон- екип
: - разделител
5 - запис в петата клетка от паметта
+71234567890 - телефонен номер
До версия GSM_2017_05_26-20-22.hex:
a - параметър "Аларма" - на номера с този параметър ще се изпращат SMS съобщения - алармени съобщения и съобщения за включване или изключване.
Започвайки от версия GSM_2017_05_26-20-22.hex:
m - параметър "Управление" - разрешено е управление на алармата
s - параметър "SMS" - ще бъде изпратено SMS съобщение при задействане на сензори
r - параметър "Ring" - гласово повикване ще бъде направено при задействане на сензорите
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+Datchik dvizheniya v koridore#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 секунди преди активиране


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

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

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


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

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

WatchPowerTime - команда
: - разделител
5 - 5 минути преди изпращане на SMS съобщение


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

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

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


ID на модема- Принудително инсталиране на модела на използвания модем. Възможни стойности: 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.

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

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

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

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

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

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

Изключване на часовника- изключете външното управление на захранването

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

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

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

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

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

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

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

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

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

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 - подобно на sms командата ResetConfig

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

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

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

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

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Ардуино оказа съпротиваБлагодаря ти приятел
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - Номера, на които е разрешено да управляват сигурността.
AlarmPhone = ("70001234501", "70001234502") - Номера за изпращане на SMS известия при задействане на датчик и известия за дезактивиране или активиране. Първият номер в списъка ще бъде извикан, когато сензорът се задейства, ако се изпълни командата RingOn, по подразбиране тази опция е активирана. Това се прави, защото sms съобщенията могат да пристигнат с известно закъснение и разговорът трябва да премине незабавно.

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

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

Светлинна индикация:
Светодиодът свети червено - активиран.
LED свети в зелено- дезактивиран, активиран/деактивиран чрез 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); //Обработка на главния сензор if (DoorState == LOW && DoorFlag == 0) ( DoorFlag = 1; закъснение(100); ако (LedOn == 1) digitalWrite(GLed, LOW); Аларма(); ) ако (DoorState == HIGH && DoorFlag == 1)( DoorFlag = 0; закъснение(100); ) //Обработка на допълнителен сензор if (BackDoorState == LOW && BackDoorFlag == 0) ( BackDoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); ) if (BackDoorState = = HIGH && 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

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

Преглед на елементите

Закупено:
1. Дъска за хлябедностранно 5х7 см: гетинакс- или фибростъкло
* - фибростъклото е много по-добро от getinaks.
2. Модул Neoway M590 - , с PCB антена -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Контролна платка за зареждане-разреждане на литий -

Получени от руините на цивилизацията:
1. Стелажи за табло, изрязани от корпусите на устройства - 6 бр.
2. Литиева плоска батерия 1300mAh
3. Скоби, използвани за фиксиране на кабела към стената
4. Гумичка за канцеларски материали
5. Медна тел с дебелина 1,5 мм
6. Кутия за инструменти от местния радио пазар - 1.5$
7. Двойка светодиоди различен цвят(взето от VHS плейър)
8. Антена и бутон с капачка (взети от Wi-Fi рутер)
9. 4-пинов клемен блок (взет от димер)
10. Конектор за захранване (взет от старо зарядно за 18650)
11. 6-пинов конектор (взет от DVD устройство)
12. Тенекия (от кафе например)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Спецификации:
Микроконтролер: ATmega168PA
Работно напрежение директно:.8 - 5.5 V
Работно напрежение през стабилизатора LE33: 3,3 V или 5 V (в зависимост от модела)
Работна температура:-40°C… 105°C
Входен волтаж: 3,35-12V (3,3V модел) или 5-12V (5V модел)
Цифрови входове/изходи: 14 (6 от които могат да се използват като PWM изходи: 3, 5, 6, 9, 10 и 11)
Аналогови входове: 6
Таймери-броячи:два 8-битови и един 16-битов
Енергоспестяващи режими: 6
DC ток през вход/изход: 40 mA
Флаш памет: 16 KB (2 използвани за зареждане)
RAM: 1 Kb
EEPROM: 512 байта
Ресурс за запис/изтриване на паметта: 10 000 Flash/100 000 EEPROM
Тактова честота: 8 MHz (3,3 V модел) или 16 MHz (5 V модел)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) и A5 (SCL)
UART TTL: 0 (RX) и 1 (TX)
Лист с данни:

Изборът падна върху тази atmega съвсем случайно. в един форум, където се обсъждаха енергийно ефективни проекти, в коментарите получих съвет да използвам точно 168-та atmega.
Трябваше обаче да се помръдна, за да намеря такава платка, тъй като много често всички партиди бяха наводнени с 328 atmegas при честота 16 MHz, работещи от 5V. За моя проект такива характеристики бяха излишни и неудобни от самото начало, търсенето стана по-сложно.
В резултат на това се натъкнах на 3,3-волтова версия на Pro Mini на Atmega 168PA в eBay, и то не само китайска, а под марката RobotDyn от руски разработчик. Да, и аз в началото като теб имах зрънце съмнение. Но напразно. Когато проектът вече беше сглобен и AliExpress въведе задължителна платена доставка за евтини стоки (след което колетите започнаха да се губят много по-често), тогава по-късно поръчах обикновен Pro Mini Atmega168 (без PA) 3.3V 8MHz. Експериментирах малко с режимите за пестене на енергия и с двете платки, като мигах във всяка специална скица, която потапя микроконтролера в режим на максимално пестене на енергия и ето какво се случи:
1) Arduino Pro Mini "RobotDyn": ~250uA
2) Arduino Pro Mini "NoName":когато се подава захранване към регулатора на напрежението (RAW изход) и светодиодът е запоен, консумацията на ток е ~3,92mA




- както разбирате, разликата в консумацията на енергия е почти 16 пъти, всичко това, защото Moscow Pro Mini на NoName използва куп Atmega168 +, от които самият MK яде само 20uAток (проверих това отделно), цялата останала лакомия пада върху линейния преобразувател на напрежение AMS1117 - листът с данни само потвърждава това:


В случая на платката от RobotDyn връзката вече е малко по-различна - това е Atmega168PA + - тук вече се използва друг LDO стабилизатор, чиито характеристики по отношение на пестенето на енергия се оказаха по-приятни:


Не съм го запоявал, така че не мога да кажа колко ток консумира Atmega168PA в чист вид. В този случай имах ~250uAкогато се захранва от литиева батерия Nokia. Въпреки това, ако разпоявате AMS1117 с NoName "на московската платка, тогава ATmega168 е обикновен, в чистата си форма, както казах по-горе, консумира 20uA.
Захранващите светодиоди могат да бъдат избити с нещо остро. Не е проблем. Стабилизаторът беше запоен със сешоар. Въпреки това, не всеки има сешоар и умения за работа с него, така че и двете горни опции имат право да съществуват.

Модул Neoway M590E

Спецификации:
Честоти: EGSM900/DCS1800 двубандов, или GSM850/1900 или четирибандов
Чувствителност:-107dBm
Максимална мощност на предаване: EGSM900 Class4(2W), DCS1800 Class1(1W)
Пиков ток:
Работен ток: 210mA
Ток на сън: 2,5mA
Работна температура:-40°C… +85°C
Работно напрежение: 3.3V…4.5V (препоръчително 3.9V)
Протоколи: GSM/GPRS Phase2/2+, TCP/IP, FTP, UDP и др.
Интернет: GPRS КЛАС 10
Лист с данни:

Най-евтиният GSM модул, който може да се намери на пазара, обикновено втора употреба, не винаги разпоен китайски ръцеот оборудването. Защо не винаги умен? Да, всичко заради запояване със сешоар - често тези модули идват при хора с късо съединение плюс и минус, което е една от причините за тяхната неработоспособност. Следователно, първата стъпка е да позвъните на захранващите контакти за късо съединение.

Забележка.Бих искал да отбележа отделна, важна според мен точка - тези модули могат да се доставят с кръгъл коаксиален конектор за антената, което ви позволява отделно да поръчате по-сериозна антена и да я свържете към модула, без да танцувате с тамбура . И те могат да дойдат без този конектор. Това е, ако говорим за най-евтините комплекти. Ако не искате да разчитате на късмет, тогава има комплекти, които са малко по-скъпи, където присъства този конектор + комплектът идва с външна антена върху текстолитна дъска.

Този модул също е капризен преди захранване, тъй като в пика си консумира до 2А ток, а диодът, който идва с комплекта, изглежда е проектиран да сваля напрежението от 5V (затова на самата платка пише 5V ) до 4.2V, но съдейки по оплакванията на хората, той създава повече проблеми, отколкото ползи.
Да предположим, че вече сте сглобили този модул и вместо диод е запоен джъмпер, тъй като няма да подаваме напрежение от 5V към него, а ще го захранваме директно от литиева батерия, която попада в рамките на допустимото напрежение от 3.3-4.2V.
Ще бъде необходимо по някакъв начин да го свържете към компютъра и да проверите за работоспособност. За този случай е по-добре да си купите предварително - чрез него ще комуникираме с модула и Ардуино дъскичрез сериен интерфейс UART (USART).
Връзката е показана по-долу на снимката (начертах я възможно най-добре):
TX модем >>> RX конвертор
RX модем<<< TX конвертера
Батерия Плюс - Модем Плюс
Минусът на литиевата батерия се комбинира с GND на модема и GND на преобразувателя
За да стартирате модема, свържете изхода BOOT през резистор 4,7 kΩ към GND


Междувременно стартирайте програмата на компютъра. Обърнете внимание на настройките:
1) Изберете COM порта, към който е свързан TTL конверторът, в моя случай това е COM4, ​​вашият може да е различен.
2) Изберете скоростта на предаване. (Тук има нюанс, тъй като самите модули могат да бъдат конфигурирани за различни скорости, най-често 9600 бода или 115200 бода. Тук трябва да изберете емпирично, като изберете някаква скорост, свържете се и изпратите AT командата, ако в отговор идват пукнатини , след това ще се изключи, изберете различна скорост и повторете командата, докато отговорът е ОК).
3) Изберете дължината на пакета (в този случай 8 бита), битът за паритет е деактивиран (няма), стоп битът (1).
4) Не забравяйте да поставите отметка +CR, а след това знак за връщане на каретка ще бъде автоматично добавен към всяка команда, която изпращаме към модула в края - модулът разбира команди само с този знак в края.
5) Връзка, тук всичко е ясно, щракнахме и можем да работим с модула.

Ако щракнете върху „Свързване“ и след това стартирате модула, като приложите BOOT през 4.7K резистор към земята, първо съобщението „MODEM:STARTUP“ ще се покаже в терминала, след това след известно време съобщението „+ PBREADY" ще се покаже, което означава, че телефонният номер е прочетен. книга, въпреки че може да е празна:

Под този спойлер AT команди с примери

Отпечатваме AT командата - в отговор модулът ни изпраща нашата команда, тъй като режимът на ехо е активиран и OK:

Нека проверим състоянието на модема с командата AT + CPAS - в отговор нашият екип отново + CPAS: 0 и OK.
0 - означава, че модулът е готов за работа, но в зависимост от ситуацията може да има и други числа, например 3 - входящо повикване, 4 - в режим на връзка, 5 - режим на заспиване. Не можах да намеря информация за 1 и 2.

Промяната на скоростта на предаване на данни чрез UART става с командата AT + IPR = 9600 - това е, ако имате нужда от скорост 9600. Ако е друга, подобна на AT + IPR = 19200 например или AT + IPR = 115200.

Да проверим мрежовия сигнал. AT + CSQ, + CSQ идва в отговор: 22.1 - стойността преди десетичната запетая има диапазон от 0 ... 31 (115 ... 52 dB) - това е нивото на сигнала, колкото повече, толкова по-добре. Но 99 означава липсата му. Стойността след десетичната запетая - качество на сигнала 0 ... 7 - тук е обратното, колкото по-малко е числото, толкова по-добре.

Нека изключим режима на ехо, като изпратим командата ATE0, така че дублиращите се команди да не пречат. Този режим се включва отново с командата ATE1.

Вижте версията на фърмуера на AT+GETVERS



Тези и много други команди могат да бъдат прегледани

Комбинация от табла

Ако Pro Mini не е трудно да се запои към макет, тогава с GSM модул ситуацията е малко по-сложна, т.к. неговият контактен гребен е разположен само от едната страна и ако само той е запоен, тогава другата страна на платката просто ще виси във въздуха. След това, отново на око, трябваше да пробия допълнителни 3 дупки близо до три ъгъла на дъската. След това зоните около всяка от дупките бяха демаскирани. За удобство поставих изключените проводници от гребена върху платката без запояване (бяла) и след като инсталирах платката на GSM модула върху тях, нормално запоих:

По-късно трябваше да направя друга дупка, в моя случай на буквата "I", където пише "Made In China", на ръба на дъската.


Случи се така, че добавеният контакт, който по същество е GND, стана близо до GND на платката Pro Mini и по този начин стана възможно да се комбинира масата на GSM модула и Pro Mini с капка спойка (дълъг кабел в средата и вдясно от него е проводникът Pro Mini) - отбелязани са със стрелки. Оказа се криво, разбира се, но сега се държи сигурно:



Остана малко място между платките - поставих платка за контрол на зареждането на литиев разряд с предварително запоен microUSB конектор и запоени проводници в нея.

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



Стелажи за дъски

За да фиксирам сигурно платката в кутията, трябваше да прекарам няколко дни в мислене как това може да се приложи. Вариантът с горещо лепило не беше разгледан по няколко причини - може да падне, да се деформира и най-важното е, че дизайнът ще се окаже труден за разглобяване.
Стигнах до извода, че най-простият и правилен вариант тук би бил да използвам стелажи, които естествено нямах. Имаше обаче няколко неработещи зарядни устройства, откъдето беше изрязана една дълга стойка с резба за самонарезни винтове. Всяка стойка беше разрязана наполовина и завършена с пила до около 9,5 мм - именно на тази височина батерията, разположена под платката, има достатъчен запас, около 2 мм - това се прави, за да не се допират запоените контакти на платката то с върховете им и така, че да може да се постави парче между тях дунапрен за фиксиране.
Що се отнася до закрепването на дъската директно към кутията, тук изрязах четири ленти от кутия за кафе, пробих дупка в краищата на която, след което ги фиксирах върху същите самонарезни винтове, които се завинтват в стелажите. Вижте снимката по-долу, за да видите как изглежда.
Следващата стъпка е да завиете чифт стойки от другата страна на дъската, тоест отгоре, така че когато кутията е затворена, капакът леко лежи върху тези стойки, създавайки допълнителна фиксация. Малко по-късно, по този случай, попаднах на сграда от съветското пропагандно радио (ако беше намерена по-рано, щях да взема всички стелажи оттук), където намерих няколко повече или по-малко подходящи височини, но първо ги пробих в центъра с бормашина под самонарезни винтове. След това ги отряза и също ги довърши с пила, премахвайки излишното. Тук имам една тънкост - на снимката се вижда, че едната бяла стойка е завинтена към гетинаксовата платка от ръба, а другата бяла стойка е директно към модулната платка, т.к. от единия ръб платката на модема напълно покрива долната платка, а от противоположния ръб, напротив, долната гледа навън. В същото време трябваше допълнително да се пробият дупки в двете дъски, така че главите на самонарезните винтове да могат да минават свободно.
И накрая, остава да се уверите, че дъската винаги е успоредна на кутията - скобите, които се използват за фиксиране на проводници и кабели на стената, пасват идеално под тази кутия, преди това премахнах пироните от тях. Скобите се придържат добре към платката с вдлъбнатата си страна без никакви допълнителни приспособления, единственото нещо е вдясно от SIM картата, ширината на скобата се оказа прекалено голяма и трябваше да се шлайфа.
Всички детайли бяха коригирани на око и емпирично, по-долу е снимка на всичко по-горе:



Съединители. светодиоди. Бутон.

Тъй като ми свърши гребенът, трябваше да демонтирам 6-пиновия конектор от платката на DVD устройството, който след това запоих към Pro Mini, това е за удобство на флашването на платката. Наблизо запоих кръгъл конектор (Nokiev 3,5 мм) за зареждане на литий.

Корпусът на 6-пиновия конектор беше леко доработен с пила, защото ръбовете му леко стърчаха над корпуса. Буксата за зареждане пасва перфектно на стената на кутията.

От другата страна на платката запоих бутон за нулиране на устройството и два светодиода за отстраняване на грешки във фърмуера - червеният светодиод е свързан към GSM модула, вторият зелен светодиод е свързан към 10-ия изход на Pro Mini - това е по-лесно за мен да отстранявам грешки в програмата.

Надграждане на батерията

Плоската батерия Nokian от телефоните на Nokia е не по-малко разпространена от 18650, но мнозина просто отказват да я използват поради неудобството при свързване на контакти, които са вдлъбнати дълбоко в самата батерия. Не е желателно да ги запоявате, затова беше решено да се използва методът, предложен от тях, а именно да се направи контактен блок от канцеларска гума и медна тел (дебелина 1,5 mm).
Първо, пробих парче гума с два проводника с предварително оголени краища и го разбрах до контактите на батерията, така че разстоянието между тях да съвпада,
той огъна краищата, калайдиса ги с поялник и ги дръпна малко назад за дългите краища, така че получените контакти да потънат в гумичката.



Пример за батерия:

Можете да фиксирате клемния блок с гумена лента или да го увиете със синя електрическа лента, което направих в крайна сметка.

Сглобяване.

Основната част от работата е свършена, остава да се събере и поправи всичко.
Между батерията и платката поставих парче гума от пяна, за да не пълзи по-късно в кутията. Допълнително запоих кондензатор 2200 uF за захранване на модула.

Когато зареждането е свързано:

Кадър. Външен клемен блок.

Калъфът се появи на местния радиопазар за около $ 1,5, ако се преведе в долари, с размери 95x60x25 мм, почти колкото кутия цигари. Пробих няколко дупки в него. Първо, за 4-пинов клемен блок, взет от неработещ димер.
Напълно освободих двата крайни контакта от болтове с уплътнения, пробих дупки за по-дълги болтове, върху които ще се държи целият клемен блок на кутията. На самия корпус, разбира се, двата крайни отвора ще са големи, а двата в средата ще са по-малки - в тях ще има резбовани контакти, единият от които е свързан към VCC Pro Mini, а вторият контакт към щифт 2.

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

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

Платка в кутия със свързан USB-TTL конвертор кабел:

Относно антената.
Антената, както може би сте забелязали в хода на прегледа, постоянно се променяше, докато експериментирах с различни домашни антени. Първоначално на платката на модула имаше кръгъл коаксиален конектор, но на петия път, когато беше използван за външна антена, той просто се разпадна, така че имайте предвид, че е крехък. В резултат на това извадих текстолитната антена от стария рутер и я запоих към платката на модула, т.к. хваща мрежата малко по-добре от пружината и телта.

Е, напълно сглобен със свързаното зареждане изглежда така:

Тест. Как работи:

В допълнение към тестовете с антени, проверих как алармата ще се държи на улицата, при студ -15. За да направя това, просто поставих цялата вътрешност в контейнер и го оставих на балкона за през нощта, докато алармата не стартира, причината се оказа като цяло очевидна - литият не обича замръзване. Това беше потвърдено от друг тест, при който оставих батерията у дома и изкарах платката през дълги проводници на улицата и я оставих така за един ден в същата слана - работа, сякаш нищо не се е случило. От друга страна, би било странно, ако алармата не работи. в дейташитовете за атмега, за модула, за кварц - допустимите работни температури са до -40 градуса.

Принципът на работа е организиран от външно прекъсване, първоначално пин 2 е затворен към VCC и по този начин се поддържа логическа 1 на изхода, а контролерът спи. Веднага щом контактът е прекъснат и на пин 2 се появи 0, микроконтролерът се събужда, спуска 3-тия щифт (към който модемът BOOT е свързан чрез резистор) към земята - модулът стартира, MK периодично проверява модула за готовност, а щом хване мрежата, веднага изпраща обаждане на телефона на собственика, посочен в кода. След отхвърляне на повикването устройството се изключва, без да изпраща повече безкрайни обаждания, отколкото много китайски аларми грешат.

Допълнителна информация

#включи #включи // софтуерна UART библиотека SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // празен манипулатор на прекъсване ///////////////////////////// ////////// /////////////// void gsmOFF()( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Диаграма (без контролна платка за зареждане-разреждане)



Изводи и мисли. Планове.

Алармата се използва в страната, доволен съм от работата, но с по-нататъшното изучаване на AVR се появяват все повече идеи за нейната по-нататъшна модификация. Arduino с неговия псевдоезик Wiring ме разстрои много, защото. Имаше един неприятен момент в работата. Когато използвах функциите за работа с ports digitalWrite(); или pinMode(); - тогава GSM-модулът по някаква причина много често затваряше. Но си струваше да ги заменим с трикове като DDRB|=(1<Само операцията за директен достъп до портовете направи устройството да работи, както беше предназначено.

За пестене на енергия...
Сглобеното устройство работи четири пълни месеца без презареждане и продължава да работи, въпреки че е по-правилно да се каже „спи“. Това се проверява чрез просто рестартиране чрез белия бутон. С консумация от 250 μA (през стабилизатора LE33) и батерия от ~1430 mAh, въпреки че добре, поради неновостта на батерията ще закръглим до 1000mAh, се оказва, че устройството може да спи около 5,5 месеца без презареждане. Ако все още разпоявате стабилизатора, тогава времето за работа може безопасно да се умножи 10 пъти. Но в моя случай няма нужда от това, защото все още трябва да харчите баланса от SIM картата на всеки три месеца, като в същото време устройството може да бъде проверено и презаредено.
Примерът за пестене на енергия, даден в прегледа, далеч не е границата, т.к. съдейки по информацията от листа с данни, възможно е да се намали тактовата честота на микроконтролера (и това става чрез инсталиране на предпазители) до 1 MHz и, ако се приложи напрежение от 1,8 V, тогава консумацията ще падне под лентата от 1 μA в активен режим. Много глупаво! Но ако MK е тактован от вътрешния RC генератор, тогава ще се появи друг проблем - UART етерът ще бъде запушен с боклук и грешки, особено ако контролерът се нагрява или охлажда.

При завършване...
1) Конвенционалната жица, настроена за прекъсване, не е много удобна, планирам да експериментирам със сензор на Хол и тръстиков превключвател, въпреки че казват за последния, че не е много надежден, защото контактите вътре в него могат да се залепят.
2) Би било хубаво да добавите възможност за промяна на "номера на собственика" без участието на компютър и мигане. Това вече с EEPROM ще трябва да работи.
3) Пробвай с прекъсвания от watchdog timer-а, но не само за любопитство, а микроконтролерът периодично да се събужда сам, да измерва напрежението на батерията и да изпраща получената стойност чрез SMS, за да е наясно колко е изтощена батерията.
4) Слънчевият панел може напълно да премахне необходимостта от презареждане на устройството, това ще важи особено за батерии с малък капацитет.
5) От дълго време исках да купя LiFePo4 батерии, които според прегледите обикновено понасят замръзване, но докато търсех подходяща партида, пролетта вече неусетно дойде.
6) Работете върху естетическия компонент

Кой Pro Mini да купя?
Ако няма сешоар, тогава Pro Mini "RobotDyn" Atmega168PA 3.3V, вземете светодиода с нещо остро и имайте ~ 250 μA.
Ако има сешоар, тогава всяка платка, спойка стабилизатора и захранващия светодиод - получавате ~ 20 μA консумация на ток.

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

Смятам да купя +174 Добави към любими Рецензията ми хареса +143 +278

Инфрачервените (IR) сензори обикновено се използват за измерване на разстояния, но могат да се използват и за откриване на обекти. Свързвайки няколко IR сензора към Arduino, можем да създадем аларма срещу крадец.

Преглед

Инфрачервените (IR) сензори обикновено се използват за измерване на разстояния, но могат да се използват и за откриване на обекти. IR сензорите се състоят от инфрачервен предавател и инфрачервен приемник. Предавателят излъчва импулси на инфрачервено лъчение, докато приемникът открива всякакви отражения. Ако приемникът засече отражение, това означава, че има някакъв обект пред сензора на известно разстояние. Ако няма отражение, няма обект.

IR сензорът, който ще използваме в този проект, открива отражения в определен диапазон. Тези сензори имат малко линейно зарядно-свързано устройство (CCD), което открива ъгъла, под който IR радиацията се връща към сензора. Както е показано на фигурата по-долу, сензорът предава инфрачервен импулс в пространството и когато обект се появи пред сензора, импулсът се отразява обратно към сензора под ъгъл, пропорционален на разстоянието между обекта и сензора. Сензорният приемник открива и извежда ъгъла и като използвате тази стойност, можете да изчислите разстоянието.

Като свържем няколко инфрачервени сензора към Arduino, можем да направим проста аларма срещу крадец. Ще поставим сензори на рамката на вратата и чрез правилно подравняване на сензорите ще можем да открием, когато някой минава през вратата. Когато това се случи, изходът на IR сензора ще се промени и ние ще открием тази промяна чрез постоянно четене на изхода на сензорите с Arduino. В този пример знаем, че обект преминава през вратата, когато изходът на IR сензора надвиши 400. Когато това се случи, Arduino ще задейства аларма. За да нулира алармата, потребителят може да натисне бутона.

Аксесоари

  • 2 x IR сензор за разстояние;
  • 1 x Arduino Mega 2560
  • 1 х зумер;
  • 1 х бутон;
  • 1 x 470 ома резистор;
  • 1 x NPN транзистор;
  • джъмпери.

Схема на свързване

Схемата за този проект е показана на фигурата по-долу. Изходите на двата IR сензора са свързани към щифтове A0 и A1. Другите два щифта са свързани към 5V и GND щифтовете. 12-волтов зумер е свързан към пин 3 чрез транзистор и бутон, използван за деактивиране на алармата, е свързан към пин 4.


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


Инсталация

  1. Свържете 5V и GND щифтовете на платката Arduino към захранващите и GND щифтовете на сензорите. Можете също да им подадете външно захранване.
  2. Свържете изходните щифтове на сензорите към щифтове A0 и A1 на платката Arduino.
  3. Свържете пин 3 на Arduino към основата на транзистора чрез 1K резистор.
  4. Приложете 12V към колектора на транзистора.
  5. Свържете положителния проводник на 12V зумер към излъчвателя и отрицателния проводник към заземителната шина.
  6. Свържете пин 4 към пин 5V чрез бутон. От съображения за безопасност винаги е най-добре да правите това чрез допълнителен малък резистор, за да избегнете висок ток.
  7. Свържете платката Arduino към вашия компютър чрез USB кабел и качете програмата на микроконтролера с помощта на Arduino IDE.
  8. Включете захранването на платката Arduino, като използвате захранването, батерията или USB кабела.

Кодът

const int зумер=3; // пин 3 е изходът към зумера const int pushbutton=4; // пин 4 е входът на бутона void setup() ( pinMode(buzzer,OUTPUT); // задаване на пин 3 за изход pinMode(pushbutton,INPUT); // задаване на пин 4 за вход) void loop() ( // четене изхода на двата сензора и сравнете резултата с праговата стойност int sensor1_value = analogRead(A0); int sensor2_value = analogRead(A1); if (sensor1_value > 400 || sensor2_value > 400) ( while(true) ( ​​​​digitalWrite( buzzer,HIGH) ; // активиране на алармата if(digitalRead(pushbutton) == HIGH) break; ) ) else ( digitalWrite(buzzer,LOW); // деактивиране на алармата ) )

Видео

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

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

Системата се активира с натискане на бутон „А“. Системата дава 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 power jack);
  • дъска за хляб;
  • 5V захранване;

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

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

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

Стъпка 2: Диаграма на алармата

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

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

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

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

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

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

  • Pin1 към A5 Arduino щифт;
  • Pin2 към A4 Arduino щифт;
  • Pin3 към Arduino pin A3;
  • Pin4 към Arduino pin A2;
  • Pin5 към Arduino pin 13;
  • Pin6 към Arduino pin 12;
  • Pin7 към Arduino pin 11;
  • Pin8 към Arduino pin 10.

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

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

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

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

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

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

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

  • Резистор от 10 kΩ трябва да бъде свързан между пин 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: Поставете веригата в кутията