Кодовый замок из ардуино. Умный электронный замок на Ардуино, работающий по Bluetooth — входная дверь как у Спайдермена Настройка датчика отпечатка пальца

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

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

Шаг 1: Список материалов





Для сборки электронного замка на Ардуино вам понадобятся следующие материалы:

Электроника:

  • 5В настенный адаптер

Компоненты:

  • 6 винтов для шпингалета
  • картон
  • провода

Инструменты:

  • паяльник
  • клеевой пистолет
  • дрель
  • сверло
  • сверло для направляющего отверстия
  • канцелярский нож
  • компьютер с программой Arduino IDE

Шаг 2: Как действует замок

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

Рычаг сервопривода, соединенный со шпингалетом, будет закрывать его (на 0°) и открывать (на 60°), с помощью команд, получаемых через модуль Bluetooth.

Шаг 3: Схема монтажа проводов


Давайте сначала подключим сервопривод к плате Arduino (хочу заметить, что, хотя у меня использована плата Arduino Nano, в плате Uno расположение выводов точно такое же).

  • коричневый провод сервопривода – заземляющий, его подключаем к земле на Arduino
  • красный провод – плюс, его подключаем к разъему 5В на Arduino
  • оранжевый провод – вывод истока сервопривода, его подключаем к 9-му выводу на Arduino

Я советую вам проверить работу сервопривода, прежде чем продолжить сборку. Для этого в программе Arduino IDE в примерах выбираете Sweep. Убедившись в том, что серво работает, можем подключать Bluetooth-модуль. Нужно соединить вывод rx модуля Bluetooth с tx выводом Arduino, и tx вывод модуля с rx выводом Arduino. Но пока не делайте этого! Когда эти соединения будут спаяны, вы уже не сможете загрузить никакие коды на Arduino, поэтому сначала загрузите все ваши коды и только после этого паяйте соединения.

Вот схема соединений модуля и микроконтроллера:

  • Rx модуля – Tx платы Arduino
  • Tx модуля – Rx платы
  • Vcc (положительный вывод) модуля – 3,3v платы Arduino
  • Ground соединяем с Ground (заземление с заземлением)

Если объяснение кажется вам непонятным, следуйте представленной схеме соединений проводов.

Шаг 4: Испытание

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

Шаг 5: Корпус для электрокомпонентов



Я решил поместить в корпус только контроллер и модуль Bluetooth, а сервопривод оставить снаружи. Для этого на куске картона обводим контур платы Arduino Nano и добавляем по 1 см пространства по периметру и вырезаем. После этого также вырезаем еще пять сторон корпуса. В передней стенке нужно будет прорезать отверстие под шнур питания контроллера.

Размеры сторон корпуса:

  • Дно – 7,5х4 см
  • Крышка – 7,5х4 см
  • Левая боковая стенка – 7,5х4 см
  • Правая боковая стенка – 7,5х4 см
  • Передняя стенка – 4х4 см (с прорезью под шнур питания)
  • Задняя стенка – 4х4 см

Шаг 6: Приложение

Для управления контроллером вам нужен гаджет на Android или Windows со встроенным Bluetooth-ом. У меня не было возможности проверить работу приложения на яблочных устройствах, может быть, будут нужны какие-нибудь драйвера.

Уверен, кое у кого из вас есть возможность проверить это. Для Андроида скачайте приложение Bluetooth Terminal, для Windows скачайте TeraTerm. Затем нужно подключить модуль к смартфону, имя должно быть linvor, пароль – 0000 или 1234. Как только сопряжение установится, откройте установленное приложение, войдите в опции и выберите «Установить соединение (небезопасное)». Теперь ваш смартфон – монитор последовательного интерфейса Arduino, то есть вы можете обмениваться данными с контроллером.

Если вы введете 0, дверь закроется, а на экране смартфона будет сообщение «Дверь закрыта».
Если вы введете 1, то увидите, как дверь открывается, а на экране будет сообщение «Дверь открыта».
На Windows процесс тот же самый, за исключением того, что установить нужно приложение TeraTerm.

Шаг 7: Монтируем шпингалет


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

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

Шаг 8: Питание


Чтобы завершить устройство, вам понадобятся источник питания, шнур и штекер мини-usb для соединения с Arduino.
Соедините вывод земли источника питания с выводом земли мини-порта usb, соедините красный провод с красным проводом мини-порта usb, потом протяните провод от замка до дверной петли, а от нее протяните до розетки.

Шаг 9: Код

#include Servo myservo; int pos = 0; int state; int flag=0; void setup() { myservo.attach(9); Serial.begin(9600); myservo.write(60); delay(1000); } void loop() { if(Serial.available() > 0) { state = Serial.read(); flag=0; } // if the state is "0" the DC motor will turn off if (state == "0") { myservo.write(8); delay(1000); Serial.println("Door Locked"); } else if (state == "1") { myservo.write(55); delay(1000); Serial.println("Door UnLocked"); } }

Шаг 10: Законченный замок на базе Arduino

Наслаждайтесь своим замком с дистанционным управлением, и не забудьте «случайно» запереть друзей в комнате.

Ведущего канала youtube “AlexGyver” просили сделать электронный замок своими руками. Добро пожаловать на цикл видео про электронные замки на arduino. В общих чертах мастер объяснит идею.

Есть несколько вариантов создания системы электронного замка. Чаще всего используются для запирания дверей и ящиков, шкафов. А также для создания тайников и потайных сейфов. Поэтому нужно сделать макет, с которым удобно работать и можно наглядно и подробно показывать устройство системы изнутри и снаружи. Поэтому решил сделать раму с дверцей. Для этого понадобится квадратный брус 30 x 30. Фанера 10мм. Дверные петли. Изначально хотел сделать фанерный ящик, но вспомнил, что в комнате всё завалено запчастями. Подобный ящик некуда поставить. Поэтому будет сделан макет. Если кто-то хочет поставить себе электронный замок, то, глядя на макет можно с легкостью всё повторить.

Все, что нужно для замка, найдете в этом китайском магазине .

Цель – разработать максимально эффективные схемы и прошивки для электронных замков. Вы сможете использовать эти результаты для установки этих систем на свои двери, ящики, шкафы и тайники.

Дверца готова. Теперь нужно придумать, как открывать и закрывать электронным способом. Для этих целей подходит мощная соленоидная щеколда с aliexpress (ссылка на магазин выше). Если подать на выводы напряжения, она откроется. Сопротивление катушки почти 12 ом, значит при напряжении 12 вольт катушка будет кушать около 1 ампера. С такой задачей справится и литиевый аккумулятор и повышающий модуль. Настраиваем на соответствующее напряжения. Хотя можно и чуть больше. Щеколда крепится на внутренней стороне дверцы на расстоянии, чтобы не цепляла край и могла захлопываться. Щеколды должна быть ответной частью в виде металлического короба. Использовать ее без этого неудобно и неправильно. Придётся поставить ступеньку, хотя бы создавалась видимость нормальной работы.

В холостом режиме щеколда открывается нормально, то есть если на дверце есть ручка, подаем импульс, дверку за ручку открываем. Но если подпружинить, этот способ уже не подходит. Повышающий преобразователь не справляется с нагрузкой. Для открытия подпружиненный дверцы придется использовать большие аккумуляторов и более мощный преобразователь. Либо сетевой источник питания и забить на автономности системы. В китайских магазинах есть щеколды больших размеров. Они подойдут для ящиков. Питания можно подавать при помощи реле или мосфет транзистора, либо силового ключа на том же транзисторе. Более интересно и менее затратный вариант – сервопривод, соединенный с шатуном с любым запирающим элементом – шпингалет или более серьёзные задвижка. Он может понадобиться также кусочек стальной спицы, выполняющей роль шатуна. Такой системе не нужен большой ток. Но она занимает больше места и более хитрая логика управления.

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

Вторая часть

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

Работает замок так: Поднесли НАШ ключ (RFID-метка) - замок закрылся, поднесли ключ повторно - замок открылся. Для визуализации работы замка, использовано шесть двухцветных светодиодов (линейка). При закрытии - пробегает красный свет, при открытии - зелёный. Если поднести ЧУЖОЙ ключ, мигнут красные светодиоды.

В качестве исполнительного механизма, решил использовать привод центрального замка автомобиля. Можно купить новый, можно б/у, разница в цене не большая, поэтому использовал новый, оно и надёжней. Шток привода соединил со шпингалетом. Шпингалет ещё советский, крепкий. Да и мощной "антивандальности" мне не требуется.

