Diy

Умный замок DIY с Arduino и RFID

Умный замок DIY с Arduino и RFID

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

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

Мы создадим тестовую схему для контроля доступа с использованием модуля считывателя Mifare MFRC522, чтобы открывать и закрывать замок. Мы будем использовать основную карточку-ключ для добавления или удаления доступа к различным тегам, а также создадим простое светодиодное отображение, чтобы сообщить нам, что происходит в системе.

Наконец, мы добавим соленоид, который будет действовать как замок, и полевой МОП-транзистор, чтобы безопасно включать и выключать его с помощью нашего Arduino.

Считыватель MFRC522 может считывать и записывать данные в микросхемы RC522 и сохранять эти данные в EEPROM Arduino. Это было бы отличным дополнением к любой домашней установке и особенно актуально для любой базовой домашней системы безопасности. Его можно использовать вместе с системами сигнализации «Сделай сам». или Сделай сам Камера видеонаблюдения сам Камера видеонаблюдения сам Камера видеонаблюдения системы.

Тебе понадобится

  • Arduino. Мы использовали Uno, хотя любая плата или клона хватит.
  • 3 х 220 Ом резисторы
  • 1 х 10 кОм резистор
  • Логика уровня N канала Мосфет
  • Модуль MFRC522 как минимум с двумя картами / фобами для чтения. Большинство из них поставляются с одним из них и могут быть куплены менее чем за 2 доллара , но, вероятно, у вас уже есть один в вашем кошельке в виде общественной проездной.
  • Красный, синий и зеленый светодиоды
  • 12v соленоид ( $ 2 )
  • 12 В блок питания
  • Макет и подключение проводов

Модуль MFRC522

Звездой этой установки является дешевый модуль MFRC522, который поставляется с картой и брелком, содержащим чип s50 , каждый из которых хранит свой уникальный постоянный идентификационный номер (UID). Они оба функционально идентичны, просто в разной форме.

модуль и карта

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

Библиотека также содержит диаграмму Fritzing, которую я аннотировал, показывая, как прикрепить модуль к вашему Arduino.

Arduino RFID Распиновка проводки
Изображение предоставлено: Мигель Бальбоа через Github

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

Чтобы проверить настройку, откройте эскиз DumpInfo в меню « Файл»> «Примеры»> MFRC522> «DumpInfo» и загрузите его на свою плату Arduino. Откройте последовательный монитор и поднесите один из ваших объектов RFID к считывателю. Вы должны увидеть что-то вроде этого:

серийный вывод информации о дампе

Если при считывании MIFARE_Read() failed: Timeout in communication ошибки, говорящие о MIFARE_Read() failed: Timeout in communication или PCD_Authenticate() failed: Timeout in communication , не беспокойтесь. Скорее всего, это означает, что вы не держали метку в считывателе достаточно долго, чтобы прочитать все данные. Пока вы получаете UID карты (который читается, как только тег находится в пределах досягаемости считывателя), он будет работать с этим проектом. Если вы вообще не читаете, проверьте проводку и попробуйте снова.

Остальная часть трассы

Теперь, когда мы убедились, что наш модуль работает, давайте добавим остальные компоненты. Подключите ваши компоненты так:

фризирование схемы полной настройки

  • Наш источник питания 12 В (пока что не подключен) подключается к направляющим нашего макета. Подсоедините вывод Arduino GND и вывод MFRC522 GND к шине заземления.
  • Светодиоды подключены к контактам 2, 3 и 4 и к шине заземления через резисторы 220 Ом.
  • Стержень затвора нашего MOSFET (слева на изображении) подключается к контакту 5 и заземляется через резистор 10 кОм. Сливная ветвь (в середине) соединяется с отрицательной клеммой нашего 12-вольтового соленоида, а истоковая ветвь (справа) соединяется с шиной заземления.
  • Подсоедините положительный вывод соленоида 12 В и VIN Arduino к шине 12 В на макете.

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

После того, как все это собрано, оно должно выглядеть примерно так:

схема расположения

Хотя в этом нет необходимости, я создал небольшую оснастку для имитации дверного замка из древесного мусора.

Модификация эскиза

С созданной схемой, пришло время настроить наш Arduino Sketch. Удобно, что библиотека MFRC522 поставляется с примером эскиза под названием « Контроль доступа» , который почти точно выполняет то, что мы хотим. Подключите Arduino к вашему компьютеру и откройте Файл> Примеры> MFRC522> AccessControl в Arduino IDE.

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

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

 //#define COMMON_ANODE 

Теперь совместите наши светодиодные контакты с теми, которые указаны в эскизе.

 #define redLed 3 // Set Led Pins #define greenLed 4 #define blueLed 2 

Нам нужно изменить контакт реле (хотя мы используем MOSFET в этом случае), чтобы соответствовать нашей установке.

 #define relay 5 // Set MOSFET Pin 

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

 int lockDelay=10000; // lock stays open for 10 seconds. 

Нам нужно только сделать еще одно изменение. Прямо в нижней части метода цикла , в операторе if находится вызов метода (300) . Нам нужно изменить это так, чтобы он использовал нашу переменную lockDelay .

 granted(lockDelay); // Open the door lock for lockDelay duration 

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

Это оно! Ваш главный ключ все настроен. Отключите плату Arduino от компьютера. Детали вашего мастер-ключа будут сохранены в EEPROM Arduino даже после выключения питания.

Тестирование полной настройки

Еще раз быстро осмотрите проводку, чтобы убедиться, что все на месте, и подключите источник питания 12 В. На этом этапе стоит упомянуть, что вам следует остерегаться рабочего цикла вашего соленоида. Дешевый соленоид, который я использую для этого теста, не имеет 100-процентного рабочего цикла, поэтому его не следует оставлять в заблокированном положении в течение длительного времени. Чтобы сделать это в постоянной настройке, используйте соленоид 100-процентного рабочего цикла. Еще лучше было бы нормально закрытый (NC) соленоид, который остается заблокированным, когда он не запитан. Это также означает, что любой, кто хочет обойти систему, не может просто отключить ее!

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

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

RFID Arduino открытый замок

Все сделано!

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

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

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

Вы использовали RFID в домашних условиях? Дайте нам знать о ваших проектах в разделе комментариев ниже!

Изображение предоставлено: Annmarie Young через Shutterstock.com

Похожие посты
Diy

Вещи, которые вы должны иметь в виду, прежде чем брать ноутбук или смартфон в службу технической поддержки

Diy

Как использовать Arduino для съемки красивой скоростной фотографии

DiyLinux

Пять великолепных расширений Raspberry Pi, которые делают его еще более полезным

Diy

Первые шаги с Arduino: пристальный взгляд на печатную плату и структуру программы