Кодовый замок на ардуино: Кодовый замок из ардуино

Содержание

Замок на ардуино.

Если вы хотите собрать кодовый замок на Ардуино, то вы попали по адресу.Сегодня поговорим о кодовом замке на клавиатуре 4х4. Я буду использовать кнопочную клавиатуру, потому что мембранная очень ненадёжная и у неё не всегда хороший контакт. Да и смотрится она не очень. Правда у неё есть плюс – она влагозащищённая.

Это моё третье видео про системы доступа.
Первые два – это доступ по отпечатку пальцев, и доступ по карте RFID. Больше я не знаю какую систему ещё собрать и на чём. Если знаете, то напишите, и я сниму про неё видео.
Все эти видео со всеми скетчами можно посмотреть на канале.

Для работы с клавиатурой мы будем использовать библиотеку Keypad. С этой библиотекой поставляются несколько примеров.
Рассмотрим самый простой

CUSTOM KEYPAD. Этот пример выводит в монитор порта номер нажатой кнопки.
В первых строчках мы задаём количество строк и рядов клавиатуры. В моём случае это 4х4. 

 

Затем указываем названия этих кнопок.
Теперь к каким пинам будем подключаться.
Теперь проводим инициализацию клавиатура и создаём переменную класса Keypad. 
В цикле луп получаем значение нажатой кнопки и выводим в монитор.
Есть пример для подключения сразу 3 клавиатур, так что подключить несколько клавиатур к одной библиотеки не проблема. Главное чтобы хватило пинов на Ардуино.
Если видео не затянется надолго, то в конце я опишу, что делают остальные примеры.

 

Мы же сейчас остановимся на работе кодового замка.
Описание рабочего примера.
Сделаем так чтобы при правильном наборе цифр и букв на клавиатуре загорался зелёный светодиод и срабатывало реле., а если был неправильно набран код, то срабатывала пищалка и загорался красный светодиод. Количество попыток неограниченно, но можно было бы сделать определённое число раз, и система блокировалась бы, скажем на 10 минут.

Конец набора кода определяется по нажатии кнопки решётка. 
Если вы начали набирать код и ошиблись, то нажимаете звёздочку и набираете снова.
Установка кода и количества символов в коде меняется в двух строчках и тоже не ограничена. Я пробовал код их 10 символов и всё работало.
После правильного набора, через 5 секунд, система обнуляется и снова встаёт в режим ожидания набора кода. Реле отключается, а светодиод гаснет.
При неправильном наборе Загорается красный светодиод на 1 секунду и играет мелодия. После этого светодиод гаснет, а система снова встаёт в режим ожидания.
Алгоритм работы действующего скетча такой. 
Нажимаем 4 цифры или буквы, а пятой нажимаем знак решётка #  — это даёт сигнал, что набор закончен и начинается проверка введённого кода. Ну а про результат я уже писал. К реле можно подключить электромагнитный замок или сервомотор которые будут открывать дверь или что-нибудь другое.

Схема подключения.
Расположение выводов от клавиатуры бывает разное, так что у вас могут быть абсолютно другие контакты. 
Узнавайте при покупке и в скетче вписывайте свои данные.

 

Описание скетча.
Скетч хорошо прокомментирован, поэтому я здесь быстро пробегу по коду, чтобы не задерживать вас.
 

Кодовый замок «Тук-тук» [Амперка / Вики]

#include <Servo.h>
 
// Задекларируем номера используемых пинов
#define KNOCK_PIN    A0
#define KNOCKSEN_PIN A1
#define BTN_PIN      3
#define BUZZER_PIN   9
#define LED_PIN      8
#define SERVO_PIN    5
 
#define KNOCK_HIGH 300  // Темп стука
// Если стука не было больше KNOCK_TIMEOUT, значит последовательность ударов
// закончена
#define KNOCK_TIMEOUT 1000
 
// Длительности срабатывания кнопки закрывания/открывания замка
// Длинное нажатие - переход в режим программирования кода
// Короткое нажатие - закрыть дверь
#define BTN_SHORT_MIN 200
#define BTN_SHORT_MAX 2000
#define BTN_LONG_MIN 3000
#define BTN_LONG_MAX 10000
 
// Значения углов сервопривода в открытом и закрытом состояниях.  Значения с
// индексом 2 устанавливаются через небольшую паузу после безиндексных.  Это
// нужно для того, чтобы убрать усилие с сервоприводов.
#define OPEN 107
#define OPEN2 103
#define CLOSE 85
#define CLOSE2 88
 
// Длина кодовой последовательности в количестве кодов
// Тук и пауза - это "1"
// Тук-тук - это "0"
#define CODE_LEN 5
 
// Состояния системы
enum State
{
    OPENED,
    CLOSED,
    SETPWD,
    CNFPWD,
    INIT
};
 
// Стартовый код
bool code[CODE_LEN] = { 1, 0, 1, 0, 1 };
// Полученная кодовая последовательность
bool input[CODE_LEN] = { 0, 0, 0, 0, 0 };
// Чувствительность замка
unsigned int knockLevel = 0;
 
State state;
Servo srv;
 
void setup()
{
    Serial.begin(115200);
 
    pinMode(BTN_PIN, INPUT);
    pinMode(LED_PIN, OUTPUT);
 
    digitalWrite(LED_PIN, LOW);
 
    state = INIT;
    Serial.println("Started.");
}
 
bool btn(void)
{
    return digitalRead(BTN_PIN);
}
 
// Функция трансформирует аналоговый сигнал с микрофона в бинарный:
// 1 - громко
// 0 - тихо
// При этом используется простенькая фильтрация
// (сигнал принимается только если он не менялся более 1 мс).
bool getknk(void)
{
    bool b1, b2;
 
    while (1) {
        b1 = analogRead(KNOCK_PIN) > knockLevel;
        delay(1);
        b2 = analogRead(KNOCK_PIN) > knockLevel;
 
        if (b1 == b2) return b1;
        delay(1);
    }
 
    return false;
}
 
// Функция возвращает код стука (0 или 1) или -1,
// если в течении KNOCK_TIMEOUT никто не стучал.
char getch_knk(void)
{
    unsigned long tm = millis();
 
    while (!getknk() && millis()-tm < KNOCK_TIMEOUT) {}
 
    if (millis()-tm >= KNOCK_TIMEOUT) return -1;
 
    tm = millis();
 
    while (getknk()) {}
 
    while (!getknk() && millis()-tm < KNOCK_HIGH) {}
 
    tm = millis()-tm;
 
    while (getknk()) {}
 
    if (tm < KNOCK_HIGH) return 0;
 
    return 1;
}
 
// Функция считывает кодовую последовательность и возвращает:
// 0 - код ошибочен
// 1 - код верен
// -1 - никто не стучал или количество стуков меньше кодовой последовательности
char readCode(void)
{
    int i;
    char ch;
 
    for (i = 0; i < CODE_LEN; i++) {
        ch = getch_knk();
 
        if (ch < 0) return -1;
 
        input[i] = ch;
        Serial.print((int)ch);
    }
 
    Serial.println("");
 
    for (i = 0; i < CODE_LEN; i++) {
        if (input[i] != code[i]) return 0;
    }
 
 
    return 1;
}
 
