Реклама ⓘ
Главная » Охрана
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

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

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

 

Описание

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

Отличительными особенностями разрабатываемого электронного кодового замка являются:

  • показатели температуры с датчиков ds18b20 (можно подключить до 3 датчиков)
  • показатели количества открытий, включений замка, входов в режим администратора
  •  возможность его программирования во время работы

Это осуществимо с помощью мастер-кода, который в отличие от обычных кодов (которых может быть записано в памяти МК до 124 штук) записан в памяти МК в единственном экземпляре. При правильно набранном мастер-коде открывается режим программирования замка с высвечивающимися подсказками на дисплее. В режиме программирования доступно 4 основных функции:

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

 

Технические характеристики

Питание выполнено с помощью кабеля USB 2.0 Type A - B от адаптера питания с напряжением 5 В и током не менее 300 мА. Предусмотрена возможность перепрограммирования микроконтроллера электронного кодового замка с помощью программатора и кабеля USB 3.0 Type A - B

Характеристики охранного устройства:

  • напряжение питания 5 В
  • в включенном состоянии ток потребления не более 300 мА
  • в режиме ожидания ток потребления не более 150 мА
  • коммутация тока до 2 А
  • время коммутации 15 с

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

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

 

Принципиальная схема

 

1.jpg

MCU1 – микроконтроллер, в котором зашита основная программа управления 

LCD1 – дисплей для вывода введенных комбинаций

R1, R2 –токоограничивающие резисторы для светодиодов VD1-VD2

R3, R4- токоограничивающие резисторы для базы VT1

R5- дополнительное сопротивление между цепями Vcc и RESET для избавления от ложных срабатываний схемы сбросы 

С1- конденсатор для сглаживания кратковременных импульсных помех, вызванных работой внутренних схем микроконтроллера

C2- конденсатор, определяющий отсутствие логического значения на неиспользуемом выводе AREF, предназначенный для улучшения качества опорного напряжения АЦП 

VT1- транзисторный ключ

RL1- коммутирующее реле

VD3- защита RL1 и VT1 и MCU1 от всплесков самоиндукции, происходящих от реле

P1- потенциометр, регулирующий контрастность ЖКИ

SB1, SB2- переключатели, соединяющие цепь питания с LCD1 и RL1

S1-S12- тактовые кнопки, которые задают режимы работы и комбинации

XS1, XS2- разъемы питания

 

Описание работы принципиальной схемы

Для работы D1 все выводы питания и все выводы земли МК должны быть соединены с контактами +5В и GND разъема XS1 соответственно. Для улучшения работы D1 между цепями GND и +5В ставится конденсатор C1 емкостью 100нФ для уменьшения импульсных помех в цепи питания, вызванных работой цифровых схем внутри МК. Конденсатор C2 такой же емкости нужен на выводе AREF МК для отсутствия на нем логического значения, для улучшения внутреннего опорного напряжения АЦП. Также необходим резистор R2 номиналом 10кОм между выводами RESET и VCC МК для предотвращения частых сбросов схемы из-за недостаточного сопротивления этой цепи внутри D1. С помощью четырех выводов MISO, MOSI, SCK, RESET по интерфейсу XS1 можно программировать МК, не демонтируя его, что существенно усложняется жестким паянным соединением на ПП.

С помощью клавиатурного поля S1-12 вводится комбинация чисел, которая высвечивается на индикаторе D2 и которую МК сравнивает с правильной комбинацией чисел, записанной в его памяти. В случае совпадения на индикаторе D2 появляется оповещение, также начинает светиться светодиод HL1, уведомляющий о правильно набранном коде. Светодиод HL2 предупреждает о случае изменения или удаления цифры введенной комбинации. Светодиоды HL1, HL2 подключены к выводам микроконтроллера через токоограничительные резисторы R1, R4.

Потенциометр P1 позволяет регулировать контрастность индикатора D2.

При правильно набранном коде микроконтроллер подает значение логической единицы на базу транзистора VT1 и он переходит в режим насыщения. Для ограничения тока на базе ставится резистор R3. Резистор R5 необходим для надежного закрытия транзистора VT1, когда он находится в режиме отсечки.

На коллекторе транзистора находится реле RL1 с параллельно соединенным диодом VD1. Он необходим для сглаживания импульсов самоиндукции RL1 при открытии транзистора VT1, когда на реле подается +5В питания и оно срабатывает, и при закрытии, когда на реле перестает идти напряжение. При срабатывании реле RL1 замыкаются контакты, соединенные с выводами клеммника XS2, к которому можно подключить соленоид.  

 

Настройка прошивки в Proteus

ПО написано на языке Си в программном комплексе Atmel Studio 7.

 

Этапы работы в Proteus

1) Выставить настройки МК в соответствии со настройками на скриншоте в папке Codelock --> Proteus модель

7.png

2) Первоначально необходимо очистить память МК.

В Proteus жмем Debug --> Reset Persistent Model Data --> Yes

3) Используем проект GccApplication3.

В нем лежит файл GccApplication3.hex.

Это основной файл прошивки, зашиваем его в МК.

4) Дальше необходимо настроить память МК.

Используем кнопку сброса (RESET) для настройки памяти:

- Нажатие кнопки на 1 с. очищает количество входов в режим администратора

- Нажатие кнопки на 5 с. очищает количество включений, и количество открытий замка

- Нажатие кнопки на 15 с. сбрасывает пароль администратора на 1111

- Нажатие кнопки на 30 с. стирает все записанные в памяти коды, кроме кода администратора  

Для первоначальной настройки необходимо выполнить все шаги.

19.png

 

20.png

 

21.png

 

 

 

Работа прошивки в Proteus

Проверка работоспособности прошивки проводилось в программе Proteus.

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

8.png

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

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

9.png

При правильно введенным коде замок открывается на 15 секунд, начинает светить зеленый светодиод и высвечивается заставка:

10.png

При правильно введенном мастер-коде открывается режим администратора. С помощью * можно просмотреть список кодов. С помощью # можно добавить, удалить код или изменить мастер-код.

11.png

Чтобы добавить, удалить код или изменить мастер-код необходимо набрать код из 4 цифр и нажать соответствующую цифру или символ. Здесь также можно удалить последнюю набранную цифру с помощью #.

12.png

После добавления нового кода высвечивается заставка:

13.png

После удаления старого кода высвечивается заставка:

14.png

После изменения мастер-кода высвечивается заставка:

15.png

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

16.png

Для просмотра следующего кода необходимо нажать *.

17.png

После просмотра всех кодов высвечивается заставка, показывающая количество всех записанных в памяти кодов. Если в памяти записано много кодов (максимальное количество до 124 кодов) и необходимо узнать только их количество, то вместо * для просмотра следующего кода необходимо нажать # и сразу высветится данная заставка:

18.png

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

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

Печатная плата

Проводящий рисунок печатной платы создан в САПР «Altium Designer». Разработанная печатная плата представляет собой двусторонюю печатную плату с КМО. Все компоненты монтируются в отверстия, что удобно для самостоятельной пайки с помощью обычного паяльника.

24.png

 

UPD

Для корректной работы добавил резистор R9 рядом с кнопкой сброса. Скриншот платы сверху актуальный. Подправил прошивку, проект в Atmel Studio, модель в Proteus и плату в Altium. Архивы обновил в закрепе. Потому что неправильно была подсоединена кнопка RESET. Вывод PB0 назначил входом. На нем должен быть логический 0, для этого надо соединить его через резистор к минусу питания. Вовремя нажатия кнопки RESET на выводе будет логическая 1, и сработает команда сброса.

 

Ячейка

Все компоненты устанавливаются на плату без зазора.

Особое внимание стоит уделить установки дисплея. Закрепляется он с помощью двух крепежных отверстий. Устанавливается дисплей на штырьки, поэтому необходимо приподнять дисплей над платой с помощью гаек. Для обеспечения оптимальной высоты необходимо установить между платой и дисплеем по две гайки М2,5×1,9 на каждое из двух крепежных отверстий. Фиксируется дисплей с помощью еще одной гайки М2,5×1,9 под платой и винта М2,5×12 на каждое из двух крепежных отверстий.

25.png

На кнопки, для их защиты, крепятся колпачки:

- на кнопки S1-S12, колпачок круглый А-07

- на кнопку SB1, колпачок цилиндрический А-04  

 

26.png

 

Настройка кодового замка, прошивка

Для прошивки МК использовалась программа avrdude3.3_6.1 и программатор с шлейфом и переходником:

  • USBASP ISP программатор IVR
  • Переходник USB 3.0 - DIP (9 pin)

Для того чтобы соединить шлейф от программатора к разъему USB 3.0 Type B использовались переходник:

  • Atmel ISP переходник AVR 10 пин - 6 пин
  • Штырьки для переходника USB 3.0 - DIP (9 pin)

И кабели:

  • Кабель USB 3.0 A - USB 3.0 B
  • Макетные провода

 

      4.jpg5.jpg

 

Этапы работы в avrdude_prog v3.3

1) Первоначально необходимо правильно выставить фьюзы и ОБЯЗАТЕЛЬНО нажать программирование. Какие фьюзы выставить представлено на скриншоте. Он также лежит в папке Codelock --> Atmel Studio прошивка.

6.png

2) Дальше необходимо очистить память МК.

Выбираем модель МК, жмем стереть все.

Дальше читаем колебровочные ячейки.

Если все ок, то продолжаем дальше.

3) Дальше можно использовать проект GccApplication3.

В нем лежит файл GccApplication3.hex.

Программируем память flash, память eeprom не нужно программировать.

Необходимо выбрать путь к файлу GccApplication3.hex и нажать программирование.

ЕСЛИ ВСЕ ОК, НА ЭТОМ ПРОШИВКА ЗАКОНЧЕНА.

4) Дальше необходимо настроить память МК.

Используем кнопку сброса (RESET) для настройки памяти

- Нажатие кнопки на 1 с. очищает количество входов в режим администратора

- Нажатие кнопки на 5 с. очищает количество включений, и количество открытий замка

- Нажатие кнопки на 15 с. сбрасывает пароль администратора на 1111

- Нажатие кнопки на 30 с. стирает все записанные в памяти коды, кроме кода администратора  

Для первоначальной настройки необходимо выполнить все шаги.

 

 

Корпус и изделие в сборе

Создание сборки проводилось в САПР «Solidworks». Были созданы 3D модели элементов корпуса: крышка, основание, винты, защитное стекло. После моделирования элементы корпуса вместе с ячейкой были собраны в единую сборку.

Корпус устройства состоит из двух основных деталей – основания, в которое крепится собранная ячейке, и крышки. На крышке предусмотрены специальные отверстия под кнопки и дисплей.

27.png

Особое внимание стоит уделить установке защитных стекол и установке заглушки, чтобы предотвратить вытаскивание стекол из паза. Толщина устанавливаемого защитного стекла 4 мм, что обеспечивает хорошую стойкость к ударам.

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

Для двух светодиодов в крышке предусмотрены две трубки, чтобы не терять яркость свечения.

28.png

Итоговый вид устройства:

29.png

 

Итоговая стоимость устройства

- Покупка элементной базы у меня составила около 1 тысячи рублей. Дисплей, МК, реле обошлись дороговато. Покупал в популярной розничной сети, у китайцев вышло бы намного дешевле

- Винты, гайки около 100 рублей

- Плату заказывал у китайцев, обошлось в 800 рублей за 5 штук

- Программатор стоил 300 рублей

- Изготовление защитного оргстекла, обошлось в 300 рублей за 5 штук