"Машинка" управляется по двум проводам. Одна полярность выдвигает шток, обратная полярность шток втягивает. При напряжении 12 вольт, ток составляет 6 ампер, много...
В "машинке" нет концевых выключателей.

Исходя из того что схема замка (по задумке) имеет гарантированное питание, аккумулятор 12 вольт, для обеспечения работы замка, в случае пропадания ~220 . Разработал мостовую схему управления "машинкой". Особой фишкой схемы является её нелинейность, обеспечивающая надёжную работу механизма замка, и одновременно - щадящий режим работы "машинки" и ключевых транзисторов.

На схеме (выше), плечо "Закрыть" выделено красным цветом, а плечо "Открыть" - зелёным. Плечи питаются раздельно, через резисторы (находятся в блоке питания). Разделение питания плеч моста, ввёл для исключения ложных срабатываний.

Пояснение: Через резисторы 33- Ом (на схеме блока питания), напряжение 12 вольт заряжает конденсаторы (по 2000 -мкф, в каждом плече). При поступление управляющего напряжение от контроллера Arduino_ProMini-168 на вход "Закрыть" (или аналогично на "Открыть"), через оптопару PVT322 - открывается соответствующее плечо ключей. При этом происходит следующее: В момент открытия ключей, энергия с конденсаторов мощно "дёргает" моторчик "машинки". По мере разряда конденсаторов (это происходит быстро) моторчик "машинки" питается током ограниченным резисторами (33 -Ом). Благодаря этому, в конце процесса "закрытия"-"открытия" замка, шток движется достаточно медленно.

Такой способ управления двигателем является оптимальным.

Схема блока питания трансформаторная. Вообще, схема замка питается от аккумулятора 12 -вольт, 2,8 -А/Ч. А схема БП поддерживает аккумулятор на номинальном уровне. Светодиод "Сеть" указывает на нормальную работу блока питания.

Все диоды 1N4007 (забыл указать на схеме, а человек задал вопрос - какие?).

(1) собран ограничитель максимального тока. Резистором R1 верхний порог тока установлен в 300 -мА.
На интегральном стабилизаторе LM317(2) собран стабилизатор напряжения. Напряжение стабилизации настраивается резистором R 2 . Напряжение на аккумуляторе должно составлять 13,7 -вольта.

Напряжение с аккумулятора подаётся в три точки.
Через резисторы (по 33 -Ом) на (X) , (Y) - питание плечей ключей "драйвера" мотора "машинки".

Большинство своих устройств собираю из того, что под руку попалось. Этот проект не исключение. В качестве корпуса использую корпус:) от электронного балласта:

Светодиоды №-2 ... №-7 - двухцветные. Они расположены в линию. Используются для визуализации процессов "открытие" и "закрытие" замка. Украшательство.

В этой статье я расскажу, как сделать кодовый замок из ардуино. Для этого нам понадобятся красный и зелёный светодиоды, зуммер, ардуино нано, LCD дисплей с I2C конвертором, сервопривод и матричная клавиатура 4x4. При включении дисплей будет писать "Enter code.",

включится красный светодиод,

а зелёный погаснет, сервопривод установится на 0°. При вводе цифр на дисплее будут загораться *.

Если код введён неверно, то дисплей напишет "Enter cod.". Если код правильный, то прозвучит звуковой сигнал, серво привод повернётся на 180°, дисплей напишет "Open."

включится зелёный светодиод,

а красный отключится. После 3 секунд сервопривод вернётся в начальное положение, включится красный светодиод, а зелёный погаснет, дисплей напишет "Close.",

затем дисплей напишет "Enter code.". Теперь о схеме. Сначала соединяем ардуино проводами с макетной платой (контакты питания).

Потом подключаем к контактам D9 - D2 матричную клавиатуру.

Затем сервопривод. Его подключаем к контакту 10.

Красный светодиод к контакту 11.

Зелёный - к контакту 12.

Зуммер - к контакту 13.

Теперь загружаем скетч.