// Функция считывает программируемый код
// (режим задания кодовой последовательности).
void readPwd(void)
{
    int i;
    char ch;
 
    for (i = 0; i < CODE_LEN; i++) {
        while ((ch = getch_knk()) < 0) {}
        input[i] = ch;
 
        if (ch == 0) {
            ledOn();
            delay(100);
            ledOff();
            delay(100);
            ledOn();
            delay(100);
            ledOff();
        } else {
            ledOn();
            delay(100);
            ledOff();
        }
 
        Serial.print((int)ch);
    }
}
 
void ledOn(void)
{
    digitalWrite(LED_PIN, HIGH);
}
 
void ledOff(void)
{
    digitalWrite(LED_PIN, LOW);
}
 
// Функция отпирает замок.
void open(void)
{
    srv.attach(SERVO_PIN);
    srv.write(OPEN);
    delay(500);
    srv.write(OPEN2);
    delay(100);
    srv.detach();
 
    state = OPENED;
    Serial.println("Opened.");
}
 
// Функция запирает замок.
void close(void)
{
    srv.attach(SERVO_PIN);
    srv.write(CLOSE);
    delay(500);
    srv.write(CLOSE2);
    delay(100);
    srv.detach();
 
    state = CLOSED;
    Serial.println("Closed.");
}
 
 
void loop()
{
    int i;
    char ch;
    unsigned long tm;
 
    // Актуализируем выставленную потенциометром чувствительность замка.
    knockLevel = analogRead(KNOCKSEN_PIN);
 
    switch (state) {
    case OPENED:  // Дверь открыта
        while (btn()) {}
        tm = millis();
        while (!btn()) {}
        tm = millis()-tm;
 
        if (tm > BTN_SHORT_MIN && tm < BTN_SHORT_MAX) close();
        else if (tm > BTN_LONG_MIN && tm < BTN_LONG_MAX)
            state = SETPWD, ledOn();
        break;
 
    case CLOSED:  // Дверь закрыта
        ch = readCode();  // Считываем код
 
        if (ch < 0) {  // Никто не стучал
            Serial.println("FAIL");
            break;
        }
 
        if (ch == 1) {
            open();  // Ура! Стук правильный
        } else {  // Стук неправильный, пропипикаем, чтобы сообщить об этом
            tone(BUZZER_PIN, 500, 200);
            delay(200);
            tone(BUZZER_PIN, 500, 200);
            delay(200);
            tone(BUZZER_PIN, 500, 200);
            delay(200);
        }
        break;
 
    case SETPWD:  // Задаём кодовую последовательность
        delay(2000);
 
        // Поморгаем, чтобы показать момент начала записи
        ledOn();
        delay(100);
        ledOff();
        delay(100);
        ledOn();
        delay(100);
        ledOff();
 
        Serial.print("Input code:");
        readPwd();  // Получаем код
 
        // Сохраняем код
        for (i = 0; i < CODE_LEN; i++) code[i] = input[i];
 
        Serial.println("");
        state = CNFPWD;  // Уходим на подтверждение
        break;
 
    case CNFPWD:  // Подтверждаем кодовую последовательность
        Serial.print("Confirm code:");
        readPwd();  // Получаем код
 
        // Сравниваем с сохранённым
        for (i = 0; i < CODE_LEN; i++) {
            if (code[i] != input[i]) break;
        }
 
        Serial.println("");
 
        // Если всё ок, выходим из процедуры и тушим светодиод
        if (i == CODE_LEN) ledOff(), state = OPENED;
        else
            state = SETPWD;  // Иначе - повторяем ввод кода
 
        break;
 
    case INIT: open(); break;  // Начальное состояние
    }
}

Кодовый замок (кодовая панель) с RFID

Не так давно я озадачился организацией доступа в дом, точнее во двор. Тема для меня новая и неизведанная, поэтому профи прошу понять, простить, и дополнить. Я же расскажу об устройстве(-ах) с точки зрения обывателя который в данной теме особо не сечёт, но обладает знаниями достаточными чтобы реализовать базовый функционал.

Начну с критериев выбора.
Ну, во-первых, установка планировалась на воротах, следовательно нужно IP68, чтобы было надёжно.
интегрированная кнопка звонка
доступ как при помощи бесконтактной метки, так и при помощи пинкода
какая-никакая вандалоустойчивость
автономность системы в плане отсутствия внешних прибамбасов (кроме собственно исполнительного устройства и блока питания) и простота установки и настройки

Поиск на али вывел меня на обозреваемое устройство. что нам обещают?
— IP68
— поддержку как меток 125кГц EM так и 13.56МГц Mifare
— wiegand 26 вход/выход для подключения внешнего ридера и контроллера (этот и предыдущий пункт таким лохам как я не нужны на 100% 😉 )

— поддержку до 2000 пользователей, с доступом по карте, пину, карте и пину
— подсветку
— настройку времени срабатывания тревоги (0-3 минут) и открытия(0-99с)
— защиту выхода от КЗ (не проверял, заявлено 3А)
— питание 12-24В
— поддержку как нормально разомкнутых так и нормально замкнутых контактов для управления исполнительным устройством
— поддержку кнопки выхода
— поддержку датчика открытия двери
— 20 меток в комплекте

Вроде бы всё.

В пакете из пупырки нам пришли два пакетика с метками (по 10 шт), и коробочка с собственно кодовой панелью

Тип меток я определить к сожалению не могу, не специалист:

Разобрать попробовал — не получилось. Ломать не стану. На просвет видно катушечку диаметром миллиметров 20.

В коробочке кроме кодовой панели лежит инструкция, гарантийка, пара шурупов с дюбелями, диодик, и ключ, если не ошибаюсь торкс-10

Инструкция:

А вот и сама кодовая панель:


Сделан корпус из алюминия (?), размеры 117х58х22мм, длина хвоста проводов 30см. Вес — 316 грамм!

Для крепления панели к стене/двери нужно открутить снизу болтик Т10, снять заднюю крышку, прикрутить её к месту установки и собрать всё обратно.

Под задней крышкой нас ждёт сюрприз — всё залито компаундом. виден только фотодатчик тревоги (срабатывает при изменении освещенности — ИМХО не лучшее решение, зато на 100% герметичное) и отверстие пищалки.

Схема подключения в общем случае проста и незатейлива:

Причем, тут она «в максималочке», а на самом деле можно не подключать вывод тревоги, датчик открытия двери, кнопку выхода, исполнительное устройство будет обычно только одно. итого имеем фактически два провода питания, два провода от управляющего реле и два провода от кнопки звонка (да, там внутри просто кнопка на замыкание контактов, при чем о её характеристиках в мануале ни слова, так что 220 я б туда не стал совать),

Управление тоже элементарно — или подносим метку, или вводим пин и нажимаем решетку.

Аналогично проста и незатейлива процедура настройки *999999# — вход в режим настройки, мастер-код 999999, естественно, потом можно поменять. Выход звёздочкой. Тут можно и нужно будет настроить пин для входа пользователей и подключить метки.
Для добавления пина вводим 1 <номер пользователя от 1 до 2000> # #
Для добавления метки нажимаем 1 <номер пользователя от 1 до 2000> # читаем карточку# (номер пользователя можно и не вводить)
Также может потребоваться изменить время срабатывания замка: *999999#4<время 0-99с>#*

