- Използвани компоненти:
- Свързване на 4x4 клавиатура с Raspberry Pi чрез мултиплексиране:
- Описание на веригата:
- Работно обяснение:
- Обяснение на програмирането:
Сигурността е основна грижа в ежедневието ни и цифровите брави се превърнаха във важна част от тези системи за сигурност. Налични са много видове технологии, които осигуряват нашето място, като базирани на PIR системи за сигурност, базирана на RFID система за сигурност, аларми за лазерна сигурност, системи с биоматрица и др
Преди това сме изградили Digital Lock с парола, използвайки Arduino и използвайки 8051, тук ще изградим тази Digital Lock с помощта на Raspberry Pi с дефинирана от потребителя парола. След като паролата е зададена, потребителят може да получи достъп до вратата само с правилна парола.
Ако не сте запознати с Raspberry Pi, ние създадохме поредица от уроци, за да научим Raspberry Pi, с взаимодействие с всички основни компоненти и някои прости проекти, за да започнете, направете проверка.
Използвани компоненти:
- Raspberry Pi (с заредена SD карта)
- Модул на клавиатурата
- Звънец
- 16x2 LCD
- 10к пот
- 10k резисторен пакет (изтегляне)
- LED
- 1k резистор
- Дъска за хляб
- CD / DVD количка като порта
- Мощност 5 волта
- Шофьор на мотор L293D
- 12 волта батерия
- Свързващи проводници
Свързване на 4x4 клавиатура с Raspberry Pi чрез мултиплексиране:
В тази схема използвахме Мултиплексираща техника за интерфейс на клавиатурата за въвеждане на паролата в системата. Тук използваме 4x4 мултиплекс клавиатура с 16 клавиша. Обикновено, ако искаме да използваме 16 клавиша, тогава ни трябват 16 пина за връзка с Arduino, но в техниката на мултиплексиране ни трябват само 8 пина за взаимодействие с 16 ключа. Така че това е интелигентен начин за свързване с модул на клавиатурата. Научете повече за техниката на мултиплексиране и нейната работа в тази цифрова ключалка с помощта на 8051.
Техниката на мултиплексиране е много ефективен начин за намаляване на броя на щифтовете, използвани с микроконтролер за предоставяне на вход или парола или номера. По принцип тази техника се използва по два начина - единият е сканиране на редове, а другият е сканиране на колони. Ако използваме библиотека на клавиатурата (#include
Но тук в този проект ние внедрихме кратък начин на кодиране за същата клавиатура, без да използваме библиотеката на клавиатурата. Моля, вижте го в раздела за програмиране по-долу.
Описание на веригата:
Веригата на тази цифрова брава Raspberry Pi е много проста, която съдържа Raspberry Pi 3, модул на клавиатурата, зумер, количка за DVD / CD като порта и LCD. Тук Raspberry Pi контролира цялостния процес, като вземане на парола от модула на клавиатурата, сравняване на пароли, управление на зумер, отваряне / затваряне на портата и изпращане на статус на LCD дисплей. Клавиатурата се използва за въвеждане на парола. Звуковият сигнал се използва за индикации и се задвижва от вграден NPN транзистор. LCD се използва за показване на състояние или съобщения върху него.
Колоните на модула на клавиатурата са директно свързани с GPIO пин 22, 23, 24, 25, а редовите щифтове са свързани към 21, 14, 13, 12 на щифтовете на wringPi на Raspberry Pi. А 16x2 LCD е свързан с Raspberry Pi в 4-битов режим. Контролният щифт RS, RW и En на LCD са директно свързани към GPIO пин 11, GND и 10. Пин-тани D4-D7 са свързани към GPIO пинове 6, 15, 4 и 1. Един зумер е свързан към GPIO пин 8. И двигател L293D е свързан на GPIO пин 28 и 29 на Raspberry Pi. А 12 волта батерия е свързан по оста 8 на L293D по отношение на земята.
Работно обяснение:
Работата по този проект е проста. Когато потребителят стартира кода в Raspberry Pi, LCD показва някакво поздравително съобщение и след това показва „A- Input Password” и на втория ред B - Change Passkey ”. Сега потребителят може да избере своя избор чрез натискане на A и B на клавиатурата.
Сега, ако потребителят иска да отвори порта, той трябва да натисне „A“ на клавиатурата и след това системата ще поиска парола. Паролата по подразбиране е „1234“. Сега потребителят трябва да въведе паролата и след тази система ще провери паролата, независимо дали е валидна или не:
1. Ако потребителят въведе правилната парола, системата ще отвори портата.
2. Ако потребителят въведе грешна парола, системата ще изпрати команда на зумера за звуков сигнал и ще покаже „Достъпът е отказан“ на LCD дисплея.
Сега да предположим, че потребителят иска да промени паролата, тогава той / тя трябва да натисне „B“ на клавиатурата и след това потребителят ще бъде помолен за „Текуща парола“ или „Текуща парола“. Сега потребителят трябва да въведе текущата парола, след което системата да провери нейната коректност и да изпълни една от дадените задачи.
1. Ако потребителят въведе правилната парола, системата ще поиска „Нова парола“ и сега потребителят може да промени паролата, като въведе нова парола.
2. И ако потребителят въведе грешна парола, системата ще задейства зумера и ще покаже „Грешна парола: на LCD дисплея.
Сега потребителят трябва да повтори целия процес отново, за да смени паролата.
По принцип отварянето и затварянето на портата не е нищо друго освен завъртане на мотор по часовниковата стрелка и обратно на часовниковата стрелка, за да се отвори и затвори вратата. За малък проект можете просто да добавите DC мотор, за да отворите и затворите вратата. Също така можем да използваме серво или стъпков двигател, но трябва да променим съответно кода.
Освен това можете да използвате подходяща електронна ключалка на вратата (лесно достъпна онлайн) вместо CD количка. Той има електромагнит, който държи вратата заключена, когато няма ток, преминал през ключалката (отворена верига), и когато някакъв ток премина през нея, ключалката се отключва и вратата може да се отвори. Кодът ще бъде съответно променен, проверете и този общ преглед на проекта: Arduino RFID Door Lock
Обяснение на програмирането:
Програмирането много прилича на Arduino. Функцията Arduino използва класове, но тук сме направили този код, използвайки c програмиране, без класове. Също така инсталирахме wiringPi библиотека за GPIO.
Сега на първо място трябва да включим необходимите библиотеки и след това да дефинираме щифтове за LCD, зумер, LED и Motor.
#include
След това дефинирайте щифтове за реда и колоните на клавиатурата и дефинирайте масив за съхранение на парола и номера на клавиатурата.
char пропуск; char pass1 = {'1', '2', '3', '4'}; int n = 0; char char = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
След него сме написали някои функции за управление на LCD:
Функцията void lcdcmd се използва за изпращане на команда на LCD, а функцията void write се използва за изпращане на данни към LCD.
Функцията void print се използва за изпращане на низ към LCD.
невалиден печат (char * str) {while (* str) {write (* str); str ++; }}
Функция void set Курсор се използва за настройка на позицията на курсора на LCD дисплея.
void setCursor (int x, int y) {int set = 0; if (y == 0) set = 128 + x; if (y == 1) set = 192 + x; lcdcmd (комплект); }
Функцията void clear () се използва за изчистване на LCD, а void зумер () се използва за звуков сигнал.
Функцията void gate_open (), void gate_stop () и void gate_close () се използват за задвижване на портата (CD количка)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); забавяне (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); забавяне (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); забавяне (2000); }
Дадена функция се използва за инициализиране на LCD в 4-битов режим.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Дадената функция void keypad () се използва за свързване на модула на клавиатурата с Raspberry Pi с „кратък метод“.
пуста клавиатура () {int i, j; int x = 0, k = 0; забавяне (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); за (j = 0; j <4; j ++) {if (digitalRead (ред) == 0) {setCursor (x, 1);…………………
Проверете всички функции в пълния код по-долу, кодът е лесен и обяснителен.