RE: Arduino Gleisbesetztmelder RFID

#1 von alter Raucher , 08.02.2019 22:33

Hallo zusammen,
ich brauche für meine H0e Bahn im Schattenbahnhof Gleisbesetztmelder.
Das ganze soll mit dem Arduino und RFID Scanner aufgebaut werden.

Ich habe auch schon einmal einen Sketch so verändert das ich mehrere Züge einscannen kann und die auch kurzzeitig auf einem LCD Display anzeigen kann. Bleibt der Zug genau auf dem Scanner stehen habe ich eine Gleisbesetztanzeige mit Zugerkennung.

Leider habe ich noch nichts brauchbares gefunden um einen Zug in das Abstellgleis einfahrend ein zu scannen und dann beim verlassen die Anzeige von Gleis Besetzt auf Gleis frei zu schalten.
Hat einer von Euch da etwas mehr Erfahrung?

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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
 
// Include required libraries
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>

// Create instances
LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 mfrc522(10, 9); // MFRC522 mfrc522(SS_PIN, RST_PIN)


String tagUID = "49 5E 24 A3"; // String to store UID of tag. Change it with your tag's UID
String tagUID1 = "1C 65 24 A3"; // String to store UID of tag. Change it with your tag's UID
String tagUID2 = "04 BD EA 0A 37 60 80"; // Zug 1 Ruebenzug001
String tagUID3 = "04 FD EA 0A 37 60 80"; // Zug 2 China PZ001 kurz
String tagUID4 = "49 5E 24 AA"; // Zug3
String tagUID5 = "1C 65 24 AB"; // Zug4
String tagUID6 = "49 5E 24 AC"; // Zug5
String tagUID7 = "1C 65 24 AD"; // Zug6
String tagUID8 = "49 5E 24 AE"; // Zug7
String tagUID9 = "1C 65 24 AF"; // Zug8
String tagUID10 = "49 5E 24 AG"; // Zug9
String tagUID11 = "1C 65 24 AH"; // Zug10
String tagUID12 = "49 5E 24 AI"; // Zug11
String tagUID13 = "1C 65 24 AJ"; // Zug12
String tagUID14= "49 5E 24 AK"; // Zug 13
String tagUID15 = "1C 65 24 AL"; // Zug 14
String tagUID16 = "1C 65 24 AM"; // Zug 15


void setup() {
// Arduino Pin configuration
lcd.begin(); // LCD screen
lcd.backlight();
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print(" GLEIS 1 SBH001");// Freies GLEIS SCHATTENBAHNHOF001 SHB!!!
lcd.setCursor(0, 1);
lcd.print(" GLEIS 1 frei! ");
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
//Reading from the card
String tag = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
tag.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
tag.concat(String(mfrc522.uid.uidByte[i], HEX));
}
tag.toUpperCase();
//Checking the card
if (tag.substring(1) == tagUID) // ANFANG lesen SCHLÜSSELANHÄNGER1
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("SCHLUESSEL 001");
delay(10000); delay(3000);
lcd.clear();
}

tag.toUpperCase();
//Checking the card
if (tag.substring(1) == tagUID1) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 1
//Checking the card
if (tag.substring(1) == tagUID2) //Anfang lesen Rübenzug 001
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("GZ Ruebenzug 001");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 2
//Checking the card
if (tag.substring(1) == tagUID3) //Anfang lesen PZ Kurz CHINA
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("PZ kurz 001");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 3
//Checking the card
if (tag.substring(1) == tagUID4) //Anfang lesen WEM PZ 001
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("WEM PZ 001");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 4
//Checking the card
if (tag.substring(1) == tagUID5) //Anfang lesen WEM PZ 002
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("WEM PZ 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 5
//Checking the card
if (tag.substring(1) == tagUID6) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 6
//Checking the card
if (tag.substring(1) == tagUID7) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 7
//Checking the card
if (tag.substring(1) == tagUID8) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 8
//Checking the card
if (tag.substring(1) == tagUID9) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zu9
//Checking the card
if (tag.substring(1) == tagUID10) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 10
//Checking the card
if (tag.substring(1) == tagUID11) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 11
//Checking the card
if (tag.substring(1) == tagUID12) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 12
//Checking the card
if (tag.substring(1) == tagUID13) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase(); // Zug 13
//Checking the card
if (tag.substring(1) == tagUID14) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 14
//Checking the card
if (tag.substring(1) == tagUID15) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 15
//Checking the card
if (tag.substring(1) == tagUID16) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(10000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();

}
}
 



Einen Resetschalter noch in den Sketch einzubinden ist nicht das Problem.

Nun bin ich gespannt was Euch dazu einfällt.
Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#2 von AlexanderJesse , 08.02.2019 23:46

Bei der Ausfahrt aus dem Schattenbahnhof einen weiteren RFID Scanner einbauen. Sobald Zuganfang und -ende bei dem vorbeikommen den Zug aus dem Schattenbahnhof auschecken


Gruss
Alexander
===========================================
Eine richtige Lokomotive macht "Tschuff-Tschuff"


AlexanderJesse  
AlexanderJesse
InterCity (IC)
Beiträge: 841
Registriert am: 19.01.2017
Spurweite N
Stromart Analog


RE: Arduino Gleisbesetztmelder RFID

#3 von alter Raucher , 09.02.2019 07:26

Moin zusammen,
ich glaube das ich den FALSCHEN FEHLER gefunden habe.

@ Alexander, warum sollte ich den einen zweiten Scanner einbauen da reicht auch ein kleines Reflexmodul aus und dann geht das auch nicht so schnell ins Geld.
So bis auf den EEprombefehl funktioniert es erst einmal!

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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
 
    // Include required libraries
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>
#include <EEPROM.h> // das ist neu

// Create instances
LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 mfrc522(10, 9); // MFRC522 mfrc522(SS_PIN, RST_PIN)


String tagUID = "49 5E 24 A3"; // Schluesselanhaenger001
String tagUID1 = "1C 65 24 A3"; // Schluesselanhaenger002
String tagUID2 = "04 BD EA 0A 37 60 80"; // Zug 1 Ruebenzug001
String tagUID3 = "04 FD EA 0A 37 60 80"; // Zug 2 China PZ001 kurz
String tagUID4 = "49 5E 24 AA"; // Zug3
String tagUID5 = "1C 65 24 AB"; // Zug4
String tagUID6 = "49 5E 24 AC"; // Zug5
String tagUID7 = "1C 65 24 AD"; // Zug6
String tagUID8 = "49 5E 24 AE"; // Zug7
String tagUID9 = "1C 65 24 AF"; // Zug8
String tagUID10 = "49 5E 24 AG"; // Zug9
String tagUID11 = "1C 65 24 AH"; // Zug10
String tagUID12 = "49 5E 24 AI"; // Zug11
String tagUID13 = "1C 65 24 AJ"; // Zug12
String tagUID14= "49 5E 24 AK"; // Zug 13
String tagUID15 = "1C 65 24 AL"; // Zug 14
String tagUID16 = "1C 65 24 AM"; // Zug 15

void setup() {
// Arduino Pin configuration
lcd.begin(); // LCD screen
lcd.backlight();
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
lcd.clear();

}
void loop() {



lcd.setCursor(0, 0);
lcd.print(" GLEIS 1 SBH001");// Freies GLEIS SCHATTENBAHNHOF001 SHB!!!
lcd.setCursor(0, 1);
lcd.print(" GLEIS 1 frei! ");
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {

}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {

}
//Reading from the card
String tag = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
tag.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
tag.concat(String(mfrc522.uid.uidByte[i], HEX));
}
tag.toUpperCase();
//Checking the card
if (tag.substring(1) == tagUID) // ANFANG lesen SCHLÜSSELANHÄNGER1
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("SCHLUESSEL 001");
delay(5000); delay(3000);
lcd.clear();
}