При вводе нуля реле срабатывает на 45мс:

Это основные настройки, остальное есть в инструкции.

При работе замок потребляет порядка 40мА:

Но тут есть нюанс — я измерил потребление в режиме программирования. При сработавшем реле ток незначительно вырастет, а в режиме простоя — ток чуть ниже и постоянно скачет, потому что в этом режиме постоянно включена подсветка и мигает пара красных светодиодов в верхней части панели. В режиме программирования эти светодиоды горят постоянно, а при правильном вводе кода или распознании правильной метки — цвет меняется на зеленый:

Подытоживая. Пожалуй, я вижу два минуса у данного устройства.
— низкий допустимый ток исполнительного устройства
— постоянная цветомузыка.
— ну может быть еще не совсем надёжное крепление.

В остальном же я на данном этапе весьма доволен — сделано добротно, работает как ожидалось, визуально и тактильно — приятно. В реальной работе пока не проверял, но не предвижу никаких осложнений и засад.

По ценам. На момент покупки это была оптимальная цена — тут и репутация продавца хорошая, и комплектация, и перечисленные в самом начале «хотелки», в частности кнопка звонка и IP68 (которое тут ИМХО таки присутствует). Более дешевые варианты как правило идут или без меток, или без IP6х

В целом — к покупке рекомендую. Об исполнительном устройстве будет в следующем обзоре.

Хакер создал инструмент, способный взломать кодовый замок за 30 секунд

Хакер создал инструмент, способный взломать кодовый замок за 30 секунд

Alexander Antipov

Инструмент оснащен шаговым двигателем для вращения диска замка, сервоприводом и аппаратно-вычислительной платформой Arduino.

Калифорнийский хакер Сэми Камкар (Samy Kamkar)  изобрел  3D-инструмент, способный взломать кодовый замок за 30 секунд. Все материалы, в том числе планы, трехмерные модели и коды специалист опубликовал в открытом доступе.

Несколько недель назад Камкар сообщил о производственном дефекте в кодовых замках Master Lock, позволяющем раскрыть комбинацию путем изучения взаимодействия кодового диска с замком. Этот процесс довольно коварен и требует применения некоторого программного обеспечения, поэтому Камкар решил его механизировать при помощи своего нового изобретения под названием Combo Breaker.

Инструмент оснащен шаговым двигателем для вращения диска замка, сервоприводом и аппаратно-вычислительной платформой Arduino. Как отметил Камкар, для определения комбинации замка устройству потребуется пять минут, но если известна первая цифра – весь процесс займет не более 30 секунд.

Combo Breaker – далеко не первая разработка Камкара. Он является автором первого червя, эксплуатировавшего XSS-уязвимость для распространения. За ночь червь Samy инфицировал более миллиона учетных записей на популярном сайте Myspace.com., администрация которого была вынуждена прекратить его работу до тех пор, пока уязвимость не была устранена.


В нашем телеграм канале мы рассказываем о главных новостях из мира IT, актуальных угрозах и событиях, которые оказывают влияние на обороноспособность стран, бизнес глобальных корпораций и безопасность пользователей по всему миру. Узнай первым как выжить в цифровом кошмаре!
Поделиться новостью:

Кодовый замок с одной кнопкой на микроконтроллере PIC16F628

В продолжении темы кодовых замков, приводим следующую простую схему кодового замка на микроконтроллере PIC16F628, который позволяет вводить четырехзначный код одной кнопкой, пользуясь индикацией всего одного светодиода. Кнопка может быть размещена одна сама по себе или же включена в состав блока кнопок для придания большей секретности.

Эта простая схема позволяет осуществлять контроль над различными вещами, например, импульс для открытия автоматических ворот, включение и выключение освещения, доступ в помещения, в системе безопасности снятие и постановка на охрану и так далее.

При правильно введенном коде, срабатывает реле. В зависимости от того какой режим работы реле выбран, оно либо активируется на определенный период либо только включается, и выключается при повторном наборе кода.

Режимы работы кодового замка на PIC16F628

Схема кодового замка имеет два режима работы.  Одним из них является обычный режим работы, когда схема ожидает ввода секретного кода. Второй режим — программирование. Данный режим  используется для настройки работы замка.

Состояние ввода кода

Для ввода секретного кода необходимо поочередно ввести четыре цифры, каждая цифра соответствует количеству нажатий на кнопку SA1. После первой введенной цифры, светодиод мигнет один раз. Затем необходимо ввести следующую цифру. После набора четвертой цифры при верно набранном коде светодиод быстро мигнет три раза и активируется реле. При неверно набранном коде светодиод также мигнет три раза, но медленно. Затем можно повторить попытку ввода. Изначально в памяти микроконтроллера записан код 1234.

Состояние программирования кодового замка

В схеме предусмотрен  переключатель SA2, который используется для изменения режима работы секретного замка. Когда переключатель замкнут, устройство находится в состоянии программирования. Необходимо обратить внимание, что состояние данного переключателя опрашивается только при подаче питания, поэтому при изменении его положения необходимо выключить и включить питание  схемы.

Меню программирования кодового замка состоит из трех пунктов:

  1. Запись нового секретного кода в память микроконтроллера PIC16F628. При переводе SA2 в режим программирования и включении питания, светодиод будет светить одинарными вспышками. Это свидетельствует, что вы находитесь в первом пункте меню.  Для записи нового кода необходимо поочередно ввести каждую цифру, так же как и при обычном вводе. После ввода последней цифры устройство подтвердит успешное завершения серией быстрых вспышек светодиода. Теперь питание можно выключить и перевести SА2 в обычный режим, либо можно перейти ко второму пункту меню программирования кодового замка. Для этого необходимо нажать кнопку SA1 и удерживать ее не менее 3 секунд. После отпускания кнопки, светодиод будет мигать двойными вспышками.
  2. Изменения продолжительности включения реле. Каждое нажатие прибавляет одну секунду. Допусти если нужно чтобы реле было активно в течении 5 секунд, то необходимо нажать кнопку SA1 пять раз с частотой нажатий  в одну секунду. После этого устройство подтвердит запись значения серией частых вспышек. Для перехода в 3 пункт меню также нажимаем кнопку на 3 и более секунды и отпускаем. Теперь светодиод будет мигать тройными вспышками. 
  3. Режим работы реле кодового замка. При одном нажатии реле будет активироваться на период, установленный во втором пункте меню. При двойном нажатии – реле будет включаться при вводе секретного кода, и выключаться только при повторном вводе секретного кода.

Для программирования микроконтроллера PIC16F628 модно воспользоваться несложным программатором, который описан здесь.

Скачать прошивку (1,2 MiB, скачано: 2 569)

Магнитный держатель печатной платы

Прочная металлическая основа с порошковым покрытием, четыре гибкие руч…

Источник: www.alan-parekh.com

Электронный кодовый замок на Arduino и серво

Представляем простой и удобный электронный кнопочный замок с серво на базе платы Arduino Nano. Введите предварительно установленный пароль с помощью 12-клавишной сенсорной панели и если пароль правильный, схема проворачивает серводвигатель, чтобы механически открыть дверную защелку.