#include #include #include #include iarduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd(0x27, 16, 2); Servo servo; int pass = {3, 6, 1, 8}; int in; int r = 11; int g = 12; void setup() { KB.begin(KB1); pinMode(r, OUTPUT); pinMode(g, OUTPUT); lcd.init(); lcd.backlight(); digitalWrite(g, LOW); digitalWrite(r, HIGH); servo.attach(10); servo.write(0); lcd.setCursor(0, 0); } void loop() { lcd.clear(); lcd.print("Enter code."); while (!KB.check(KEY_DOWN)) { delay(1); } in = KB.getNum; lcd.clear(); lcd.setCursor(0, 0); lcd.print("*"); while (!KB.check(KEY_DOWN)) { delay(1); } in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) { delay(1); } in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) { delay(1); } in = KB.getNum; lcd.print("*"); if (in == pass) { if (in == pass) { if (in == pass) { if (in == pass) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Open."); tone(13, 400, 750); servo.write(180); digitalWrite(r, LOW); digitalWrite(g, HIGH); delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Close."); tone(13, 300, 700); servo.write(0); digitalWrite(g, LOW); digitalWrite(r, HIGH); delay(1000); } } } } }

Вот и всё. Наслаждайтесь кодовым замком!

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

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Е1 Плата Arduino

Arduino Nano 3.0

1 В блокнот
Е8, Е9 Резистор

220 Ом

2 SMD В блокнот
Е6 Светодиод

АЛ102Г

1 Красный В блокнот
Е7 Светодиод

АЛ307Г

1 Зелёный В блокнот
Е3 LCD-дисплей С I2C интерфейсом 1 Зелёная подсветка В блокнот
Е5 Сервопривод SG90 1 180 градусов В блокнот
Е2 Зуммер 1 Bu В блокнот
Е4 Клавиатура 4Х4 1 Матричная В блокнот
Нет BreadBoard 640 точек 1 Без пайки

ДАЧА у меня, как и у большинства у кого она есть ассоциируется с словами: отдых, шашлык, комфорт и прочие приятные духу и телу движения, но есть и обратная сторона: огород, копать, ремонт, стройка и т.д.

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

После обсуждения некоторых деталей было принято, что ворота должны быть откатные на автоматике ну и калитка обладать некоторыми свойствами СКУД. С воротами вопрос был решен покупкой комплекта автоматики (привод, рейка, пульт и т.д.), а с калиткой нужно было решить некоторые задачи, о них ниже.

Задачи были следующие:

  1. Замок должен был работать совместно с ранее установленным видео домофоном (открыть калитку не выходя из дома)
  2. Иметь возможность открытия двери обычным ключом и без ключа с улицы и двора.
  3. Уложится в оставшийся бюджет до 5000 р.

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

После некоторых подсчетов и вычислений было принято купить электромеханический замок около 2000р., влагозащищённой клавиатуры 350р., ну и МК который будет здесь рулить. Так как в наличии имелось несколько плат Arduino nano, реле и рассыпуха и немного проводов, разница между стоимостью готового комплекта составила более 4000 т.р. По мне, отличный бонус для кошелька и саморазвития.

Ну что же, а теперь от слов к действию:

После покупки всех необходимых компонентов начал пилить.

Схема подключения клавиатуры

Дополнительная индикация светодиодов (белый,зеленый,красный) панели с клавиатурой сигнализирует (ввод, верный пароль дверь открыть,отказано).

  • pin 9 желтый
  • pin 10 зеленый
  • pin 11 красный

Панель (решетка) из оргстекла, нарезали за коробку конфет и улыбку соседи по офису. Но фреза самая малая оказалась чуть жирнее, пришлось поработать надфилем.

Ну вот и выходные, я выдвинулся на дачу.

Для открытия электромеханического замка,нужно 12 в. Блок питания, питающий МК был 5 в., решение поставить повышающий dc-dc преобразователь с поднебесной для замка. Все подключил начал проверять, работает, но при подаче напряжения на соленоид замка дуня перезагружалась, кз на блок питания. Дальше больше, после подключения вызывной панели от видео домофона к замку, при нажатии кнопки открыть дверь не чего не происходило, малый ток на замок. Тянуть новые провода не вариант, были уже забетонированы на выходе из дома. Решил добавить еще одно реле для панели и поставить дополнительный блок питания на 12 в. для замка. После разбора/сбора, все заработало, МК перестал перезагружаться. Все это дело спрятал во влагозащищенную распаячную коробку, спрятал провода, клей, силикон и готово!

Публикации по теме