RFID Security Lock Circuit - Buong Program Code at Mga Detalye ng Pagsubok

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa artikulong ito makikita natin kung paano maaaring magamit ang isang batay sa Arduino na RFID reader circuit para sa pagkontrol ng isang relay, na kung saan ay maaaring magamit sa mga aplikasyon ng lock ng pinto ng seguridad.

Pangkalahatang-ideya

Kung hindi mo pa nasuri ang nakaraang artikulo sa RFID, mangyaring tingnan ito, natakpan nito ang mga pangunahing kaalaman sa teknolohiya ng RFID .



Kilalanin namin ang mga pinahintulutang tag gamit ang UID. Sa madaling sabi UID ay ang natatanging numero ng pagkakakilanlan ng tag, kapag na-scan mo ang iyong card sa iyong opisina o saanman, kinukuha nito ang UID mula sa card.

Ang UID ng card ay nai-save sa database ng iyong tanggapan at makikilala nito ang may hawak ng card at iparehistro ang iyong pagdalo.



Ang tag ay hindi lamang naglilipat ng UID, ngunit naglilipat din ng ilang iba pang impormasyon na nakaimbak sa tag, sa pangkalahatan ang mga tag ay maaaring maiimbak mula sa 1KB hanggang sa 4KB kung minsan ay higit pa.

Hindi namin tatalakayin kung paano mag-iimbak ng impormasyon sa tag ngunit, tatalakayin ito sa isang darating na artikulo. Sa post na ito ay gagamitin namin ang numero ng UID upang makontrol ang relay ON / OFF .

Ang motto ng proyektong ito ay upang buksan / I-OFF ang aparato, na kung saan ay konektado sa ibinigay na pag-setup sa pag-scan sa may pahintulot na RFID tag.

Ang UID ng card ay tinukoy sa programa at kapag nakita ang may pahintulot na card, bubuksan nito ang relay sa unang pag-scan at muling i-scan ito ay magpapaliban sa relay.

Kung may napansin na hindi pinahihintulutang card, magbibigay ito ng mensahe ng error sa serial monitor at ipagpatuloy ang kasalukuyang gawain nito nang walang anumang pagkakagambala.

Dito kapag na-scan ang pinahintulutang kard, ang relay ay nagpapagana / nag-deactivate, ang mekanismong ito ay maaaring gamitin kahit saan, halimbawa sa: system ng pag-lock ng pinto, kung saan kailangang i-scan ang awtorisadong card upang mabuksan ang pinto.

Paano ito gumagana:

RFID Security Lock Circuit gamit ang Arduino

Ang RFID circuit ay binubuo ng LED na nagpapahiwatig ng katayuan ng relay, ang BC 548 transistor ay nagdadala ng relay at ang 1N4007 diode ay konektado sa buong relay upang arestuhin ang mataas na boltahe na spike sa instant ng paglipat.

Kung nais mong ikonekta ang mas mataas na boltahe na na-rate na relay (9V o 12V), maaari mong ikonekta ang panloob na supply ng Ve sa relay at –Ve supply sa lupa ng GND pin ng arduino. Mangyaring mag-ingat nang mabuti habang nagpapatuloy sa hakbang na ito, dahil maaari mong mapinsala ang board kung ang mga koneksyon ay hindi tama.

Ang susunod na hakbang pagkatapos makumpleto ang pag-setup ng hardware ay upang i-upload ang code upang mahanap ang UID ng iyong tag.
Ngayon i-upload ang naibigay na programa sa ibaba upang arduino, buksan ang serial monitor at i-scan ang tag.

Programa upang makahanap ng UID:

#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++) {
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID: ')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}

Ang output sa serial monitor (halimbawa):

Ang UID ng iyong card ay: AA: BB: CC: DD

Sa serial monitor, makikita mo ang ilang hexadecimal code, na kung saan ay ang UID ng tag. Tandaan ito, na gagamitin sa susunod na programa upang makilala ang tag.
Matapos makumpleto ang hakbang na ito, i-upload ang code sa ibaba sa parehong pag-set up.

Programa upang makilala ang card at kontrolin ang relay:

//---------------Program developed by R.Girish------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
int flag=0
int op=8
char UID[] = 'XX:XX:XX:XX' //Place your UID of your tag here.
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
pinMode(op,OUTPUT)
}
void loop()
{
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F('Your tag is not of type MIFARE Classic, your tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
if(StrID!=UID)
{
Serial.println('This is an invalid tag :(')
Serial.println('***************************************')
delay(2000)
}
if (StrID==UID && flag==0)
{
flag=1
digitalWrite(op,HIGH)
Serial.println('This is a vaild tag :)')
Serial.println('Status: ON')
Serial.println('***************************************')
delay(2000)
}
else if(StrID==UID && flag==1)
{
flag=0
digitalWrite(op,LOW)
Serial.println('This is a vaild tag :)')
Serial.println('Status: OFF')
Serial.println('***************************************')
delay(2000)
}
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//---------------Program developed by R.Girish------------//

char UID [] = 'XX: XX: XX: XX' // Ilagay ang iyong UID ng iyong tag dito.
Palitan ang XX: XX: XX: XX ng iyong UID.

Prototype ng may-akda na maaaring mabisang magamit bilang isang walang palya na RFID security lock para sa mga pinto at safe:

Kapag na-scan ang isang awtorisadong card:

Kapag na-scan ang isang hindi pinahintulutang tag:

Kung mayroon kang anumang mga katanungan tungkol sa Arduino RFID security lock circuit na ito, mangyaring huwag mag-atubiling magtanong sa ibaba sa seksyon ng komento.




Nakaraan: Kontrol ng Triac Phase gamit ang PWM Time Proportional Susunod: Iilaw na Crosswalk Safety Light Circuit