Новая Arduino Nano плата имеет такую ​​же распиновку, что и классический Arduino Nano, но есть тут два основных преимущества:

  1. USB Type-C вместо предыдущего Mini-USB для питания и программирования платы.
  2. Добавлен четырехконтактный разъем I2C для простого подключения нескольких ЖК модулей Grove.

Если хотите подключить только один датчик Grove I2C, то достаточно встроенного разъема. Но если нужно подключить более одного, следует подумать о покупке шилда для Arduino Nano. В данном случае разделили четырехконтактный кабель на две части и соединили между ними 12-клавишную емкостную клавиатуру + I2C LCD + Seeeduino Nano, создав демонстрационную схему замка. Сервомотор требуется чтобы открыть дверную защелку механически.

Как всё устроено

На ЖК-экране отображается сообщение с просьбой ввести пароль. Пароль по умолчанию: 1036, и он хранится во флэш-памяти микроконтроллера. После ввода пароля пользователь должен нажать клавишу #, которая действует как Enter. Если пользователь ошибся при вводе пароля, он может сбросить его, нажав клавишу звездочки *. Если пользователь ввел правильный пароль, серводвигатель повернется чтобы открыть дверь. Через две секунды серводвигатель вернется в исходное положение.

Вот простая программа, чтобы опробовать работу схемы. Вы можете легко изменить её и сделать более сложной, в соответствии с вашими потребностями (изменить пароль, список и время доступа пользователей и так далее). Для этого проекта требуются четыре библиотеки:

  1. Wire (входит в Arduino IDE)
  2. Servo (входит в Arduino IDE)
  3. SoftwareSerial (входит в Arduino IDE)
  4. Rgb_lcd

Схема подключения модулей

Скачать всё одним архивом можно здесь.

Методы взлома кодовых механизмов секретности – статьи Дорлок

Кодовые замки не имеют замочной скважины, поэтому не поддаются традиционным методам взлома (отмычка, бампинг, вкрутки, «свертыши» и проч.) В связи с этим они считаются более надежными, чем цилиндровые или сувальдные. Но и у них есть свое слабое место — секретный код, который легко забыть и следует аккуратно набирать.

Взлом кодового замка — процесс открытия кодового механизма секретности без знания комбинации.

Для взлома такого замка могут использоваться различные методы:

Некоторые вращательные кодовые замки могут быть открыты путем внимательного наблюдения за тактильными ощущениями или звуками, возникающими при повороте циферблата, — это может помочь определить комбинацию, открывающую сейф.

Поставить сейф под угрозу может даже угадывание комбинации. Причиной этого является тот факт, что изготовители сейфа часто снабжают изделие собственной комбинацией цифр. Данная комбинация разработана с целью позволить владельцу начальный доступ к сейфу, чтобы впоследствии он мог установить свою собственную новую комбинацию.

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

В отсутствие информации о комбинации сейфа кодовый замок может быть открыт посредством перебора всех возможных комбинаций цифр. Многие замки с кодом имеют некоторый «коэффициент ухудшения», позволяющий испробовать только некоторое подмножество комбинаций. Это сильно сокращает время, требуемое для перебора всех возможных комбинаций.

Множество компаний и групп разработали автонабирающие машины, чтобы открыть сейфы. Такие машины являются обычно приспособленными к замку определенного типа и должны прокручивать тысячи комбинаций, чтобы открыть устройство.

Сверление обычно имеет целью получить доступ к сейфу посредством наблюдения или в обход запирающего механизма. Сверление — метод, чаще всего используемый слесарями, и это единственный метод, который может использоваться в случаях попыток взлома, приведших к сбоям в работе или повреждению замков.

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

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

Сверление — наиболее популярный среди слесарей метод открытия сейфов, поскольку он занимает меньше времени, чем поиск комбинации цифр, и вскрытые таким образом сейфы могут быть быстро восстановлены и возвращены владельцу для дальнейшего использования.

Для определения кода, открывающего замок, используется проникающее излучение, например рентгеновские лучи, позволяющие определить внутреннюю угловую зависимость механизма замка. Современные сейфовые замки сделаны из легких материалов, например нейлона, исключающего применение этого метода, так как большинство внешних частей сейфа сделано из намного более плотных материалов.

Конечно, вне зависимости от степени надежности кодового механизма, найдется способ его вскрыть. Но, не стоит забывать, что именно в этом противостоянии взломщиков и конструкторов и состоит главный эволюционный фактор отрасли.

Дверной замок с клавиатурой и изменяемым кодом

Обучающее видео, если необходимо

Привет, и добро пожаловать в это руководство (да, он старый, но классический), сегодня я делаю проект дверного замка на основе платы Arduino, клавиатуры, ЖК-дисплея i²c экрана, и я буду использовать для блокировки соленоид и реле, вы можете проверить мой учебник о дверном замке с отпечатками пальцев, где я использовал замок, который использует двигатель постоянного тока, так что это зависит от вашей системы блокировки, которая у вас будет выбрать проводку, коды и адаптировать их.

N.B: Для реального проекта я вообще не рекомендую использовать соленоид, а лучше взломать замок, который может открываться как электронным, так и механическим замком, и адаптировать свой проект для этого.

Детали

Итак, для этого проекта нам понадобятся эти компоненты, а также несколько соединительных проводов и источник питания на 12 В К сожалению, я не добавил его сюда:

Кнопка предназначена для открытия замка изнутри, вы можете уберите, если хотите, резистор для дребезга.

Я использовал клавиатуру 4 × 4, вы можете использовать 3 × 4, но вам нужно будет изменить что-то в коде, например, для подтверждения я использую «A», вы можете изменить его на «*» или «#».

Соленоид питается от внешнего источника питания 12 В и управляется транзистором IRF510N MOSFET.

Транзистор используется в качестве переключателя, и лучше использовать N-канал, IRF510N довольно популярен при использовании с Arduino, когда вы подаете напряжение 5 В на затвор и исток, транзистор становится похож на закрытый переключатель. между стоком и источником, и ему не нужен резистор, как биполярный.

И если нет напряжения, транзистор действует как разомкнутый переключатель, и таким образом мы управляем соленоидом.

В другом примере я использую 1-канальный релейный модуль, он работает с 3,3 В, и мы управляем его входом, как и транзистором, с той лишь разницей, что они инвертированы (мы увидим в коде).

Блок-схема алгоритма

Чтобы упростить понимание, вот блок-схема, она не является полностью подробной, но представляет собой обзор кода.

Примечание: вы можете использовать реле для управления любым электрическим замком до 250 В переменного тока, вы также можете использовать его для управления соленоидом…

Коды точно такие же, единственное, что вы переключаетесь между (НИЗКИЙ и ВЫСОКИЙ) на открыть замок.

Просто помните, что в первый раз вы должны загрузить код и изменить код доступа, затем раскомментировать некоторые строки (прочитайте код, чтобы найти их (они находятся в настройке)) и повторно загрузите код, чтобы он мог прочитать код доступа из EEPROM. ТОЛЬКО ОДИН РАЗ.

Также вы можете изменить длину кода, сначала я сделал его четырехзначным, вы можете изменить его по умолчанию, так как я использовал в коде «sizeof (code)» вместо «4». Вы не можете изменить код из 4 цифр на код из 6 цифр, сначала измените исходный код доступа из источника кода.

