Оглавление:

Cryptap: дверной замок на основе ритма: 5 шагов
Cryptap: дверной замок на основе ритма: 5 шагов

Видео: Cryptap: дверной замок на основе ритма: 5 шагов

Видео: Cryptap: дверной замок на основе ритма: 5 шагов
Видео: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, Июль
Anonim
Cryptap: дверной замок на основе ритма
Cryptap: дверной замок на основе ритма
Cryptap: дверной замок на основе ритма
Cryptap: дверной замок на основе ритма
Cryptap: дверной замок на основе ритма
Cryptap: дверной замок на основе ритма

Вдохновленный несколькими механизмами отпирания дверей, которые я видел на hackaday.com, я решил создать его самостоятельно. У этого есть двухкнопочный интерфейс; один, чтобы начать и закончить отправку пароля, и один, чтобы на самом деле нажимать в ритме, который является вашим паролем. Также есть индикатор состояния. Я смог построить его очень дешево, используя детали, которые я искал за последние несколько месяцев. Единственное, за что мне пришлось заплатить, это сам микроконтроллер, который стоил 21 доллар (https://www.pjrc.com/teensy/), и какой-то провод для подвешивания изображений, который у меня был раньше.

Очень весело нажимать на тему «Звездных войн» или что-то еще, чтобы войти в мою комнату. Теперь мне не нужно беспокоиться о том, чтобы снова запереться из своей комнаты! Кроме того, это приятно и интересно.

Шаг 1. Детали и инструменты

Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты

Я выбрал Teensy, потому что это мой первый микроконтроллер, а программиста у меня еще нет. Для установки Teensy требуется только USB-кабель A-miniB и бесплатное программное обеспечение, совместимое с Mac / Windows / Linux. Кроме того, очень легко загрузить шестнадцатеричный файл; просто скомпилируйте и нажмите кнопку на Teensy.

Стоимость этого проекта для меня составила 21 доллар плюс проволока для подвешивания картин. Детали с улицы пришли от кофейного перколятора (реле, светодиод, конденсатор) и роутера (светодиод, модульный разъем, разъем питания, конденсаторы). Бесплатные образцы были 5-вольтовым регулятором 7805, кнопками и переключателем. Я также нашел много вещей в коробке с «сломанными частями» в моей лаборатории EE: банановые разъемы и кабель, провод, драйвер sn754410, четырехконтактный разъем и резисторы. У меня было запасное зарядное устройство для ноутбука, которое я использовал для питания, и кабель модема Apple, у которого был сломан язычок. Другое оборудование: настенная пластина. Я использовал термоклеевой пистолет, паяльник, напильник и дрель, которые довольно стандартны. Самым необычным, что я использовал, был длинный гибкий захватный инструмент.

Шаг 2: уже существующее оборудование

Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование
Существующее ранее оборудование

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

На дверном замке написано, что для работы требуется 24 В при 3 А, но я смог обойтись имеющимся у меня блоком питания 19 В, 7,9 А. Дверной упор был поляризован, поэтому соблюдайте полярность!

Шаг 3: схемы

Схемы
Схемы
Схемы
Схемы
Схемы
Схемы
Схемы
Схемы

Чтобы контролировать удар двери, я использовал реле, которое я нашел в кофеварке. Это реле требовало более 5 В TTL для его управления, поэтому sn754410 использовался для преобразования TTL в 19 В, который управлял реле. Sn754410 - это действительно четырехцилиндровый драйвер с половиной H, поэтому я тратил 3/4 микросхемы, но у меня не было силовых транзисторов, так что я использовал именно их.

Микросхема sn754410 имеет два контакта VCC, один для 5 В, другой для любого напряжения, которое вы хотите получить, которое для меня было 19 В. Это действительно крутая фишка. Вы можете использовать его для непосредственного управления двигателями и реле, потому что он может переключать 1 А на четверть микросхемы и имеет встроенные защитные диоды. Взгляните на таблицу. В моей схеме я подключил sn754410 непосредственно к выходному выводу моего Teensy. Кнопки подключаются по схеме active-low, что очень характерно для микроконтроллеров. Они напрямую связаны с Teensy, а это значит, что мне нужно устранять ошибки в программном обеспечении. Индикатор состояния подключен к Teensy через резистор 1 кОм; ничего особенного. Схема работала без конденсаторов, но я их все равно на всякий случай вставил. На шинах питания 19 В и 5 В на землю есть защитные колпачки. Во время программирования Teensy напряжение 5 В поступало от USB, но когда он работает автономно, питание поступает от блока питания ноутбука. Когда я подключил регулятор 7805 напрямую к 19 В, он ДЕЙСТВИТЕЛЬНО нагревался, поэтому я вставил сеть резисторов, чтобы ограничить входное напряжение и ток регулятора. Это была путаница, но теперь все в приемлемой температуре.

Шаг 4: соединяем вместе

Соединяем это вместе
Соединяем это вместе
Соединяем это вместе
Соединяем это вместе

Тинси не было проблемой. Он поставляется со штырями, поэтому вы можете вставить его прямо в макетную плату.

Я решил обозначить цвета проводов, идущих к дверному замку, с помощью красного (+) и черного (-) банановых кабелей от коробки сломанных частей лаборатории. У их проводов было отрезано несколько заглушек, поэтому я вычистил немного пластика, чтобы обнажить точку пайки. Мне очень нравится, как лабораторные банановые пробки могут вставляться друг в друга. Я использовал телефонный кабель Apple, чтобы подключить кнопки и индикатор состояния за пределами комнаты к Teensy внутри. Поскольку одна сторона была сломана, я отрубил этот конец и припаял четырехконтактный разъем, заклеив его горячим клеем. Это красиво подключилось к моей макетной плате. Сторона, на которой я оставил вилку, вошла в модульное гнездо, которое я вытащил из маршрутизатора. Были использованы все четыре провода (GND, индикатор состояния, кнопка запуска / остановки, кодовая кнопка). Если вы не заметили, мне нравятся вилки и коннекторы. Блок питания, подключенный к разъему питания, который я вытащил из маршрутизатора. Пропустить провода через стенные трубы не было слишком сложно из-за гибкого захватного устройства. Это действительно спасло мне день.

Шаг 5: Код

Код
Код
Код
Код

Я пытался прокомментировать свой код. Имейте в виду, что это программное обеспечение версии 1.0, что означает, что оно не лишено ошибок. ## ОПЕРАЦИЯ ## 1. Нажмите кнопку пуска / остановки, чтобы сообщить, что вы готовы начать ввод кода. Индикатор состояния начинает медленно мигать. 2. Введите свой код на кнопку кода. Индикатор состояния будет мигать со скоростью 120 ударов в минуту, так что вы можете использовать его в качестве метронома, если хотите. Однако программа cryptap будет пропорционально измерять длины импульсов относительно друг друга, так что вы также можете использовать свой собственный темп. Просто убедитесь, что вы достаточно точны! 3. По завершении ввода кода снова нажмите кнопку пуска / остановки. Затем программа решит, впускать ли вас. Поскольку люди не очень точные хронометры (искренне ваш), я установил коэффициент допуска +/- 30%. Это означает, что длина долей может быть неточной на эту величину, и все равно пройти проверку. Этого достаточно, чтобы отличить довольно похожие мелодии. Между битами двойной и тройной длины есть небольшое труднодоступное перекрытие, но код по-прежнему довольно сложно сломать. Чтобы открыть дверь, удары должны быть в правильной пропорции по отношению друг к другу (+/- коэффициент допуска), а количество ударов должно быть правильным. Если введен неверный пароль, программа ждет несколько секунд, игнорируя любой ввод пользователя. Также будет быстро мигать индикатор состояния. Если введен правильный код, индикатор состояния будет гореть постоянно, и дверь откроется на 8 секунд. ## КОНФИГУРАЦИЯ ПОЛЬЗОВАТЕЛЯ ## Ключ хранится в массиве, подобном этому: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // «С днём рождения вас» В массиве хранится время, которое происходит МЕЖДУ долями. Итак, если в вашем пароле есть ШЕСТЬ заметок типа «С днём рождения», в массиве должно быть ПЯТЬ элементов. Если ваш пароль действительно длинный и у вас более 16 битов (очень сложно, я не рекомендую), вы должны увеличить число, указанное в этой строке: #define inputCodeLength 16 ## ОСТАВШИЕСЯ КОДА # # Меня интересовали прерывания, поэтому у меня были кнопки, запускающие прерывания. Чтобы упростить использование этих прерываний, я попросил обработчики прерываний проверять определенные указатели на функции. Если указатель не установлен в NULL, вызывается функция, на которую он указывает. Они устанавливаются с помощью различных функций «установки режима» внутри cryptap.c. Я постарался избежать переполнения буфера, установив максимальное количество вводимых импульсов. Если введено максимальное количество импульсов, программа сразу же запускает анализ пароля и решает, открывать ли дверь. Надеюсь, мои комментарии в коде помогут. ## ОШИБКИ ## Я попытался удалить код отладки USB, но в этом случае код не будет работать. Итак, я оставил usb_init () и различные операторы print (). Я был бы признателен, если бы кто-нибудь удалил их, и программа все еще работала. Еще лучше, если они смогут объяснить, почему у меня это не сработало. Сразу после программирования Teensy иногда не принимает ввод кода. Чтобы решить эту проблему, выключите и снова включите схему.

Рекомендуемые: