Оглавление:

Дверной замок Arduino RFID: 5 шагов (с изображениями)
Дверной замок Arduino RFID: 5 шагов (с изображениями)

Видео: Дверной замок Arduino RFID: 5 шагов (с изображениями)

Видео: Дверной замок Arduino RFID: 5 шагов (с изображениями)
Видео: RFID RC522 Подключение к Ардуино 2024, Июль
Anonim
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID
Дверной замок Arduino RFID

*** Обновлено 9.08.2010 *** Я хотел сделать простой и безопасный способ входа в свой гараж. Радиочастотная идентификация была лучшим способом отпереть мою дверь, даже с занятыми руками я могу отпереть дверь и толкнуть ее! Я построил простую схему с базовым чипом Arduino ATMega 168 и считывателем RFID ID-20 для управления электронным дверным замком. Схема состоит из 3 отдельных частей: считывателя для считывания RFID-меток, контроллера для приема данных от считывателя и управления выходом светодиода RGB и электрического дверного замка. Дверной замок сначала устанавливается в дверь и проверяется с помощью батареи 9 В, чтобы гарантировать правильную установку. В большинстве случаев вам нужна нормально разомкнутая цепь на дверном замке или Fail Secure. Это означает, что дверь остается заблокированной, когда через нее не проходит ток. Когда 12 В постоянного тока пропускается через электромагнит в дверном замке, пластина в замке уступает место и позволяет двери свободно открываться. Считыватель расположен снаружи двери и отделен от контроллера внутри, так что никто не может обойти защиту, взламывая считыватель и пытаясь закоротить считыватель. Контроллер получает последовательные данные от считывателя и управляет светодиодом RGB и дверным замком. В данном случае я поместил их на отдельные макеты для тестирования. Вот видеообзор системы в действии. Прочтите, чтобы узнать, как создать систему для себя! ** Обновление ** Все коды, схемы и проекты печатных плат были протестированы и доработаны. Все они размещены здесь по состоянию на 09.08.2010. Обновленное видео окончательной установки и работы системы.

Шаг 1: Необходимые детали

Необходимые детали
Необходимые детали

Вот список запчастей и ссылки на SparkFun.com, где я их купил. Это базовый набор деталей, которые вам нужно собрать, а также Arduino и схему для считывания RFID-меток в Arduino. Я предполагаю, что у вас уже есть макет, блок питания и провода для подключения.

Ардуино материалы

ATmega168 с загрузчиком Arduino $ 4,95

Кристалл 16 МГц $ 1,50

Конденсатор керамический 22пФ 0,25 $ (x2)

Резистор 10кОм 1/6 Вт PTH 0,25 $

Мини кнопочный переключатель $ 0,35

Светодиодный RGB с тройным выходом - рассеянный $ 1.95

RFID вещи

Любой из них: 20 имеет лучший диапазон, 12 меньше RFID-считыватель ID-12 29,95 долл. США Считыватель RFID-20 34,95 долл. США

RFID-считыватель Breakout $ 0,95

Заголовки Break Away - Straight $ 2,50

RFID-метка - 125 кГц $ 1,95

Другой

Транзистор TIP31A (радиорубка / местный магазин электроники $ 1,50)

Дверной замок от ebay. Отказ двери Безопасный контроль доступа Electric Strike v5 NO $ 17,50 (kawamall, bay)

Шаг 2: соберите контроллер Arduino

Соберите контроллер Arduino
Соберите контроллер Arduino
Соберите контроллер Arduino
Соберите контроллер Arduino
Соберите контроллер Arduino
Соберите контроллер Arduino

Первый шаг к созданию дверного замка RFID с базовым Arduino - это макет базового рабочего Arduino. Большинство чипов ATMega 168 с предварительно установленной прошивкой Arduino поставляются с предустановленной программой мигания по умолчанию. Подключите светодиод к цифровому выходу 13 и убедитесь, что все работает.

Аппаратная часть этого считывателя RFID была бы слишком простой, если бы мы использовали обычный Arduino со встроенным программатором USB. Поскольку я планирую прикрепить его к стене и больше не прикасаться к нему, я не хочу использовать большую громоздкую плату Arduino за 30 долларов, когда я могу купить ATMega 168 за 5 долларов и сделать гораздо меньшую индивидуальную печатную плату.

Поскольку я сам решил сделать базовую схему Arduino, мне нужен внешний программатор USB-> Serial FDIT. Я включил схему контроллера Eagle с источником питания, построенным на стабилизаторе напряжения 7805. При тестировании я использовал макетный блок питания.

Для запуска и запуска Arduino все, что вам действительно нужно, это ATMega168 с прошитым программным обеспечением arduino, 2 конденсатора по 22 пФ, кристалл 16 МГц, резистор 10 кОм, кнопка и макет. Схема подключения хорошо известна, но я включил полную схему схемы.

Arduino будет активировать 4 выхода, по одному на каждый красный / зеленый / синий светодиоды и 1 для запуска TIP31A для отправки 12 В постоянного тока на дверной замок. Arduino получает последовательные данные на своей линии Rx от считывателя RFID ID-20.

Шаг 3. Создайте считыватель RFID

Создайте считыватель RFID
Создайте считыватель RFID
Создайте считыватель RFID
Создайте считыватель RFID
Создайте считыватель RFID
Создайте считыватель RFID

Теперь, когда у вас есть хлеб для Arduino и он работает, вы можете собрать часть схемы RFID-считывателя, которая будет содержать ID-10 или ID-20 и светодиод RGB для индикации состояния схемы. Помните, что считыватель будет снаружи и отделен от контроллера внутри, чтобы кто-то не мог легко взломать его.

Чтобы построить это, мы собираемся отправить 5 В / Земля с основной макетной платы на вспомогательную макетную плату, на которой мы строим Reader. Также отправьте 3 провода от 3 выходных контактов Arduino для управления светодиодом RGB, по одному для каждого цвета. Еще один провод, коричневый на изображениях, будет последовательным соединением для ID-20, чтобы общаться с последовательным входом Rx Arduino. Это очень простая схема для подключения. У светодиодов есть резисторы, и несколько точек на ID-20 связаны с землей / 5 В для установки правильного состояния.

Чтобы упростить монтаж на макетной плате, ID-10 / ID-20 Sparkfun продает плату Breakout, которая позволяет прикреплять более длинные штыревые разъемы, которые разнесены по размеру макетной платы. Эта часть и пин-заголовки перечислены в списке запчастей.

Схема должна быть простой и понятной.

Шаг 4: Программируйте

Пришло время запрограммировать ваш Arduino. Это может быть немного сложно с использованием базового Arduino, возможно, вам придется нажимать кнопку сброса несколько раз до и во время первой части загрузки. Очень важно помнить, что вы получите ошибку загрузки, если временно не отключите последовательную линию ID-20 от линии Rx Arduino. ATMega168 имеет только 1 вход Rx и использует его для загрузки кода для общения с программистом. Отключите ID-20 во время программирования, а затем подключите его снова, когда закончите. Я использовал программатор FTDI, который позволяет программировать Arduino через USB всего с 4 проводами. На схеме контроллера показано соединение с штыревым разъемом, позволяющее подключить его напрямую. Sparkfun также продает эту деталь, но у многих она уже есть.

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

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

Программа включает синий светодиод, чтобы указать, что она готова к считыванию новой карты. Когда карта считывается, он решает, действительная это карта или нет, сравнивая то, что она считывает, со списком действительных карт. Если пользователь действителен, arduino выключает синий светодиод и включает зеленый светодиод на 5 секунд. Он также включает другой выходной сигнал высокого уровня на 5 секунд. Этот выход подключен к транзистору TIP31A и позволяет крошечному Arduino управлять гораздо большим дверным замком на 12 В, 300 мА, не будучи поврежденным. Через 5 секунд дверной замок снова запирается, и светодиод снова становится синим, чтобы дождаться считывания другой карты. Если карта недействительна, светодиодный индикатор на несколько секунд изменится на КРАСНЫЙ, а затем снова на синий, чтобы дождаться другой карты.

Важно, чтобы дверной замок продолжал работать, даже если Arduino теряет питание в течение ночи или перезагружается. Поэтому все действующие идентификаторы карты хранятся в памяти EEPROM. ATMega168 имеет 512 байт памяти EEPROM. Каждая RFID-карта имеет 5-битный серийный номер и 1-битную контрольную сумму, которую мы можем использовать для проверки отсутствия ошибок при передаче между ID-20 и Arduino.

Действительные карты хранятся в EEPROM с использованием первого байта в качестве счетчика. Например, если есть 3 действительные карты, хранящиеся в EEPROM, первым байтом будет 3. EEPROM.read (0); = 3. Зная это и тот факт, что каждый идентификатор имеет длину 5 байтов, мы знаем, что 1-5 - это карта 1, 6-10 - карта 2, а 11-15 - карта 3. Мы можем создать цикл, который просматривает EEPROM. 5 байт за раз и пытается найти карту, которую считал считыватель.

Но как мы можем добавить новые карты в EEPROM после установки схемы ?? Я прочитал одну из имеющихся у меня RFID-карт и жестко запрограммировал ее как основную RFID-карту. Таким образом, даже если вся EEPROM будет стерта, мастер-карта все равно будет работать. Всякий раз, когда карта считывается, она сначала проверяет, является ли она Мастер-картой, если нет, то продолжает проверять, действительна это карта или нет. Если карта является мастер-картой, мы заставляем Arduino перейти в «режим программирования», где он мигает RGB и ждет, пока будет прочитан другой действительный тег. Следующий считываемый тег добавляется к следующему свободному месту в EEPROM, и счетчик увеличивается на 1, если карта еще не существует в памяти EEPROM. Затем считыватель возвращается в нормальный режим и ожидает чтения новой карты.

В настоящее время я не запрограммировал способ удаления карты, поскольку причиной удаления карты, скорее всего, будет ее потеря или кража. Поскольку это, скорее всего, будет использоваться с 1-10 людьми, проще всего было бы жестко запрограммировать карту Master Erase, которая стирает все карты из EEPROM, а затем повторно добавляет их все, что занимает всего несколько секунд. Я добавил код для очистки EEPROM, но еще не реализовал эту функцию..

Код прилагается в текстовом файле вместе с копией списка деталей.

Шаг 5: развернуть

Это лишь некоторые из интересных вещей, которые вы можете сделать с RFID. Вы можете значительно расширить это с помощью вывода на ЖК-дисплей, регистрации того, кто и когда входит, подключения к сети / твиттеру и т. Д. Я планирую сделать законченную версию этой схемы на печатной плате. Я никогда раньше не делал печатных плат, поэтому я все еще работаю над дизайном и компоновкой деталей. Как только я их завершу, я их тоже отправлю. Я призываю всех взять написанный мной код и изменить его, чтобы делать еще более крутые вещи!

Финалист конкурса Arduino

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