Тест

Вы найдете тест на картинках ниже, перемещайтесь по ним

Ну, это был тест проекта, то же самое для соленоида или реле, и кнопка открывается изнутри, если хотите или вы можно удалить.

Надеюсь, это будет полезно, и если у вас возникнут проблемы или вопросы, оставьте комментарий.

Кнопочный кодовый замок с использованием Arduino

ВВЕДЕНИЕ:

Кодовые замки существуют уже несколько десятилетий, и многие продукты, такие как портфели и двери, защищены ими.Существует модуль клавиатуры для Arduino, который может помочь нам установить комбинированный пароль для различных вещей, вы также можете использовать RFID-карты для обеспечения доступа, и в этом уроке я собираюсь объяснить, как вы можете сделать комбинацию клавиш блокировки.

Изначально это было размещено на: http://bit.ly/2K4F5Kr

РАБОТАЕТ:

Проект поможет нам установить комбинированный пароль, и вы можете установить пароль, используя 1-6 цифр, когда вы нажмете кнопку кнопки, и комбинация совпадает, загорится зеленый светодиод, а если комбинация не совпадает, красный светодиод укажет, что пароль неверный.

ВЗАИМОДЕЙСТВИЕ НАЖИМНЫХ КНОПОК:

Кнопки могут быть подключены к Arduino, используя конфигурацию с понижением напряжения, т.е. кнопка будет давать 5 В при нажатии и 0 В при отпускании и конфигурацию подтягивания, т.е. при нажатии кнопки она будет давать 0 В, а при отпускании — 5В. Мы используем подтягивающую конфигурацию, и мы не используем внешний резистор, вместо этого мы используем внутренний подтягивающий резистор Arduino.

ИЗМЕНИТЬ КОМБИНИРОВАННЫЙ ПАРОЛЬ:

Вы можете изменить комбинированный пароль из кода Arduino, открыть код и найти следующую строку:

  int code [] = {6,5,5,4,3,2};
  

и измените последовательность, пока вам нужно будет нажать 6-ю кнопку, затем 5, снова 5, 4, 3 и затем 2, и ваш зеленый светодиод должен загореться.

СОЗДАЙТЕ ЦЕПЬ, ЗАГРУЗИТЕ КОД:

Принципиальную схему и код можно найти ниже, откройте схему Arduino IDE и не забудьте выбрать порт и плату и загрузить код.

ВИДЕО Учебник:

Смотреть видеоурок

ВЫВОД:

Таким образом, вы можете использовать Arduino и кнопки в качестве кодового замка, вы можете использовать его для защиты вашей двери или чего-либо еще. Если вас интересуют такие проекты, подпишитесь на нас, и это будет для вас выгодно.

Как создать цифровой кодовый замок

Содержание

Для этого проекта мы создадим простой цифровой кодовый замок, который пользователи могут вводить и вводить. В этом руководстве мы покажем пользователям как работает система цифрового кодового замка в интерфейсе Arduino.

К концу этого руководства вы сможете:

  • Настроить цифровой кодовый замок с помощью Zio и базовой 12-клавишной клавиатуры
  • Уметь взаимодействовать с Arduino IDE для программирования Zio с помощью клавиатуры
  • Создать программа, которая просит пользователей ввести шестизначный пароль для разблокировки
  • Возможность создать новый шестизначный пароль

Уровень сложности

Зио Янглинг


Полезные ресурсы

Для В целях простоты данное руководство предполагает, что у вас есть полное понимание и ноу-хау по настройке плат разработки Zio.

В этом проекте мы предполагаем, что вы уже настроили Zuino M Uno для взаимодействия с Arduino IDE. Если вы еще не сделали этого, у нас есть отдельная статья о наших руководствах по разработке. Ознакомьтесь с ними ниже:

Zuino M Uno Qwiic Start Guide

Для создания этого проекта вам понадобятся следующие модули:
  1. Zuino95 Zuino M Uno
  2. 0.91-дюймовый OLED-дисплей
  3. Шестигранная матричная клавиатура (4 x 3)
  4. Кабели Qwiic 200 мм
  5. Кабели макетных плат Перемычки (штекер-гнездо)
  6. Кабель Micro USB

Шаг 1:

Daisy соедините модули вместе, как показано на схеме выше.


Шаг 2

Подключите клавиатуру с помощью перемычек между штекерами и розетками к Zuino M Uno.

На схеме ниже показаны контакты разъема для этой установки.


Шаг 3

Загрузите и установите следующие библиотеки в свою Arduino IDE:

Подключите компьютер к компьютеру. Загрузите и прошейте приведенный ниже код на свой Uno с помощью Arduino IDE.

Кроме того, вы можете загрузить код со страницы Github.

Login Test

Чтобы протестировать ваш проект, после загрузки кода в Uno на вашем дисплее появится следующее сообщение:

Введите шестизначный пароль, за которым следует клавиша «#». Чтобы найти 6-значный пароль, хранящийся в программном коде, откройте монитор последовательного порта, и он покажет пароль для блокировки.

Если вы успешно войдете в систему с правильным паролем, вы увидите экран приветствия.

Тест изменения пароля

После того, как вам удалось войти в систему, вы сможете изменить пароль на новый. Чтобы изменить пароль, подтвердите его клавишей «*».

В этом примере я изменил пароль с 123456 на 000000, как показано ниже, на последовательном мониторе.


Тест неудачной попытки входа в систему

В этой демонстрации мы также включили функцию, которая при 3 неудачных попытках ввода правильного пароля блокирует устройство.

Чтобы проверить это, перезагрузите Uno.

Попробуйте ввести неверный пароль 3 раза.

Вы будете заблокированы сразу после 3 неудачных попыток.

Есть вопросы или предложения? Или просто хотите поприветствовать нас? Напишите нам комментарий ниже!

Создайте свой собственный кодовый замок Arduino нажатием кнопки

Если у вас есть документы или предметы, которые вы хотите сохранить в тайне, вы можете воспользоваться кодовым замком.Кодовые замки старой школы существуют уже несколько десятилетий, защищая все, от портфелей до шкафчиков и секретных комнат. Теперь у вас может быть высокотехнологичная версия с использованием Arduino для создания кодового замка, который будет работать одним нажатием кнопки!

В этом проекте, вдохновленном строителями High Voltages и Асимом Зульфикаром, вы научитесь делать свой собственный кодовый замок в стиле 21 st века. Вы можете установить комбинированный пароль, используя модуль клавиатуры Arduino, или вы также можете использовать RFID-карты для доступа.Для этого проекта вы установите 6-значный код доступа — если вы нажимаете кнопки в правильной 6-значной последовательности, загорится зеленый светодиодный индикатор. Если вы введете неправильный 6-значный код доступа, загорится красный светодиод.

Вот запасные части, инструменты и услуги, которые вам понадобятся:

  • Arduino UNO и Genuino UNO
  • IDE для Arduino
  • 6 X цифровых кнопок (эту версию рекомендуют создатели проекта от DFRobot)
  • 1 X зеленый светодиод 5 мм
  • 7 X красный 5 мм светодиод
  • Провода перемычки
  • Макет
  • (дополнительно) Паяльник (полезно, если вы хотите спаять компоненты вместе)
  • (необязательно) Autodesk tinkercad (полезно, если вы хотите включить моделирование)