- И на печать корпуса из ABC пластика пришлось потратить 2 тысячи рублей. Возможно, где то есть дешевле(

- Также купил запорный механизм закрытого типа за 1 тысячу рублей

- Адаптер питания для замка и блок питания для механизма имелись в наличии.

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

 

Закрепленные файлы

Atmel_Studio_proshivka.zip - Проект в Atmel Studio и файл прошивки с расширением .hex

Proteus_model.zip - Проект в Proteus и файл прошивки с расширением .hex

Altium_plata.zip - Проект в Altium Designer и архив Project Outputs for PCB_Project1 для создания заказа на изготовление платы на сайте производителя

Solid_yacheyka.zip - Сборка ячейки в SolidWorks

Solid_korpus.zip - Сборка корпуса в SolidWorks и 3D модели деталей корпуса (основание, крышка, заглушка) в формате .STL для печати

 

Собранное устройство

По итогу кодовый замок был собран. Полностью работоспособен. Он полностью совпадает с разработанной 3D моделью. Прошивка в железе работает также как моделирование в Proteus. Воплощение этого проекта принесло много опыта. Надеюсь, он принесет еще кому-нибудь пользу) 

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Детали
ПлатаPCB Altium1 Поиск в магазине ОтронВ блокнот
Основание3D модель SolidWorks1 Поиск в магазине ОтронВ блокнот
Заглушка3D модель SolidWorks1 Поиск в магазине ОтронВ блокнот
Крышка3D модель SolidWorks1 Поиск в магазине ОтронВ блокнот
Защитное стекло83х34х41 Поиск в магазине ОтронВ блокнот
Защитное стекло21х14х41 Поиск в магазине ОтронВ блокнот
 
 
Стандартные изделия
Винт ЯчейкаМ2.5х122 Поиск в магазине ОтронВ блокнот
Гайка ЯчейкаМ2.5-1.96 Поиск в магазине ОтронВ блокнот
Винт КорпусМ3х84 Поиск в магазине ОтронВ блокнот
Винт КорпусМ3х106 Поиск в магазине ОтронВ блокнот
 
 
Диоды
VD3, VD4 Диод
КД243А
2 Поиск в магазине ОтронВ блокнот
 
Кнопки
S1-S12 КнопкаKLS7-TS601-13.012 Поиск в магазине ОтронВ блокнот
 
Конденсаторы
C1, C2 К73-170.22 мкФ±5% - 63 В2 Поиск в магазине ОтронВ блокнот
 
Микросхемы
MCU1 МК AVR 8-бит
ATmega8-16PU
1 Поиск в магазине ОтронВ блокнот
LCD1 ЖКИWH-1602-NYG-CT 16x21 Поиск в магазине ОтронВ блокнот
 
Переключатели
SB1 ПереключательKLS7-P8.51 Поиск в магазине ОтронВ блокнот
SB2 КнопкаTS-A1PV-1301 Поиск в магазине ОтронВ блокнот
SB3 ПереключательDIP DS 10401 Поиск в магазине ОтронВ блокнот
 
Потенциометры
P1 Потенциометр3296Y-1-103LF1 Поиск в магазине ОтронВ блокнот
 
Разъемы
XS1 РазъемUSB 3.0 Type B1 Поиск в магазине ОтронВ блокнот
XS2 КлеммникKLS2-301R-5.00-02P-2S1 Поиск в магазине ОтронВ блокнот
XS3 XS3DG350-3.5-03P1 Поиск в магазине ОтронВ блокнот
 
Резисторы
R1, R2, R3, R6, R9 С1-41 кОм±5% - 0.125 Вт5 Поиск в магазине ОтронВ блокнот
R4, R5, R7 С1-410 кОм±5% - 0.125 Вт3 Поиск в магазине ОтронВ блокнот
R8 С1-44.7 кОм±5% - 0.125 Вт1 Поиск в магазине ОтронВ блокнот
 
Реле
RL1, RL2 Реле1393219-6 (PE014012)2 Поиск в магазине ОтронВ блокнот
 
Светодиоды
VD1 СветодиодАЛ307ЛМ красный1 Поиск в магазине ОтронВ блокнот
VD2 СветодиодАЛ307ЛМ зеленый1 Поиск в магазине ОтронВ блокнот
 
Транзисторы
VT1, VT2 Биполярный транзистор
КТ3102БМ
2 Поиск в магазине ОтронВ блокнот
 
Колпачки для кнопок
КолпачокКруглый А-0712 Поиск в магазине ОтронВ блокнот
КолпачокЦилиндрический А-041 Поиск в магазине ОтронВ блокнот
 
 
Кабели
КабельUSB 3.0 A - USB 3.0 B1 Поиск в магазине ОтронВ блокнот
 
Переходники
ПереходникUSB 3.0 - DIP (9 pin)1 Поиск в магазине ОтронВ блокнот
ПереходникAtmel ISP переходник AVR 10 пин - 6 пин1 Поиск в магазине ОтронВ блокнот
 
Программатор
ПрограмматорUSBASP ISP программатор IVR1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 19.11.2022 0 1
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (11) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
ElKotto #
Это даже не статья, статьища просто. Оформления лучше я наверное еще нигде не видел. Библиотекой 3Д моделей для альтиума не поделитесь?

Ну и мне, как начинающему в альтиум, интересно, зачем столько слоев механикал? Какую функцию они у вас выполняют?
Ответить
0

[Автор]
Andromeda #
Там только один слой Mechanical - розовый Mechanical 1 по краям платы. Он нужен, чтобы ее обрезать по выделению (Define from selected objects). Также он нужен, когда создаете Gerber Files для изготовления платы на заказ, чтобы определить ее границы.
Розовые контуры с штриховкой это 3D модели дисплея, МК и разъема USB 3.0 B в формате .step, которые импортировал в проект платы, потому что их посадочные места (Footprints) не имели моделей. Правильнее было бы добавить модели в библиотеку, а не на плату, тогда такой штриховки бы не было.
Плату делал в Altium Designer 18.
Не уточнил про модель ячейки в статье.
Для этого экспортировал плату как .step в SolidWorks 2018 чтобы добавить гайки, винты, колпачки на нее и сохранить как сборку ячейки. Потом добавил ячейку в одну сборку с корпусом.
Можно было бы гайки, винты, колпачки импортировать в альтиум и ячейка была бы сделана уже в альтиуме, без солида, но в солиде удобнее.
Ссылка на диск с библиотеками https://disk.yandex.ru/d/AVLWXPO22rcCFA
Ответить
0
ElKotto #
За модельки гигантское спасибо! Просто на скрине платы видно очень много слоев механикал, стало интересно, зачем вы их держите. Может нужны для чего то, я у себя в библиотеках оставил один механикал, назвал его 3д модель, а в платах два механикала, один в-кат, второй 3д модель.
Ответить
0

[Автор]
Andromeda #
Вы имеете ввиду, зачем в панели выбора слоев так много механикал. Это я их просто не убрал. Никакую функцию здесь они не выполняют.
Пользовался только одним механикал 1.
Ответить
0
andro #
В первую очередь спасибо за полезную статью, имеющую практическое значение.
Имеются вопросы:
- Что происходит при одновременном нажатии нескольких кнопок;
- Как шифруются хранимые значения введённых паролей;
- Где можно посмотреть исходный текст программы.
Заранее благодарю.
Ответить
0

[Автор]
Andromeda #
1) Какая то из этих нескольких кнопок будет нажата раньше, и пока ее не отжать, на дисплее введенная цифра не высветится. После того, как эту кнопку отжать, одна цифра будет введена.
А дальше МК будет ждать, когда будет отжата кнопка с наименьшим порядковым номером и значением цифры (так как номер и цифра совпадают, кроме номеров 10, 11, 12), чтобы ввести еще одну цифру.
Все произойдет так, потому что:
- МК проверяет нажатие кнопки, начиная с номера 1 и заканчивая номером 12, то есть по возрастанию номера.
- МК проверяет была ли отжата кнопка.

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

3) Atmel_Studio_proshivka - GccApplication3 - GccApplication3 - main.c

Есть мысль улучшить прошивку в дальнейшем. Сделать так, чтобы из режима ожидания (когда дисплей отключен) замок выходил с помощью нажатия на любую кнопку, а не на кнопку питания, так как МК продолжает работать и может проверять нажатия кнопок.
И подумать над шифрованием, лишь бы у атмеги8 хватило флеш памяти.
Ответить
0
andro #
Спасибо, понятно.
Ответить
0
Epson L800 #
Вопрос про кнопки скорее всего имелось в виду, что при нажатии двух кнопок контроллер опрашивает по очереди строки и если зажать две строки вместе то происходит замыкание ! Это значит можно спалить контроллер, на пины настроенные на выход нужно ставить диоды!
Ответить
0
Александр #
Какой размер платы?
Ответить
0

[Автор]
Andromeda #
125 на 90 мм.
Отредактирован 01.06.2023 12:53
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Солнечная панель 10Вт 12В поликристаллическая
Солнечная панель 10Вт 12В поликристаллическая
Мини гравер 125 Ватт Модуль измерения тока на ACS712 (30А)
вверх