Hallo,
wir haben für ein Schulprojekt eine Alarmanlage programmiert. Wir nutzen ein Arduino UNO Board. Wir möchte diese mithilfe eines RFID-RC522 aktivieren und deaktivieren.
Wir haben 3 Chip Karten, mit der ersten kann man die Anlage freischalten, also wenn der Alarm auslöst und die rote Led leuchtet wird der Alarm (Lautsprecher) ausgeschalten und die grüne leuchtet.
Mit der 2ten machen wir das gleiche nur wird eine gelbe Led eingeschalten (wenn die 1. Karte gelesen wird aktiviert sich ebenfalls die grüne und die gelbe schaltet aus).
Mit der 3ten möchten wir gerne die Anlage komplett deaktivieren oder aktivieren. Wir kommen nur leider nicht weiter.
Über Hilfe und Verbesserungen würden wir uns extrem freuen da wir hier eine wichtige Note bekommen.
Hier ist unser Code, ist nicht der beste :c
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
int buzzer = 5;
int sensorPin = A0;
int sensorValue = 0;
void setup()
{
Serial.begin(9600);
pinMode(7,1);
digitalWrite(7,HIGH);
pinMode(6,1);
pinMode(4,1);
pinMode(3,1);
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
Serial.println("Approximate your card to the reader...");
Serial.println();
}
void loop()
{
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue > 512) { //Sensor
tone(buzzer, 4000); //Alarm
digitalWrite(6,1);
digitalWrite(7,0);
digitalWrite(4,0);
}
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "16 7A 32 F8") // Der Buzzer wird ausgeschalten eine die grüne Led leuchtet
{
digitalWrite(6,0); //rote Led
digitalWrite(7,1); //Grüne Led
digitalWrite(4,0); //gelbe Led
Serial.println();
noTone(buzzer);
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "F9 2A BA 55") // Der Buzzer wird ausgeschalten eine Gelbe Led leuchtet
{
digitalWrite(7,0);
digitalWrite(6,0);
digitalWrite(4,1);
Serial.println();
noTone(buzzer);
}
}
//Vielen Dank ;D