1.

Настроить кнопочный интерфейс

Во-первых, вы захотите использовать Arduino для взаимодействия с вашими кнопками, чтобы кнопки давали 0 В при нажатии и 5 В при отпускании — это конфигурация подтягивания. (В качестве альтернативы вы можете использовать раскрывающуюся конфигурацию, в которой кнопки выдают 5 В при нажатии и 0 В при отпускании, но мы следим за High Voltages и Асимом Зульфикаром, который использует первый метод).

Для подтягивающей конфигурации внешний резистор не требуется.Вместо этого вы используете внутренний подтягивающий резистор Arduino.

2.

Изменить код комбинации

Затем вы захотите изменить код комбинации.

Начните с открытия кода Arduino и нахождения этой последовательности: «int code [] = {6,5,5,4,3,2};»

В соответствии с этой последовательностью комбинация 6-5-5-4-3-2 — если вы нажимаете кнопки в таком порядке, должен загореться зеленый светодиод.

3. Сделайте свою схему и загрузите код

Затем вам нужно настроить схему и запрограммировать код.Вы можете следовать этому видеоуроку, чтобы убедиться, что вы все настроили правильно.

На этой странице ресурсов также можно найти для загрузки схемы принципиальной схемы и код, который вам понадобится.

** Не забывайте, вам нужно открыть схему Arduino IDE, и вам нужно будет выбрать плату и порт, чтобы загрузить свой код.

Теперь у вас есть кодовый замок для защиты вашей конфиденциальности! Какие захватывающие секреты вы откроете?

Все сотрудники Vilros надеются, что вам понравится ваш новый кодовый замок Arduino UNO.Если вы хотите найти больше идей для проектов Arduino, добавьте в закладки блог Vilros Projects и возвращайтесь, чтобы найти новые проекты, которые вы можете попробовать!

Система безопасности на основе паролей

с использованием Arduino и клавиатуры

#include

#include

#include

Servo myservo;

int pos = 0; // Подключение ЖК-дисплея

LiquidCrystal lcd (A0, A1, A2, A3, A4, A5);

константных байтовых строк = 4;

const byte cols = 3;

ключ символа [строки] [столбцы] = {

{‘1’, ‘2’, ‘3’},

{‘4’, ‘5’, ‘6’},

{‘ 7 ‘,’ 8 ‘,’ 9 ‘},

{‘ * ‘,’ 0 ‘,’ # ‘}

};

байта rowPins [строки] = {1,2,3,4};

байта colPins [cols] = {5,6,7};

Клавиатура клавиатуры = Клавиатура (makeKeymap (ключ), rowPins, colPins, rows, cols);

char * пароль = «4567»;

int currentposition = 0;

int redled = 10;

int greenled = 11;

int buzz = 8;

int invalidcount = 12;

void setup ()

{

displaycreen ();

Серийный.begin (9600);

pinMode (помечено, ВЫХОД);

pinMode (зеленый, ВЫХОД);

pinMode (гудение, ВЫХОД);

myservo.attach (9); // ПРИСОЕДИНЕН СЕРВО //

lcd.begin (16,2);

}

void loop ()

{

if (currentposition == 0)

{

displaycreen ();

}

внутр l;

символьный код = keypad.getKey ();

если (код! = NO_KEY)

{

жк.чистый();

lcd.setCursor (0,0);

lcd.print («ПАРОЛЬ:»);

lcd.setCursor (7,1);

lcd.print («»);

lcd.setCursor (7,1);

для (l = 0; l <= текущее положение; ++ l)

{

lcd.print («*»);

нажатие клавиши ();

}

if (код == пароль [currentposition])

{

++ currentposition;

if (currentposition == 4)

{

unlockdoor ();

currentposition = 0;

}

}

else

{

++ invalidcount;

неверно ();

currentposition = 0;

}

if (invalidcount == 5)

{

++ invalidcount;

пытки1 ();

}

если (invalidcount == 8)

{

пытка2 ();

}

}

// КОНЕЦ ПЕТЛИ !!! //

}

// ******** ФУНКЦИЯ ОТКРЫТИЯ ДВЕРИ !!!! ****** ***** //

void unlockdoor ()

{

delay (900);

ЖК.setCursor (0,0);

lcd.println («»);

lcd.setCursor (1,0);

lcd.print («Доступ разрешен»);

lcd.setCursor (4,1);

lcd.println («ДОБРО ПОЖАЛОВАТЬ !!»);

lcd.setCursor (15,1);

lcd.println («»);

lcd.setCursor (16,1);

lcd.println («»);

lcd.setCursor (14,1);

lcd.println («»);

lcd.setCursor (13,1);

lcd.println («»);

unlockbuzz ();

for (pos = 180; pos> = 0; pos- = 5) // идет от 180 градусов до 0 градусов

{

myservo.написать (pos); // указываем сервоприводу перейти в позицию в переменной ‘pos’

delay (5); // ждет 15 мс, пока сервопривод достигнет позиции

}

delay (2000);

задержка (1000);

контрбик ();

задержка (1000);

for (pos = 0; pos <= 180; pos + = 5) // идет от 0 градусов до 180 градусов

{// с шагом 1 градус

myservo.write (pos); // указываем сервоприводу перейти в позицию в переменной ‘pos’

delay (15);

currentposition = 0;

ЖК.чистый();

отображает экран ();

}

}

// ************ НЕПРАВИЛЬНАЯ ФУНКЦИЯ КОДА ******** //

недействительно неверно ()

{

задержка (500);

lcd.clear ();

lcd.setCursor (1,0);

lcd.print («КОД»);

lcd.setКурсор (6,0);

lcd.print («НЕПРАВИЛЬНО»);

lcd.setCursor (15,1);

lcd.println («»);

lcd.setCursor (4,1);

ЖК.println («УЙТИ !!!»);

lcd.setCursor (13,1);

lcd.println («»);

Serial.println («КОД НЕПРАВИЛЬНЫЙ, ВЫ НЕСАНКЦИОНИРОВАНО»);

digitalWrite (красный, HIGH);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (3000);

lcd.clear ();

digitalWrite (красный, LOW);

digitalWrite (гудение, LOW);

отображает экран ();

}

// ************** ОЧИСТИТЬ ЭКРАН !!! ************* //

void clearscreen ()

{

ЖК.setCursor (0,0);

lcd.println («»);

lcd.setCursor (0,1);

lcd.println («»);

lcd.setCursor (0,2);

lcd.println («»);

lcd.setКурсор (0,3);

lcd.println («»);

}

// ************** KEYPRESS ******************** //

void keypress ()

{

digitalWrite (гудение, ВЫСОКИЙ);

задержка (50);

digitalWrite (гудение, LOW);

}

// ******** ФУНКЦИЯ ОТОБРАЖЕНИЯ !!! ************* //

пустой экран ()

{

lcd.setCursor (0,0);

lcd.println («* ВВЕДИТЕ КОД *»);

lcd.setCursor (1, 1);

lcd.println («TO _ / _ (OPEN) !!»);

}

// *************** ARM SERVO *********** //

резервуар пустого рукава ()

{

for (pos = 180; pos <= 180; pos + = 50)

{

myservo.write (pos);

задержка (5);

}

задержка (5000);

для (pos = 180; pos> = 0; pos- = 50)

{

myservo.написать (pos);

}

}

// ********** РАЗБЛОКИРОВАТЬ BUZZ ************* //

void unlockbuzz ()

{

digitalWrite (гудение, ВЫСОКИЙ);

задержка (80);

digitalWrite (гудение, LOW);

задержка (80);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (80);

digitalWrite (гудение, LOW);

задержка (200);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (80);

digitalWrite (гудение, LOW);

задержка (80);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (80);

digitalWrite (гудение, LOW);

задержка (80);

}

// ********** СЧЕТЧИК ЗВУКОВОГО ЗВУКА ********** //

void counterbeep ()

{

delay (1200);

ЖК.чистый();

digitalWrite (гудение, ВЫСОКИЙ);

lcd.setКурсор (2,15);

lcd.println («»);

lcd.setCursor (2,14);

lcd.println («»);

lcd.setКурсор (2,0);

задержка (200);

lcd.println («ПОЛУЧИТЬ ВНУТРИ :::»);

lcd.setCursor (4,1);

lcd.print («5»);

задержка (200);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

digitalWrite (гудение, LOW);

задержка (1000);

// 2

digitalWrite (buzz, HIGH);

ЖК.setCursor (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

lcd.setCursor (4,1); // 2

lcd.print («4»);

задержка (100);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

digitalWrite (гудение, LOW);

задержка (1000);

// 3

digitalWrite (buzz, HIGH);

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

lcd.setCursor (4,1); // 3

жк.печать («3»);

задержка (100);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

digitalWrite (гудение, LOW);

задержка (1000);

// 4

digitalWrite (buzz, HIGH);

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ:»);

lcd.setCursor (4,1); // 4

lcd.print («2»);

задержка (100);

lcd.clear ();

lcd.setКурсор (2,0);

ЖК.println («ПОЛУЧИТЬ ВНУТРИ:»);

digitalWrite (гудение, LOW);

задержка (1000);

//

digitalWrite (шум, ВЫСОКИЙ);

lcd.setCursor (4,1);

lcd.print («1»);

задержка (100);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.println («ПОЛУЧИТЬ ВНУТРИ ::»);

digitalWrite (гудение, LOW);

задержка (1000);

// 5

digitalWrite (buzz, HIGH);

задержка (40);

digitalWrite (гудение, LOW);

задержка (40);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (40);

digitalWrite (гудение, LOW);

задержка (40);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (40);

digitalWrite (гудение, LOW);

задержка (40);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (40);

digitalWrite (гудение, LOW);

ЖК.чистый();

lcd.setКурсор (2,0);

lcd.print («ПЕРЕБЛОКИРОВКА»);

задержка (500);

lcd.setCursor (12,0);

lcd.print («.»);

задержка (500);

lcd.setКурсор (13,0);

lcd.print («.»);

задержка (500);

lcd.setКурсор (14,0);

lcd.print («.»);

задержка (400);

lcd.clear ();

lcd.setКурсор (4,0);

lcd.print («ЗАБЛОКИРОВАНО!»);

задержка (440);

}

// ********* ПЫТКИ1 *********** //

пытки недействительными1 ()

{

задержка (1000);

ЖК.чистый();

lcd.setКурсор (2,0);

lcd.print («ПОДОЖДИТЕ»);

lcd.setCursor (5,1);

lcd.print («15 СЕКУНД»);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (15000);

digitalWrite (гудение, LOW);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.print («ЛОЛ ..»);

lcd.setCursor (1,1);

lcd.print («КАК ЭТО БЫЛО ??»);

задержка (3500);

lcd.clear ();

}

// ***** ПЫТКИ2 ***** //

пустые пытки2 ()

{

delay (1000);

ЖК.setCursor (1,0);

lcd.print («»);

lcd.setКурсор (2,0);

lcd.print («НАУШИ БАРАБАНЫ»);

lcd.setCursor (0,1);

lcd.print («ДРАГОЦЕННЫЙ !!»);

задержка (1500);

lcd.clear ();

lcd.setCursor (1,0);

lcd.print («ПОДОЖДИТЕ»);

lcd.setCursor (4,1);

lcd.print («1 МИНУТА»);

digitalWrite (гудение, ВЫСОКИЙ);

задержка (55000);

контрбик ();

lcd.clear ();

digitalWrite (гудение, LOW);

ЖК.setCursor (2,0);

lcd.print («ХОЧУ МЕНЯ»);

lcd.setCursor (1,1);

lcd.print («ПОВТОРИТЕ БОЛЬШЕ ??»);

задержка (2500);

lcd.clear ();

lcd.setКурсор (2,0);

lcd.print («Ха-ха-ха-ха»);

задержка (1700);

lcd.clear ();

}

Дверной замок Arduino с клавиатурой + соленоидом / реле и изменяемым кодом — SURTR TECHNOLOGY

Привет, и добро пожаловать в это руководство, сегодня я делаю проект дверного замка на основе платы Arduino, клавиатуры, ЖК-экрана i²c, и я буду использовать для блокировки соленоид и реле, вы можете проверить мое руководство о дверной замок с отпечатками пальцев, где я использовал замок, который использует двигатель постоянного тока, поэтому в зависимости от вашей системы блокировки вам нужно будет выбрать проводку, коды и адаптировать их.

N.B: Для реального проекта я вообще не рекомендую использовать соленоид, а лучше взломать замок, который может открываться как электронным, так и механическим замком, и адаптировать свой проект для этого.

Итак, для этого проекта нам понадобятся эти компоненты, а также несколько соединительных проводов и источник питания 12 В. Извините, я не добавил его сюда:

Arduino Uno

Кнопка предназначена для открытия замка изнутри, при желании ее можно снять, резистор предназначен для защиты от дребезга.

Я использовал клавиатуру 4 × 4, вы можете использовать 3 × 4, но вам нужно будет изменить что-то в коде, например, для подтверждения я использую «A», вы можете изменить его на «*» или «#».

Соленоид питается от внешнего источника питания 12 В и управляется транзистором IRF510N MOSFET.

Транзистор используется в качестве переключателя, и лучше использовать N-канал, IRF510N довольно популярен при использовании с Arduino, когда вы прикладываете напряжение 5 В между затвором и источником, транзистор становится как замкнутый переключатель между сток и источник, и ему не нужен резистор, как биполярный.

И если нет напряжения, транзистор действует как разомкнутый переключатель, и таким образом мы управляем соленоидом.

В другом примере я использую 1-канальный релейный модуль, он работает с напряжением 3,3 В, и мы управляем его входом, как транзистор, с той лишь разницей, что они инвертированы (мы увидим в коде).

Чтобы упростить понимание, вот блок-схема, она не является полностью подробной, но представляет собой обзор кода.

Схема алгоритма блокировки

Проводка 1: для использования соленоида

Электромагнитный замок клавиатуры

Подключение 2: Для реле используйте

Реле блокировки клавиатуры

Н.B: Вы можете использовать реле для управления любым электрическим замком до 250 В переменного тока, вы также можете использовать его для управления соленоидом…

Единственная библиотека, которую я использовал, это LCD i²c NewLiquidCrystal: Загрузите здесь
Библиотеки клавиатуры и EEPROM уже установлены.

Здесь вы можете скачать коды, которые я создал для проекта:

Коды точно такие же, единственное, что вы переключаетесь между (НИЗКИЙ и ВЫСОКИЙ), чтобы открыть замок.

Просто помните, что в первый раз вы должны загрузить код и изменить код доступа, затем раскомментировать некоторые строки (прочитайте код, чтобы найти их (они находятся в настройке)) и повторно загрузите код, чтобы он мог прочитать код доступа из EEPROM.
СДЕЛАНО ТОЛЬКО ОДИН РАЗ.

Режим ожидания — ожидание клавиш или кнопки Если вы нажмете клавишу ‘*’, он попросит вас ввести код Введите правильный код и нажмите A для подтверждения Приветственное сообщение будет отображаться в противном случае неправильное сообщение Система возвращается в режим ожидания, когда вы нажимаете ‘#’. просит вас ввести старый код, чтобы изменить его. Введите старый код и A, чтобы подтвердить его. Старый код, теперь вы можете его изменить. Введите новый код и нажмите A. Подтвердите новый код еще раз и нажмите. коды не меняются

Ну, это был тест проекта, то же самое для соленоида или реле, и кнопка открывается изнутри, если хотите, или вы можете ее удалить.

Надеюсь, это будет полезно, и если у вас возникнут проблемы или вопросы, оставьте комментарий или свяжитесь с моей страницей FB…

создает цифровой дверной замок с использованием 12-вольтового соленоида, взаимодействующего с arduino uno — KT809

Arduino IDE 1.8.5 (программируемая платформа для Arduino)

Нажмите, чтобы загрузить: https://www.arduino.cc/en/Main/ Программное обеспечение

20 * 4 ЖК-дисплей
  • Режим ЖК-дисплея: STN, позитивный, трансфлективный
  • Цвет дисплея: темно-синий / желто-зеленый
  • Угол обзора: 6H
  • Метод вождения: 1/16 режима, 1 / 5 смещений
  • Подсветка: желто-зеленая светодиодная подсветка
  • Габаритные размеры: 803615.8 MAX

Примечание

  • Цветовой тон может немного измениться в зависимости от температуры и условий движения.
  • Цвет определяется как неактивный / фоновый цвет

4 * 4 Мембрана клавиатуры

  • Максимальный номинал: 24 В постоянного тока, 30 мА
  • Интерфейс: 8-контактный доступ к матрице 4×4
  • Рабочая температура: от 32 до 122 ° F (от 0 до 50 ° C)
  • Размеры: клавиатура, 2.7 x 3,0 дюйма (6,9 x 7,6 см), кабель: 0,78 x 3,5 дюйма (2,0 x 8,8 см)

20 * 4 ЖК-дисплей

9129

00

91

96

E

914 Источник питания

Symbol

Внешнее соединение

Функция

VSS

Блок питания

Заземление сигнала для LCM

VDD

VDDOWER

SUPPOWER

Регулировка контрастности

RS

MPU

Сигнал выбора регистра

RW

22222912

MPU

Сигнал разрешения работы

DB0 ~ DB3

MPU

Четыре линии двунаправленной шины низкого порядка с тремя состояниями.Используется для передачи данных между MPU и LCM. Эти четыре не используются между 4-битными операциями.

DB4 ~ DB7

MPU

Четыре двунаправленных линии высокого порядка Три линии шины состояния, используемые для передачи данных между MPU

A 2

Блок питания для BKL

K

4 * 4 Мембранная клавиатура

Матричные клавиатуры используют комбинацию из четырех строк и четырех столбцов для отображения состояний кнопок на главном устройстве, обычно микроконтроллер.Под каждой кнопкой находится кнопка, один конец которой подключен к одной строке, а другой конец — к одному столбцу.

Цифровые контакты 2–9 подключены к клавиатуре 4×4. Контакты A0 — A5 используются для управления ЖК-дисплеем 16×2. Контакты 11 и 12 подключены к блоку ввода привода двигателя L293D, а блок вывода привода двигателя подсоединен к узлу дверного замка. Точно так же контакт 13 подключается к положительному выводу зуммера.

Вся схема питается от адаптера 12 В постоянного тока, однако нам может потребоваться микросхема регулятора напряжения (LM 7805) для преобразования 12 В постоянного тока в 5 В постоянного тока, поскольку Arduino UNO работает с 5 В постоянного тока.

Загрузите приведенный ниже эскиз в Arduino UNO. Убедитесь, что включили библиотеки keypad.h и Password.h в вашу Arduino IDE перед загрузкой Sketch в Arduino UNO. Эти две библиотеки не входят в стандартную комплектацию Arduino IDE Software.

Вы можете загрузить их по ссылкам ниже:

Щелкните здесь (http://www.arduino.cc/playground/uploads/Code/Keypad.zip), чтобы загрузить библиотеку клавиатуры

Щелкните здесь (http: / /www.arduino.cc / plays / uploads / Code / Password.zip), чтобы загрузить библиотеку паролей

Эти файлы будут загружены в формате Zip. Вы можете импортировать их в Arduino IDE, перейдя: Sketch -> Import Library -> Add Library и перейдите к месту загрузки. После успешного добавления библиотек в Arduino IDE. Теперь вы можете загрузить приведенный ниже скетч в свой Arduino UNO.

КОД: https://docs.google.com/document/d/e/2PACX-1vQRXXu-5EHUMSUy6jiG9bikOvxjpEWqQEEB-YSSHf99Z96OIgE0N6Yk_KQNI-DXNX экран 900x1000RX-950/9000/4000/950 представляет собой электронный дисплейный модуль и находит широкое применение.ЖК-дисплей 16×2 — это очень простой модуль, который очень часто используется в различных устройствах и схемах. Эти модули предпочтительнее семи сегментов и других многосегментных светодиодов. Причины: ЖК-экраны экономичны; легко программируется; не имеют ограничений на отображение специальных и даже настраиваемых символов (в отличие от семи сегментов), анимации и т. д. Этот блок считается блоком вывода. Arduino будет взаимодействовать с пользователем, отправляя сообщения и инструкции, используя этот раздел.

4×4 Клавиатура: Этот блок считается устройством ввода.Пользователи будут взаимодействовать со схемой с помощью этого раздела. Эта 16-кнопочная клавиатура представляет собой полезный компонент пользовательского интерфейса для проектов микроконтроллеров. Пользователь будет использовать эту клавиатуру для ввода пароля для отпирания двери и повторного запирания двери.

Arduino UNO: ArduinoUno — это плата микроконтроллера на базе ATmega328. Он имеет 14 цифровых входов / выходов (из которых 6 могут использоваться как выходы ШИМ), 6 аналоговых входов, керамический резонатор на 16 МГц, соединение USB, разъем питания, разъем ICSP и кнопку сброса.Он содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью кабеля USB или подключите к нему адаптер переменного тока в постоянный или аккумулятор, чтобы начать работу.
Arduino UNO будет контролировать и координировать все компоненты, подключенные к этому проекту.


Зуммер: Это электрическое устройство, издающее гудение. Мы используем это устройство для подачи сигнала клавиатуры, сигнала предупреждения, сигнала успеха и т.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *