На основе RFID-модуля RC522 можно сделать простой электронный замок который будет управлять работой модуля реле. Принцип работы электронного замка очень прост, RFID-модуль будет считывать серийный номер (UID) RFID-метки которые выполнены в виде карты и брелока. В скетч в виде массива заносятся серийные номера которым разрешен доступ, номера RFID-меток не внесенных в массив будут игнорироваться. Если номер метки имеется в массиве, то сработает реле, время работы реле 5 секунд, после чего электронный замок переходит в режим ожидания.
RFID-модуль 13.56 МГц с SPI-интерфейсом, основные характеристики:
- Основан на микросхеме MFRC522;
- Напряжение питания: 3.3V;
- Потребляемый ток :13-26mA
- Рабочая частота: 13.56MHz
- Дальность считывания: 0 ~ 60 мм
- Интерфейс: SPI, максимальная скорость передачи 10 МБит/с
- Размер: 40 мм х 60 мм
- Чтение и запись RFID-меток.
#include <SPI.h> #include <MFRC522.h> int x; int uid[4]; int kart[3][4]{ // массив для трех меток { 129, 71, 80,131 } , { 16,180,178,181 } , { 162, 91,142, 96 } }; MFRC522 mfrc522(10,9); //(SS_PIN, RST_PIN) void setup() { Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); pinMode(3,OUTPUT); } void loop() { if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return; } Serial.print("UID: "); for (byte y = 0; y < (sizeof(kart)/sizeof(int)/4); y++) { for (byte i = 0; i < 4; i++) { uid[i] = mfrc522.uid.uidByte[i]; if(uid[i]==kart[y][i]){ x++; } } if(x<4){ x=0; } } for (byte i = 0; i < 4; i++) { Serial.print(uid[i]); Serial.print(" "); } Serial.println(x); Serial.println(); if(x>=4){ digitalWrite(3,HIGH); tone(4,700,500); Serial.println(" ON "); Serial.println(" pause 5 sek "); delay(5000); tone(4,300,100); digitalWrite(3,LOW); Serial.println(" OFF "); } else{ tone(4,300,300); Serial.println(" OFF "); delay(1000); } x=0; }
int kart[3][4]{ { 129, 71, 80,131 } , { 16,180,178,181 } , { 162, 91,142, 96 } }; — для добавления новых серийных номеров RFID меток используйте массив.