Arduino 16
09,02,2018 Arduino RFID Schattenbahnhof Teil1Das sind die ersten 4 Gleise mit Zugerkennung und Besetztmeldung auf meiner
H0e Strecke.
########################################
Der Sketch für die Steuerung:
// 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();
}
}
##########################