цифровая электроника
вычислительная техника
встраиваемые системы

 



Дверной замок на Arduino с доступом по RFID

Автор: Mike(admin) от 27-01-2020, 07:55

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


Дверной замок на Arduino с доступом по RFID

В этом проекте мы создадим настоящий соленоидный дверной замок и будем управлять им с помощью RFID и Arduino. Здесь датчик эффекта Холла и магнит используются для обнаружения движения двери. Датчик Холла будет размещен на дверной коробке, а магнит – на самой двери. Когда датчик Холла и магнит находятся близко друг к другу, датчик Холла будет в низком логическом состоянии, а дверь останется закрытой, а когда датчик и магнит не замкнуты, это означает, что дверь открыта, а датчик Холла находится в высоком логическом состоянии. Мы будем использовать этот механизм эффекта Холла для автоматической блокировки и разблокировки двери.


Соленоидный замок работает на основе электронно-механического запирающего механизма. У этого типа замка есть штырь со скошенным вырезом и хорошим монтажным кронштейном. При подаче питания постоянный ток создает магнитное поле, которое перемещает штырь внутрь и удерживает дверь в открытом положении. Штырь будет сохранять свое положение до тех пор, пока не будет отключено питание. Когда питание отключено, штырь выходит наружу и закроет дверь. Он не потребляет никакой энергии в заблокированном состоянии. Для привода электромагнитного замка вам понадобится источник питания, который может выдавать 12 В при 500 мА.


Дверной замок на Arduino с доступом по RFID

Принципиальная схема дверного замка с использованием Arduino приведена далее.


Дверной замок на Arduino с доступом по RFID

Положительный вывод зуммера подключен к цифровому выводу 4 Arduino, а вывод GND подключен к выводу заземления Arduino. Между выводами VCC и OUT датчика Холла используется резистор 10К. Замок соленоида подключен к Arduino через релейный модуль. Для RFID подключение следующее: SDA – вывод 10, SCK – вывод 13, MOSI – вывод 11, MISO – вывод 12, – вывод 9. После пайки всех компонентов на плате в соответствии с принципиальной схемой, это может выглядеть как на следующем изображении.


Дверной замок на Arduino с доступом по RFID

Полный код для этого соленоида Arduino приведен далее.



#include <SPI.h>
#include <MFRC522.h>
int hall_sensor = 3;
int state,lockread;
int Buzzer = 4;
const int LockPin = 2;
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() 
{
  Serial.begin(9600);
  pinMode(LockPin, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  pinMode(hall_sensor, INPUT);
  SPI.begin();
  mfrc522.PCD_Init();
  //Serial.println("Approximate your card to the reader...");
  // Serial.println();
  digitalWrite(LockPin, LOW);
}
void readsensor()
{
 lockread = digitalRead(LockPin);
 state = digitalRead(hall_sensor);
 //Serial.print(lockread);
 //Serial.print(state);
 // delay(2000); 
}
void loop() 
{
  readsensor();
  sensor(); 
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {    
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  //Serial.println();
  //Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "60 4E 07 1E" )
  {   
    digitalWrite(LockPin, HIGH);
    Serial.print("Door Unlocked");
    digitalWrite(Buzzer, HIGH);
    delay(2000);
    digitalWrite(Buzzer, LOW);
    sensor();
    }
  else
  {
   Serial.println("You are not Authorised"); 
   digitalWrite(Buzzer, HIGH);
   delay(2000);
   digitalWrite(Buzzer, LOW);
  } 
}
void sensor()
{
 readsensor();
 if (lockread == HIGH){  
      readsensor();
      if(state==LOW){
      digitalWrite(LockPin, LOW);
      Serial.print("Door Closed");
      digitalWrite(Buzzer, HIGH);
      delay(2000);
      digitalWrite(Buzzer, LOW);
    }
  } 
 }

Когда вы будете готовы с кодом и оборудованием, вы можете начать тестирование проекта. Здесь мы спаяли все компоненты на перфорированной плате, чтобы ее можно было легко установить на дверь. Чтобы проверить устройство, установите перфорированную плату на дверной коробке и магнит на двери, чтобы оно могло обнаружить движение двери. На следующем изображении показано, как магнит и датчики Холла крепятся к двери.


Дверной замок на Arduino с доступом по RFID

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




© digitrode.ru


Теги: Arduino, RFID, соленоид




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

Комментарии:

Оставить комментарий