Sunday, July 5, 2020

Arduino: គន្លឹះប្រើប្រាស់ RFID


តើអ្វីជា RFID?
RFID ជាប្រព័ន្ធសម្រាប់កត់សម្គាល់អត្តសញ្ញាណ(ID system)ដែលមានន័យពេញថា radio frequency identification devices​​ ។ ប្រព័ន្ធនេះប្រើប្រាស់ដែនម៉ាញ៉េទិចទាក់ទងនូវទិន្ន័យដើម្បីដឹងថាអត្តសញ្ញាណមួយណា (ដូចរូបខាងក្រោម)។ ដោយនៅលើកាតមានរបុំសម្រាប់បញ្ចូនទិន្ន័យលេខសម្គាល់កាតតាមរយៈដែនម៉ាញេទិចដែលទាក់ទងទៅអត់តែនខ្លីនៃឧបករណ៍ស្កេន។

ដំណើរការរបស់ RFID
Image credit: howtomechatronics.com

យើងអាចជួបប្រព័ន្ធ RFID នៅលើជណ្តើរយន្តដែលប្រើប្រាស់ការដើម្បីអាចដំណើរការជណ្តើរយន្តបាន។ ហើយក៏មាននៅតាមទ្វាមួយចំនួនដែលអនុញ្ញាត្តឲ្យតែអ្នកដែលមានកាតទើបអាចបើកបានជាដើម ដែលប្រព័ន្ធទាំងអស់នេះប្រើប្រាស់ RFID ដើម្បីកំណត់អត្តសញ្ញាណអ្នកដែលចង់ដំណើរការជណ្តើរយន្ត ឫបើកទ្វានៅពេលដែលយើងដាក់កាត ឫបន្តោងសោរទៅជិតកន្លែងស្កេន។

ការប្រើប្រាស់ RFID ជាមួយ Arduino
យើងលើកយក RFID មួយក្នុងចំណោមប្រភេទជាច្រើនទៀតមានលក់នៅលើទីផ្សារ ហើយអាចប្រើប្រាស់បានជាមួយ Arduino។
MFRC522 RIFD transmitter-receiver
ប្រើប្រភព 3.3V

ដោយភ្ជាប់សៀគ្វីដូចខាងក្រោម ជាមួយ Arduino UNO៖
SDA------------------------Digital 10
SCK------------------------Digital 13
MOSI----------------------Digital 11
MISO----------------------Digital 12
IRQ------------------------unconnected
GND-----------------------GND
RST------------------------Digital 9
3.3V------------------------3.3V (DO NOT CONNECT TO 5V) 
សៀគ្វីគម្រូ

Upload កូដខាងក្រោមដើម្បីធ្វើការសាកល្បង៖

  1. /* 
  2.  *  
  3.  * All the resources for this project: https://www.hackster.io/Aritro 
  4.  * Modified by Aritro Mukherjee 
  5.  *  
  6.  *  
  7.  */  
  8.    
  9. #include <SPI.h>  
  10. #include <MFRC522.h>  
  11.    
  12. #define SS_PIN 10  
  13. #define RST_PIN 9  
  14. MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.  
  15.    
  16. void setup()   
  17. {  
  18.   Serial.begin(9600);   // Initiate a serial communication  
  19.   SPI.begin();      // Initiate  SPI bus  
  20.   mfrc522.PCD_Init();   // Initiate MFRC522  
  21.   Serial.println("Approximate your card to the reader...");  
  22.   Serial.println();  
  23.   
  24. }  
  25. void loop()   
  26. {  
  27.   // Look for new cards  
  28.   if ( ! mfrc522.PICC_IsNewCardPresent())   
  29.   {  
  30.     return;  
  31.   }  
  32.   // Select one of the cards  
  33.   if ( ! mfrc522.PICC_ReadCardSerial())   
  34.   {  
  35.     return;  
  36.   }  
  37.   //Show UID on serial monitor  
  38.   Serial.print("UID tag :");  
  39.   String content= "";  
  40.   byte letter;  
  41.   for (byte i = 0; i < mfrc522.uid.size; i++)   
  42.   {  
  43.      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");  
  44.      Serial.print(mfrc522.uid.uidByte[i], HEX);  
  45.      content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));  
  46.      content.concat(String(mfrc522.uid.uidByte[i], HEX));  
  47.   }  
  48.   Serial.println();  
  49.   Serial.print("Message : ");  
  50.   content.toUpperCase();  
  51.   if (content.substring(1) == "BD 31 15 2B"//change here the UID of the card/cards that you want to give access  
  52.   {  
  53.     Serial.println("Authorized access");  
  54.     Serial.println();  
  55.     delay(3000);  
  56.   }  
  57.    
  58.  else   {  
  59.     Serial.println(" Access denied");  
  60.     delay(3000);  
  61.   }  
  62. }   

បើក Serial Monitor ហើយដាក់កាតជិត Scanner យើងនឹងឃើញទិន្ន័យរបស់កាត ដែលកាតមានទិន្ន័យផ្សេងៗគ្នា៖
UID: BD 31 15 2B

រួចកត់ចំណាំ ID របស់កាតដើម្បីធ្វើការកំណត់ចំណាំឲ្យចូលបាន ឫអត់?

យើងឲ្យកាតដែលមាន ID: BD 31 15 2B ចូលបាន

កាតដែលមាន ID ខុស មិនអនុញ្ញាត្ត

អត្ថបទដើម៖ create.arduino.cc