Stap 4: Lezen en erkenning van RFID kaarten
Als u wilt iets doen met de kaartgegevens, moeten we enkele functies om op te halen van het kaartnummer maken wanneer is het lezen en plaatsen in een array voor vergelijking tegen bestaande kaartgegevens (bijvoorbeeld een lijst met geaccepteerde kaarten) dus uw systemen zullen weten wie te aanvaarden en wie te ontkennen. Met behulp van deze functies, dan kun je je eigen toegangssysteem, tijd-logging apparaat, enzovoort.Laten we tonen een voorbeeld van dit. Het zal controleren als een kaart aan de lezer gepresenteerd op een "aanvaarde" lijst, en als zo licht een groene LED, anders een rode LED licht. De hardware van de vorige sketche gebruiken, maar een typisch groene en rode LED met 560 ohm weerstand aan digitale pinnen 13 en 12 respectievelijk toevoegen. Vervolgens uploaden het volgende schema:
//-------------------------------------------------------------------------------------------------------------
#include < SoftwareSerial.h >
SoftwareSerial RFID(2, 3); RX en TX
int data1 = 0;
int ok = -1;
int ja = 13;
int geen = 12;
eerste schets in http://wp.me/p3LK05-3Gk gebruiken om uw code nummers
int Label1 [14] = {2,52,48,48,48,56,54,66,49,52,70,51,56,3};
int tag2 [14] = {2,52,48,48,48,56,54,67,54,54,66,54,66,3};
int newtag [14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; gebruikt voor lees vergelijkingen
VOID Setup
{
RFID.begin(9600); seriële aan RFID reader starten
Serial.begin(9600); Start seriële naar PC
pinMode (Ja, OUTPUT); voor status-LED 's
pinMode (Nee, OUTPUT);
}
Booleaanse comparetag (int aa [14], int bb[14])
{
Booleaanse ff = false;
int fg = 0;
voor (int cc = 0; cc < 14; cc ++)
{
Als (aa [cc] == bb[cc])
{
FG ++;
}
}
Als (fg == 14)
{
FF = true;
}
terug van ff;
}
VOID checkmytags() / / vergelijkt elke tag tegen de tag alleen lezen
{
OK = 0; Deze variabele helpt besluitvorming,
Als er 1 hebben we een match, is nul een lezen maar geen match,
-1 wordt geen lees poging gedaan gemaakt
Als (comparetag (newtag, Label1) == true)
{
OK ++;
}
Als (comparetag (newtag, tag2) == true)
{
OK ++;
}
}
VOID readTags()
{
OK = -1;
Als (RFID.available() > 0)
{
lezen van tag nummers
delay(100); nodig om de tijd gunnen om de gegevens te komen uit de seriële buffer.
voor (int z = 0; z < 14; z ++) / / Lees de rest van de tag
{
Data1 = RFID.read();
newtag [z] = data1;
}
RFID.flush(); meerdere leest stopt
de afsluitcodes opgewassen zijn?
checkmytags();
}
nu doen iets gebaseerd op label type
Als (ok > 0) / / als we een wedstrijd hadden
{
Serial.println("accepted");
digitalWrite(yes, HIGH);
delay(1000);
digitalWrite (Ja, laag);
OK = -1;
}
anders als (ok == 0) / / als we niet een match hadden
{
Serial.println("rejected");
digitalWrite(no, HIGH);
delay(1000);
digitalWrite (Nee, laag);
OK = -1;
}
}
void loop
{
readTags();
}
// ------------------------------------------------------------------------------------
In de schets hebben we een aantal functies die zorg voor lezen en vergelijken van RFID-tags. Merk op dat de toegestane tag nummers staan boven aan de schets, u kunt altijd toevoegen uw eigen en meer – zolang je ze toevoegen aan de lijst in de functie checkmytags() die bepaalt als de kaart wordt gelezen is toegestaan of worden geweigerd.
De functie readTags() zorgt voor de werkelijke lezing van de tags/kaarten, door het plaatsen van de op dit moment lezen tag-nummer in een matrix die gebruikt in de vergelijking functie checkmytags() is. Dan zijn de LEDs verlicht afhankelijk van de status van de tag op de lezer. U kunt een snelle demonstratie van dit voorbeeld in deze korte videobekijken.
Conclusie
Na het werken door dit hoofdstuk moet je nu een goede basis van kennis over het gebruik van de goedkoop RFID-lezers en hoe u functies aanroepen wanneer een kaart met succes wordt gelezen. Bijvoorbeeld, gebruiken sommige extra hardware (zoals een N-MOSFET) om te controleren van een deur staking, zoemer, enz. Nu is het aan jou om ze te gebruiken als een vorm van ingang met de verschillende toegangssystemen, het bijhouden van het verkeer van mensen of dingen en nog veel meer.
En als je genoten hebt van de tutorial, of wil iemand anders voorstellen aan de interessante wereld van Arduino – check out mijn boek (nu in een derde afdrukken!) "Arduino Workshop" van neen Starch Press.