- Списък на компонентите
- Електрическа схема за заключване на вратата на клавиатурата Arduino
- Arduino код за заключване на вратата на цифровата клавиатура
- Сглобяване и тестване на Arduino Keypad DoorLock
Често пъти трябва да осигурим стая в дома или офиса си (може би тайна лаборатория на Декстър), така че никой да не може да влезе в стаята без наше разрешение и да осигури защита срещу кражба или загуба на важните ни аксесоари и активи. Днес има толкова много видове системи за сигурност, но зад кулисите, за удостоверяване, всички те предават на пръстови отпечатъци, скенер на ретината, скенер на ириса, идентификатор на лице, скенер на език, RFID четец, парола, щифт, модели и т.н. евтиният е да се използва парола или пин-базирана система. И така, в този проект съм изградил ключалка за врата на клавиатурата Arduino, която може да бъде монтирана на всяка от съществуващите ви врати, за да ги защити с цифрова парола. Преди това изградихме и други интересни брави за врати, които са изброени по-долу.
- Брава за врати Arduino RFID
- Заключване на вратата на соленоида Arduino
- Заключване на цифров код на Raspberry Pi
- 555 Таймер електронно заключване на вратата
Преди да изградим нашия проект за заключване на врата с парола, първо трябва да съберем необходимите компоненти и след това да продължим и да следваме стъпка по стъпка процеса на изграждане.
Списък на компонентите
- Arduino Uno / Pro / Mini или персонализирана платка, използваща микроконтролер Atmega 328p
- 16 x 2 LCD (течнокристален дисплей)
- 4 x 3 или 4 x 4 матрична клавиатура за Arduino
- Серво мотор
- 3D отпечатан шкаф за врати / персонализиран шкаф за врата
- Допълнителни компоненти за захранване на 1 Amp 5 Volt зарядно устройство
- 4 "/ 6" пластмасови кутии, джъмперни проводници, болтове с гайки, пластмасова обвивка и др.
Електрическа схема за заключване на вратата на клавиатурата Arduino
Пълната електрическа схема за нашия проект за заключване на врати за цифрова клавиатура, базиран на Arduino, е показана по-долу.
На първо място, ние започваме от мозъка на този проект, който е борда на Arduino UNO. Платката Arduino е свързана с LCD и серво мотор. Серво моторът се използва за натискане (заключване) или издърпване (отключване) на резето на вратата. За показване на съобщението от Arduino е необходим 16 x 2 LCD, 16 x 2 означава, че има 16 броя колони и 2 броя редове. Ако сте напълно нови за 16x2 LCD дисплейни модули, можете да проверите този урок за Arduino LCD Interfacing, за да научите повече за него.
Тук използвам 5v серво мотор Towerpro SG90 за направата на нашето персонализирано шкафче за врати. Това е серво мотор от основно ниво и работи добре с Arduino без никаква задвижваща верига или външен модул. Освен това цената на този серво мотор е много по-малка, така че лесно можете да си позволите да го купите. Можете също да проверите този урок Arduino Servo Motor Control, за да научите повече за серво мотора и как работи. Свържете сервомотора с Arduino Digital pin D9 и с 5волта захранване. Този серво мотор има общо 3 входни линии (GND, + 5V & SIGNAL LINE).
В този проект използвах матрична клавиатура 4 x 4 (но частта от клавиатурата 4 x 4 не е налична във фризиране за това графично представяне), но не се притеснявайте, тъй като клавиатурата 4 x 3 Matrix също работи добре с кодирането ми. Имаме нужда от клавиатура за въвеждане на парола и ръчно заключване на нашето персонализирано шкафче за врати. Състои се от 16 клавиша (мек превключвател) 4 клавиша в редове (R1, R2, R3, R4) и 4 клавиша в колони (C1, C2, C3, C4) при натискане на клавиш установява връзка между съответните редове и колони. Таблицата по-долу показва как да свържете вашия Arduino с клавиатура.
Клавиатура | Arduino |
ПИН 1 (ред 1) | Цифров щифт1 |
ПИН 2 (ред 2) | Цифров щифт 2 |
ПИН 3 (ред 3) | Цифров щифт 3 |
Пин 4 (ред 4) | Цифров щифт 4 |
ПИН 5 (колони 5) | Цифров щифт 5 |
ПИН 6 (колони 6) | Цифров щифт 6 |
Пин 7 (колони 7) | Цифров щифт 7 |
Arduino код за заключване на вратата на цифровата клавиатура
Пълният код за заключване на вратите на Arduino можете да намерите в долната част на тази страница. Можете директно да качите кода, но се препоръчва да прочетете параграфите по-долу, за да разберете как работи кодът. Също така е важно да сте сигурни, че сте добавили следната библиотека на клавиатурата към вашата Arduino IDE, за да компилирате кода успешно. За целта просто отворете връзката по-долу и изтеглете ZIP файла. След това на вашия Arduino IDE отидете на Sketch -> Include Library -> Add.ZIP Library и прегледайте файла, който току-що сте изтеглили.
- Библиотека на клавиатурата на Arduino
След като вмъкнете всички заглавни и библиотечни файлове, задайте целия пин за LCD и дефинирайте дължината на паролата и задайте началната позиция на серво на 0. След това вземете тип данни „char“ за деклариране на номера, който може да го задържи, включително нулев знак.
// # включвам
С тази част от кода (char Master = "123456";) - под Char Master, декларирам паролата на ключалката на вратата, след това задавам броя редове и колони в клавиатурата и също декларирам keyMaps и се свързвам с редове и колони. При настройката на празнотата инициализирайте сервосигналния щифт D9, състоянието на серво затворено и отпечатайте името на проекта / устройството / компанията с 3 секунди закъснение на LCD време за стартиране на устройството.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Вижте проекта--"); забавяне (3000); lcd.clear (); }
Под функцията за цикъл е налице простото условие if-else. Според състоянието (заключва се автоматично), отпечатайте „Вратата е затворена“ с 3 секунди закъснение и серво завъртете до затворено положение, данните на вратите се броят като 1, в противен случай шкафчето на вратата остава отворено и броят на данните 0, серво отвореното завъртане до позицията върви 0 градуса до 180 градуса и за затваряне преминава от 180 до 0. Функциите за отваряне и затваряне на серво са показани по-долу.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// преминава от 0 градуса до 180 градуса // на стъпки от 1 градус myservo.write (pos); // кажете на серво да отиде на позиция с променлива 'pos' delay (15); // изчаква 15ms за серво да достигне позицията}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// преминава от 180 градуса до 0 градуса myservo.write (pos); // кажете на серво да отиде на позиция с променлива 'pos' delay (15); // чака 15ms, за да може серво да достигне позицията}}
Напишете позицията на серво с 15 секунди закъснение, за да достигнете серво позицията. Под функцията void open отпечатайте на LCD “Enter Password”, след което условието посочва, че въведената парола трябва да бъде еднаква с персонализиран ключ, в рамките на това тяло се отчитат данни и се съхранява char в масива от данни, увеличена и въведена парола, отпечатана на LCD, ако дължина на данните (брой на ключа) и въведената парола съвпада с Data Master (където присъстват предварително дефинираните ключове). След това като действие LCD изчиствайте, серво задвижване, отпечатайте на LCD „Вратата е отворена“ и броячът на данни се нулира на 0.
Ако клавишът за въвеждане не съвпада с Data Master, като действие на LCD изчистете отпечатването на LCD „Грешна парола“, за да уведомите с 1 секунда закъснение и остава в заключена позиция с брояч на данни, зададен на 1, и продължете този процес в цикъл.
if (data_count == Password_Lenght - 1) // ако индексът на масива е равен на броя на очакваните символи, сравнете данните с master {if (! strcmp (Data, Master)) // равен на (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Вратата е отворена"); врата = 0; } else {lcd.clear (); lcd.print ("Грешна парола"); забавяне (1000); врата = 1; } clearData (); }
Сглобяване и тестване на Arduino Keypad DoorLock
Сега поставете всичко на 4-инчова / 6-инчова пластмасова кутия и го захранвайте с мобилно зарядно устройство, подредете всичко добре с помощта на корпуса. В идеалния случай бих могъл да използвам 3D печат, за да сглобя ключалката си, но след проектирането на файловете си установих, че 3D печатът е много скъп, така че първо фиксирах серво, след това свързах нормалното шкафче за плъзгане с моето серво с метална плоча то със стъклени влакна, въпреки че работи добре, е по-малко сигурно.
Ако искате по-голяма сигурност, тогава трябва да отпечатате 3D модел на заключваща врата, който работи вътрешно с този серво. Можете да изтеглите необходимите STL файлове от връзката по-долу и да ги отпечатате 3D, ако имате достъп до 3D принтер.
Изтеглете STL файлове за 3D печат
Файловете за дизайн също са показани на снимката по-долу.
В началото на проекта, в момента, в който го включим за първи път, трябва да дадем името на проекта (можете да покажете и името на компанията), така че той да изглежда умен и изключителен като търговско устройство (както можете да видите в снимката по-долу).
С 3 секунди закъснение бързо заключете вратата и директно проверете дисплея за състоянието на ключалката на вратата, както е показано на снимката, дадена по-долу.
Когато заключите ръчно вратата с натискане на клавиша „#“, тя първо показва, че вратата е затворена за 1 секунда и след това показва Enter Password. От друга страна, когато вратата се отключи чрез въвеждане на правилната парола, тя показва Door is Open.
Ако вратата остане в отключено състояние, тя се показва - Вратата е отворена, стига да заключите ръчно вратата според кодирането. Дадох кода и можете да персонализирате настройките, като промените параметъра за показване на кода, както е необходимо. Можете също така да проверите пълната работа с видеото, свързано в долната част на тази страница.