tag.toUpperCase();
//Checking the card
if (tag.substring(1) == tagUID1) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 1
//Checking the card
if (tag.substring(1) == tagUID2) //Anfang lesen Rübenzug 001
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("GZ Ruebenzug 001");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 2
//Checking the card
if (tag.substring(1) == tagUID3) //Anfang lesen PZ Kurz CHINA
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("PZ kurz 001");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 3
//Checking the card
if (tag.substring(1) == tagUID4) //Anfang lesen WEM PZ 001
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("WEM PZ 001");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 4
//Checking the card
if (tag.substring(1) == tagUID5) //Anfang lesen WEM PZ 002
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("WEM PZ 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 5
//Checking the card
if (tag.substring(1) == tagUID6) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 6
//Checking the card
if (tag.substring(1) == tagUID7) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 7
//Checking the card
if (tag.substring(1) == tagUID8) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 8
//Checking the card
if (tag.substring(1) == tagUID9) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zu9
//Checking the card
if (tag.substring(1) == tagUID10) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 10
//Checking the card
if (tag.substring(1) == tagUID11) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 11
//Checking the card
if (tag.substring(1) == tagUID12) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 12
//Checking the card
if (tag.substring(1) == tagUID13) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase(); // Zug 13
//Checking the card
if (tag.substring(1) == tagUID14) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 14
//Checking the card
if (tag.substring(1) == tagUID15) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();
}
tag.toUpperCase();// Zug 15
//Checking the card
if (tag.substring(1) == tagUID16) //Anfang lesen SCHLÜSSELANHÄNGER2
{
// If UID of tag is matched.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("GLEIS 1 besetzt");
lcd.setCursor(0, 1);
lcd.print("Schluessel 002");
delay(5000);// der Zug muss auf dem Scanner stehen bleiben!
lcd.clear();

}
}
 



Jetzt funktioniert es erstmal so wie ich es haben wollte, auch wenn das mit dem Speichen bei Stromausfall noch nicht funktioniert.
Die EEpromfunktion habe ich dann erst später mit einbinden wollen, das muss ich auch noch einmal testen.
( eine Lichtschranke die den Reset ausführt habe ich hier noch nicht erwähnt!)
bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#4 von MicroBahner , 09.02.2019 11:18

Hallo Karsten,
[quote="alter Raucher" post_id=1938063 time=1549661589 user_id=31423]
Nun bin ich gespannt was Euch dazu einfällt.
[/quote]Vielleicht solltest Du uns mal ein paar mehr Info's zu deinem Schattenbahnhof geben. Evtl. eine Skizze, und wo Du den oder die RFID-Leser geplant hast. Soll der Arduino nur eine Anzeige machen, oder auch die Einfahrt in den Sbf steuern?
Ich habe meinen Sbf auch mit RFID Lesern ausgestattet, allerdings nur jeweils einen an der Einfahrt. Am Ende der Sbf Gleise ist dann jeweils eine Lichtschranke.

P.S. was für einen Arduino verwendest Du denn? Ich habe gesehen, dass Du sehr intensiv mit der String Klasse arbeitest. Die ist extrem speicherhungrig , und bei intensiver Nutzung kann es im Dauerbetrieb leicht zu Problemen kommen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino Gleisbesetztmelder RFID

#5 von alter Raucher , 09.02.2019 15:47

Moin zusammen,

Das ist mein Schattenbahnhof 001

Die RFID Scanner liegen in Fahrtrichtung vor dem Haltepunkt.
Pro Gleis werde ich einen NANO einplanen.
In den nächsten paar Tagen werde ich noch weiter Bauschritte vorstellen.

Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#6 von MicroBahner , 09.02.2019 17:50

Hallo Karsten,
[quote="alter Raucher" post_id=1938306 time=1549723624 user_id=31423]
Pro Gleis werde ich einen NANO einplanen.
[/quote]Ist das nicht ein wenig übertrieben? Du musst dann ja auch alle RFID-Id's ein jedem Nano pflegen. Willst Du auch an jeden Nano ein eigenes LCD anschliessen?
Warum positionierst Du nicht einfach einen RFID Leser vor die 1. Einfahrtweiche des Sbf. Wenn Du ihm dann noch die Weichenstellungen per Digitaleingang mitteilst kann er erkennen, in welches Gleis der Zug fährt. Oder Du lässt ihn die Weichen gleich selbst stellen - er weis ja, welches Gleis frei ist.

Welche RFID-Tags verwendest Du eigentlich für deine Züge. Die müssen ja rel. klein sein.

P.S. Dass der Zug für die Besetztmeldung genau auf dem Leser stehenbleiben muss, halte ich für sehr unzuverlässig. Aber Du kannst Dir ja merken dass er drübergefahren ist. Und Am Ausgang eine Lichtschranke, mit der Du die Besetztmeldung wieder freischaltest.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino Gleisbesetztmelder RFID

#7 von alter Raucher , 09.02.2019 19:49

Moin zusammen,

Ich verwende pro Abstellgleis einen Nano und ein LCD Display.
Das ist nicht mehr Notwendig das der Zug genau auf dem RFID Scanner stehen bleiben muss, den Sketch habe ich so verändern können das erst nach Betätigung des Sensormoduls das Gleis freigegeben wird!

Somit ist das kein Problem mehr, am Anfang habe ich fast fünf Stunden immer und immerwieder Versuche gefahren.

Zu den Sticker RFID Folientags die sind ca. 12x19x0,2mm!

Unter meinem Rübenwagen hinter der Lok passt das gerade so drunter, meine anderen H0e Fahrzeuge sind schon etwas breiter da gibt es noch weniger Einbauprobelme.

Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#8 von alter Raucher , 10.02.2019 20:16

Moin zusammen,

heute konnte ich zwei Gleise vorbereiten für die RFID Zugerkennung.

Das sind die ersten zwei Nanos dür Gleis 1 und Gleis 2 meines Schattenbahnhofs.

Die ersten zwei Gleisbesetztmelder können ihren Dienst auch aufnehmen.

Die RFID Scanner sind in Fahrtrichtung ca. 150mm vor dem Haltegleisabschnitt verbaut.
Die Zügen rollen über den Scanner drüber, auf der LCD Anzeige bekommt man die Besetztmeldung
und den eingefahrenen Zug als Textfomr zu sehen.

So ganz langsam geht es weiter auf und uter meiner kleinen Anlage.

Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#9 von alter Raucher , 11.02.2019 18:19

Moin zusammen,
heute habe ich es geschafft die ersten zwei Arduino Gleisbesetztmelder funktionieren.

Das ist für mich schon ein großer Erfolg.

Jetzt kann ich auch die anderen zwei Steuerungen aufbauen.
Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#10 von B-B , 13.02.2019 14:15

Hallo Karsten,

kannst du die Reichweite des Kartenlesers mal ausprobieren.

Danke
Bernd


 
B-B
InterRegio (IR)
Beiträge: 172
Registriert am: 28.10.2009


RE: Arduino Gleisbesetztmelder RFID

#11 von alter Raucher , 13.02.2019 21:05

Moin Bernd,

Ich habe meine drei TAG Typen getestet.
Die Sticker 12x19x0.2mm funktionieren ab 12mm über dem Scanner.
Der Schlüsselanhänger fängt bei ca. 20mm über dem Scanner an zu senden.
Die Karte hat schon bei 30mm über dem Scanner angezeigt.
Nur bei zuviel Metall am oder um den TAG wird es schwehrer etwas zu scannen, meine Sticker haben ganz gestreikt.

Ich hoffe Dir reichen diese Ergebnisse.

Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#12 von Kriwatsch , 14.02.2019 12:58

Hallo
12mm drüber, müsste eigentlich funzen wenn ich so einen Sticker unter den Wagen bastle. Ich fahre ja N. Da tun sich ja Möglichkeiten auf
MfG
Micha


 
Kriwatsch
InterRegio (IR)
Beiträge: 230
Registriert am: 26.10.2015
Ort: Dresden
Spurweite N
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#13 von B-B , 15.02.2019 06:18

Hallo Karsten,

könnte knapp werden bei Spur G. Danke für deine mühen.

Gruß
Bernd


 
B-B
InterRegio (IR)
Beiträge: 172
Registriert am: 28.10.2009


RE: Arduino Gleisbesetztmelder RFID

#14 von AlexanderJesse , 15.02.2019 09:44

Zitat

Hallo Karsten,

könnte knapp werden bei Spur G. Danke für deine mühen.

Gruß
Bernd


Dafür hast Du unter den Spur G Fahrzeugen auch Platz für grössere TAG's


Gruss
Alexander
===========================================
Eine richtige Lokomotive macht "Tschuff-Tschuff"


AlexanderJesse  
AlexanderJesse
InterCity (IC)
Beiträge: 841
Registriert am: 19.01.2017
Spurweite N
Stromart Analog


RE: Arduino Gleisbesetztmelder RFID

#15 von B-B , 17.02.2019 11:44

Hallo Karsten,

auch wenn es zu spät ist, ein evtl. anderer Weg zum Ziel.



Grüße
Bernd


 
B-B
InterRegio (IR)
Beiträge: 172
Registriert am: 28.10.2009


RE: Arduino Gleisbesetztmelder RFID

#16 von alter Raucher , 20.02.2019 19:55

Moin Bernd,

dieser Weg war nie mein Ziel!
Ich möchte in meinen Schattenbahnhof genau wissen welcher Zug in welchem Gleis steht!
Das geht dann mit den RFID System am besten! Da ich an dieser Stelle keinen Platz habe alle Gleise mit einer Kamera zu sehen.

Meine Baustelle hat jetzt auch die Sicherungshalter bekommen, das ganze muss aber noch verkabelt werden.
Auch die Sache mit dem EEPROM soll in der Zukunft laufen, hierfür brauche ich auch noch einige Bauteile damit eine saubere Speicherung erfolgen kann.
Platz in meinem Schaltschrank ist auf jeden Fall ausreichend vorhanden.


Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#17 von moppe , 20.02.2019 20:14

[quote="alter Raucher" post_id=1943439 time=1550688917 user_id=31423]
Das geht dann mit den RFID System am besten!
[/quote]

Jain.

Am besten ist in meiner Augen ihren los zu digitalisieren und RailCom feedback nutzen



Klaus


"Meine" Modellbahn:http://www.modelbaneeuropa.dk
Dänisches Bahnforum: http://www.baneforum.dk
PIKO C4 "Horror Gallery": http://moppe.dk/PIKOC4.html


 
moppe
Trans Europ Express (TEE)
Beiträge: 8.725
Registriert am: 07.08.2011
Homepage: Link
Ort: Norddeusche halbinsel
Gleise Roco, PECO, Märklin/Trix, PIKO,
Spurweite H0, H0e, N, Z
Steuerung Z21, Lenz, MpC Gahler+Ringsmeier, Games on Track/Faller
Stromart AC, DC, Digital, Analog


RE: Arduino Gleisbesetztmelder RFID

#18 von alter Raucher , 21.02.2019 19:35

Moin Klaus,

ich fahre sehr gerne analog.
Sehr oft fahre ich meine Züge nicht pro Jahr und aus diesem Grund ist es sehr schön zu wissen wo welcher Zug abgestellt ist!

Alle meine Loks so umzubauen das ich digital fahren kann ist mir zu auwendig, einen Sticker unter einen Wagen kleben macht viel weniger Arbeit.
Da gehen die Meinungen weit auseinander.

Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#19 von alter Raucher , 24.02.2019 11:36

Moin zusammen,
nun habe ich wieder einen kleinen Schritt in die richtige Richtung gemacht.

Das ist jetzt das richtige Netzteil 5V 10A!

Unter meiner H0e Anlage werden zur Zeit Relaiskarten aufgebaut, die sind zum ansteuern der Weichen und Stoppgleise da.

Auch wenn das Wetter einen nach draußen zieht, wollte ich einmal etwas anderes machen als nur Beton zu verarbeiten.

Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#20 von alter Raucher , 03.03.2019 19:39

Moin zusammen,
jetzt gibt es ausreichend Strom für die kleine H0e Anlage.

Die Sicherungen mit Halterungen sind eingebaut und alles funktioniert. Ein 5V 10A und ein 12V 12.5A Netzteil versorgen
die Stellpulte und die Beleuchtungen, Relaiskarten und Arduinos.

Das kleine Stellwerk wird in den nächsten Tagen noch einer Erweiterung bekommen.
Für die zwei Schattenbahnhöfe brauche ich noch ein bischen mehr Platz, 8 LCD Displays sollen dort verbaut werden.
Bis bald Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#21 von vikr , 03.03.2019 21:35

Hallo Karsten,[quote="alter Raucher" post_id=1941702 time=1550396321 user_id=31423]

ja jeder so wie er halt kann!

[/quote]

kannst Du bei Gelegenheit bitte das Zertifikat auf der Webseite aktualisieren?

wenn man auf die in Deiner Signatur verlinkte Seite gehen will, wird erhält man folgenden Sicherheitshinweis:

www.rafeba.de.tl uses an invalid security certificate. The certificate is only valid for the following names: *.de.tl, de.tl Error code: SSL_ERROR_BAD_CERT_DOMAIN

MfG

vik


im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix


vikr  
vikr
ICE-Sprinter
Beiträge: 6.281
Registriert am: 23.10.2011
Gleise M, C u. K.
Spurweite H0, N
Stromart Digital, Analog


RE: Arduino Gleisbesetztmelder RFID

#22 von alter Raucher , 03.03.2019 22:13

Moin,
wenn Du mit Firefox unterwegs bist dann kann das schon einmal Probleme bereite.
Ich habe den Link den Du mit angezeigt hast ausprobiert und bei mir klappt alles!

Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


RE: Arduino Gleisbesetztmelder RFID

#23 von MicroBahner , 03.03.2019 22:31

Ich weis nicht, wie alt dein Browser ist, aber aktuelle Browser weigern sich erstmal eine solche Seite zu öffnen. Das gilt nicht nur für Firefox, sondern auch für Chrome und Edge.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino Gleisbesetztmelder RFID

#24 von vikr , 03.03.2019 22:44

Hallo Karsten,[quote="alter Raucher" post_id=1947907 time=1551647627 user_id=31423]
bei mir klappt alles!
[/quote]
OK, wenn Du auch auf Deiner Webseite lieber keinen Besuch möchtest.
Hoffe, dass Du bei deiner Elektrik zumindest primärseitig etwas weniger pragmatisch vorgehst...

MfG

Vik


im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix


vikr  
vikr
ICE-Sprinter
Beiträge: 6.281
Registriert am: 23.10.2011
Gleise M, C u. K.
Spurweite H0, N
Stromart Digital, Analog


RE: Arduino Gleisbesetztmelder RFID

#25 von alter Raucher , 04.03.2019 10:21

Moin Franz-Peter,

genau nach einiger Zeit machen meine Rechner das auch.
Dann muss man halt dem eigenen Rechner die Freigabe auf diese Seiten wieder erneut erlauben.


Gruß
Karsten


Für Klugscheißerei und Neid nehme ich mir KEINE Zeit!
www.rafeba.de.tl
nicht jeder PC mag das .de.tl !!!
Das Maß ist VOLL und ich brauche eine neue Homepage!
www.rafeba02.de.tl


 
alter Raucher
InterCity (IC)
Beiträge: 780
Registriert am: 16.07.2017
Spurweite H0, H0e, G
Steuerung RC Steuerung für livesteam Loks
Stromart DC, Analog


   


  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz