Toon posts:

Arduino RFID module met LCD

Pagina: 1
Acties:
  • 326 views

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een project met een RFID module met een LCD. Ik vond een code op internet waarzo dit al redelijk gedaan is. Alles aangesloten volgens schema en het werkt.

Nu zou ik graag van jullie 2 dingen willen weten. Hoe voeg ik mijn pas toe?

De code van mijn kaart is:
code:
1
2
3
4
5
6
Card found
Cardnumber:
Dec: 62, 119, 71, 213, 219 
Hex: 3E, 77, 47, D5, DB 
Asernumber:
Dec: 0, 0, 0, 0, 0


en mijn script staat hier onder:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/**
 * Read a card using a mfrc522 reader on your SPI interface
 * Pin layout should be as follows (on Arduino Uno):
 * MOSI: Pin 11 / ICSP-4
 * MISO: Pin 12 / ICSP-1
 * SCK: Pin 13 / ISCP-3
 * SS: Pin 10
 * RST: Pin 9
 *
 * Script is based on the script of Miguel Balboa. 
 * Serial number is shown on a HD44780 compatible display
 *
 * The circuit:
 * LCD RS pin to digital pin (7)
 * LCD Enable pin to digital pin (6)
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 *
 * @version 0.1
 * @author Henri de Jong
 * @since 27-01-2013
 * @version 0.2
 * @author Oscar Andersson
 */

#include <SPI.h>
#include <RFID.h>
#include <LiquidCrystal.h>

#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN); 

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

// Setup variables:
int serNum0 = (62, 119, 71, 213, 219);
int serNum1;
int serNum2;
int serNum3;
int serNum4;
int AserNum0 = (0, 0, 0, 0, 0) ;
int AserNum1;
int AserNum2;
int AserNum3;
int AserNum4;

void setup()
{ 
  Serial.begin(9600);
  lcd.begin(16, 2);
  SPI.begin(); 
  rfid.init();
  //Message on boot
  lcd.setCursor(0, 0);
  lcd.print("    WELKOM!");
  lcd.setCursor(0, 1);
  lcd.print("RFID KAARTLEZER");

  delay(3000);
  // write "Scan your tags"
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Scan je kaart!");
}

void loop()
{
  if (rfid.isCard()) {
    if (rfid.readCardSerial()) {
      if (rfid.serNum[0] != serNum0
        && rfid.serNum[1] != serNum1
        && rfid.serNum[2] != serNum2
        && rfid.serNum[3] != serNum3
        && rfid.serNum[4] != serNum4
        ) {
        /* With a new cardnumber, show it in Serial Monitor. */

        Serial.println(" ");
        Serial.println("Card found");
        serNum0 = rfid.serNum[0];
        serNum1 = rfid.serNum[1];
        serNum2 = rfid.serNum[2];
        serNum3 = rfid.serNum[3];
        serNum4 = rfid.serNum[4];

        AserNum0 = rfid.AserNum[0];
        AserNum1 = rfid.AserNum[1];
        AserNum2 = rfid.AserNum[2];
        AserNum3 = rfid.AserNum[3];
        AserNum4 = rfid.AserNum[4];

        //Serial.println(" ");
        Serial.println("Cardnumber:");
        Serial.print("Dec: ");
        Serial.print(rfid.serNum[0],DEC);
        Serial.print(", ");
        Serial.print(rfid.serNum[1],DEC);
        Serial.print(", ");
        Serial.print(rfid.serNum[2],DEC);
        Serial.print(", ");
        Serial.print(rfid.serNum[3],DEC);
        Serial.print(", ");
        Serial.print(rfid.serNum[4],DEC);
        Serial.println(" ");

        Serial.print("Hex: ");
        Serial.print(rfid.serNum[0],HEX);
        Serial.print(", ");
        Serial.print(rfid.serNum[1],HEX);
        Serial.print(", ");
        Serial.print(rfid.serNum[2],HEX);
        Serial.print(", ");
        Serial.print(rfid.serNum[3],HEX);
        Serial.print(", ");
        Serial.print(rfid.serNum[4],HEX);
        Serial.println(" ");

        Serial.println("Asernumber:");
        Serial.print("Dec: ");
        Serial.print(rfid.AserNum[0],DEC);
        Serial.print(", ");
        Serial.print(rfid.AserNum[1],DEC);
        Serial.print(", ");
        Serial.print(rfid.AserNum[2],DEC);
        Serial.print(", ");
        Serial.print(rfid.AserNum[3],DEC);
        Serial.print(", ");
        Serial.print(rfid.AserNum[4],DEC);
        Serial.println(" ");
        //Print specific RFID-cards too LCD
        if (rfid.serNum[0] == 182
          && rfid.serNum[1] == 158
          && rfid.serNum[2] == 174
          && rfid.serNum[3] == 128
          && rfid.serNum[4] == 6)
        {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("SL Access card");
          lcd.setCursor(0, 1);
          lcd.print("SN: 21589 27542");
        }
        else if (rfid.serNum[0] == 136
          && rfid.serNum[1] == 4
          && rfid.serNum[2] == 229
          && rfid.serNum[3] == 39
          && rfid.serNum[4] == 78)
        {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("NBN Jeans SN:000");
          lcd.setCursor(0, 1);
          lcd.print("Size 29/32");
        }
        else if (rfid.serNum[0] == 77
          && rfid.serNum[1] == 139
          && rfid.serNum[2] == 94
          && rfid.serNum[3] == 124
          && rfid.serNum[4] == 228)
        {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("RFID Keycard");
          lcd.setCursor(0, 1);
          lcd.print(" ");
        }

        else if (rfid.serNum[0] == 136
          && rfid.serNum[1] == 4
          && rfid.serNum[2] == 60
          && rfid.serNum[3] == 66
          && rfid.serNum[4] == 242)
        {
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("NBN Jeans SN:000");
          lcd.setCursor(0, 1);
          lcd.print("Size 29/32");
        }
        else
        {
          //Write unidentified tag and HEX serialnumber for the unidentified tags.
          lcd.clear();                
          lcd.setCursor(0, 0);
          lcd.print("Onbekende kaart!");
          lcd.setCursor(0,1);
          lcd.print("H:");
          lcd.print(rfid.serNum[0], HEX);
          lcd.print(',');
          lcd.print(rfid.serNum[1], HEX);
          lcd.print(',');
          lcd.print(rfid.serNum[2], HEX);
          lcd.print(',');
          lcd.print(rfid.serNum[3], HEX);
          lcd.print(',');
          lcd.print(rfid.serNum[4], HEX); 
        }

      } 
      else {

      }
    }
  }

  rfid.halt();
}


Ik heb bijna alles al geprobeert maar ik krijg mijn pas er niet in..

Tevens heb ik nog een vraag.. Ik zou graag willen dat wanneer de pas gescant word en hij is goed dat er dan een groene LED gaat branden, is het een foute pas dat er dan een rode LED gaat branden.

Ik hoop dat jullie mij hiermee kunnen helpen!

Groet Jeffrey.

(ps als dit verkeerd staat mijn excuses dit is mijn 1e bericht)

Alle reacties


Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 16:49
Wat heb je zelf geprobeerd? Als je bijna alles al geprobeerd hebt dan zou je onze hulp niet nodig hebben (met andere woorden : kun je specifieker zijn met wat je zelf geprobeerd hebt?) Wat werkt er wel, wat werkt er niet? Wees eens specifiek.

Overigens werk je op een Arduino NIET met scripts maar met gecompileerde code, een enorm verschil.

[ Voor 9% gewijzigd door Killah_Priest op 31-08-2016 09:01 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je topic, in huidige vorm, is niet meer dan een Kan iemand even...?-topic en daar doen we hier dus niet aan, sorry ;)
Zoals Killah_Priest al aangeeft: wat heb je zélf al gezocht, gevonden, geprobeerd dan? Zoals je in onze Quickstart kunt lezen zien we dat graag terug in je topicstart. Zodoende hoeven wij onze tijd niet te verspillen aan 't aandragen van oplossingen die je zélf al lang geprobeerd hebt (zéker als je aangeeft "Ik heb bijna alles al geprobeert"). Ook biedt 't inzicht in wat er aan de hand is / kan zijn. Tot slot: als je code post, probeer 't dan een beetje binnen de perken te houden en je te beperken tot snippets van een hand vol, tot hooguit een paar tiental, regels relevante(!) code om je probleem te demonstreren. 215 regels code neerkwakken (die je notabene niet zélf hebt geschreven) en anderen 't voor je laten oplossen is dus niet de bedoeling; voor support op code van derden mag je je dan ook wenden tot die derden.

Open gerust een nieuw topic maar hou voorgaand dan allemaal even in je achterhoofd ;)

Inhoudelijk over je vraag "hoe voeg ik mijn pas toe": heb je al eens goed gekeken naar regel 138 en verder i.c.m. regel 3 van je output? Wat versta je onder "krijg mijn pas er niet in" en "hoe voeg ik mijn pas toe"? Wat gebeurt er? Wat gebeurt er niet? Heb je al eens gedebugged? (Debuggen: Hoe doe ik dat?)

[ Voor 42% gewijzigd door RobIII op 31-08-2016 10:45 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.