Замок с электромагнитным управлением на основе Arduino и радиочастотной идентификации (RFID)


Радиочастотная идентификация (RFID - Radio Frequency Identification) в настоящее время является недорогой технологией, удобной для применения во многих приложениях: контроля доступа, безопасности, определения местоположения людей и транспортных средств и т.д. Вы могли видеть дверные замки с системой радиочастотной идентификации (RFID) во многих отелях, офисах и других учреждениях. Для того чтобы открыть дверь, оборудованную подобной системой, достаточно прислонить карту с RFID меткой к считывателю подобных карт, и после этого дверь откроется. На нашем сайте вы также можете посмотреть и другие проекты, в которых была использована радиочастотная идентификация.

Внешний вид замка с электромагнитным управлением на основе Arduino и RFID

В этой статье мы рассмотрим дверной замок (Solenoid Door Lock), который будет открываться с помощью соленоида (электромагнитной катушки), а управляться с помощью платы Arduino и радиочастотной идентификации (RFID). Для обнаружения движений двери в нашем проекте будет использоваться датчик Холла и магнит. Датчик Холла будет размещен на раме двери, а магнит будет размещен на самой двери. Когда магнит и датчик Холла будут близко друг к другу, на выходе датчика Холла будет напряжение низкого уровня (low state) и дверь будет оставаться закрытой, а когда дверь будет открытой, то датчик Холла и магнит будут далеко друг от друга, и на выходе датчика Холла будет напряжение высокого уровня (high state). Мы будем использовать эффект Холла для открытия и закрытия двери автоматически. Более подробно о подключении датчика Холла к плате Arduino можно прочитать в этой статье.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. RFID-RC522 Module (модуль радиочастотной идентификации) (купить на AliExpress).
  3. Замок с электромагнитным управлением, работающий от 12 В (12v Solenoid Lock).
  4. Модуль реле (купить на AliExpress).
  5. Датчик Холла (Hall Effect Sensor) (купить на AliExpress).
  6. Резистор 10 кОм (купить на AliExpress).
  7. Зуммер (Buzzer) (купить на AliExpress).

Замок с электромагнитным управлением

Замок с электромагнитным управлением (solenoid lock) использует электромеханический блокирующий механизм. Он содержит в своем составе личинку со скошенным концом и монтажный кронштейн. Когда на данный замок подается питание, электрический ток создает магнитное поле, под действием которого личинка втягивается внутрь замка и, таким образом, дверь открывается. Личинка будет оставаться внутри замка до тех пор, пока на замок будет подаваться питание. Когда питание на замок перестает подаваться, личинка выдвигается наружу замка и закрывает дверь. В закрытом состоянии замок не потребляет питания. Внешний вид замка с электромагнитным управлением показан на рисунке ниже. Для управления подобным замком необходим источник питания, который будет выдавать 12V @ 500mA.

Внешний вид замка с электромагнитным управлением (solenoid lock)

Схема проекта

Схема замка с электромагнитным управлением на основе Arduino и радиочастотной идентификации представлена на следующем рисунке.

Схема замка с электромагнитным управлением на основе Arduino и радиочастотной идентификации

Соединения между платой Arduino и модулем RFID приведены в таблице ниже. Положительный контакт зуммера подключен к цифровому контакту 4 платы Arduino, а его контакт GND подключен к контакту земли (ground pin) платы Arduino. Резистор 10 кОм подключен между контактами VCC и OUT датчика Холла. Замок с электромагнитным управлением подключен к плате Arduino с помощью модуля реле.

Модуль RFID Плата Arduino
SDA Digital 10
SCK Digital 13
MOSI Digital 11
MISO Digital 12
IRQ не соединен
GND GND
RST Digital 9
3.3V 3.3V
Датчик Холла Плата Arduino
5V 5V
GND GND
OUT 3

После пайки компонентов проекта на перфорированной плате у нас получилась конструкция следующего вида:

Внешний вид конструкции нашего проекта

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В начале программы нам будет необходимо подключить все используемые библиотеки, в нашем случае их всего две – одна для связи по интерфейсу SPI между платой Arduino и модулем RFID, и вторая – непосредственно для работы с модулем RFID. Обе эти библиотеки можно скачать по следующим ссылкам:

  1. SPI.h.
  2. MFRC522.h.

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

Затем необходимо задать режимы работы для используемых контактов (на ввод или вывод данных), инициализировать связь по протоколу SPI и модуль RFID.

Внутри цикла void loop мы будем считывать значения с датчика Холла и когда у него на выходе будет напряжение низкого уровня (low), мы будем закрывать дверь.

Также внутри цикла void loop мы будем проверять присутствует ли рядом с модулем RFID новая RFID карта. И если такая карта присутствует рядом с модулем, мы будем проверять ее UID (уникальный идентификатор). Если карта действующая, то мы будем открывать замок, в противном случае мы будем выдавать в окно монитора последовательной связи сообщение ‘You are not authorized’.

Тестирование работы замка с электромагнитным управлением и RFID

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

Также закрепите конструкцию нашего проекта (мы ее выполнили на перфорированной плате) и датчик Холла на раме двери, а магнит – на самой двери как показано на рисунке ниже. При таком расположении датчика Холла и магнита мы сможем обнаруживать движения двери.

Схема расположения элементов нашего замка на двери

Теперь прислоните к считывателю RFID авторизованную карту чтобы открыть замок. Замок будет оставаться в открытом состоянии до тех пор, пока на выходе датчика Холла будет напряжение высокого уровня. После этого, когда мы снова будем закрывать дверь (то есть мы вошли в комнату и закрываем дверь за собой) и магнит окажется рядом с датчиком Холла, то на выходе датчика Холла будет напряжение низкого уровня (Low) вследствие магнитного поля, созданного магнитом, и произойдет закрытие замка.

Вместо датчика Холла можно использовать задержку, по истечении которой производить автоматическое запирание двери (но если человек открыл и потом держал дверь некоторое время чтобы она не закрывалась, то можно поломать механизм замка при закрытии замка если он неудачно спроектирован).

Более подробно работу рассмотренного нами замка с электромагнитным управлением можно посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
5 858 просмотров

Комментарии

Замок с электромагнитным управлением на основе Arduino и радиочастотной идентификации (RFID) — 15 комментариев

  1. Есть люди которые смогут помочь с некоторыми дополнениями в коде например с базой данных ключей с последующей отдачей на сервер кто и во сколько вошёл?

    • Если на сервер данные нужно передавать, то тогда плату Ардуино нужно подключать к интернету, а это усложнение и схемы, и программы. В этом случае я рекомендовал бы делать такой проект на основе модулей ESP8266 или ESP32 - программируются так же как и Ардуино (даже команды те же самые), и к тому же сами через WiFi могут в интернет выходить. Вот похожий пример на нашем сайте - система учета посетителей на NodeMCU ESP8266 и RFID метках, в ней только модуль чтения RFID меток использован другой, но эту часть програмы переделать то несложно.

    • Согласен, можно поставить и mosfet, только зачем - здесь же нам какие то высокие частоты не нужны. Ну вы саму модель замка на алиэкспрессе подороже и помассивнее купите, тогда будет не хлипковат ))

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

  3. Здравствуйте, собрала по вашей схеме, проблема в том, что он одноразовый, чтобы замок работал заново, нужно либо перепрошивать ардуино, либо отключать и заново подключать питание. Как решить эту проблему?

    • Добрый вечер, Мария. А почему он одноразовый? Разве у вас замок не сбрасывается в исходное состояние после того как вы закроете дверь и на выходе датчика Холла появится напряжение низкого уровня (Low)?

      • возможна ли проблема в низкоуровневом реле, я перебросила провода с NO на NC?

        • Проблемы возможны с любым радиоэлектронным элементом, ничего абсолютно совершенного в этом мире нет. Да, реле может быть причиной того, что у вас замок не сбрасывается в исходное состояние. А переброска проводов с NO на NC в реле решила вашу проблему?

            • Мария, вы же в первом своем комментарии (то есть до переброски проводов) писали о том, что у вас замок одноразовый. Так что изменилось то после переброски проводов?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *