INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bewegungsmelder mit RFID aktivieren/deaktivieren
18.08.2016, 17:18
Beitrag #1
Bewegungsmelder mit RFID aktivieren/deaktivieren
Hallo,
ich habe vor kurzem mit Arduino begonnen. Mein Projekt an dem ich irgendwie nicht weiterkomme ist ein PIR-Bewegungsmelder welcher mit einem RFID-Modul aktiviert oder deaktiviert werden soll.
Den Code habe ich von der Minialarmanlage von hier. Habe den Verfasser schon angeschrieben aber leider keine Antwort bekommen.
Wenn ich wie im Code angegeben einen Taster an Pin 6 und GND anschließe passiert nichts. Die Relaiskarte schaltet auch mit aktivieren/deaktivieren über RFID EIN und AUS.
Dann weiß ich auch nicht wie und an welcher Stelle ich den Code der PIR-Geschichte einfügen muß.
Für eine Hilfestellung wäre ich dankbar.
Code:
#include <SPI.h>
#include <RFID.h>

#define SS_PIN 10
#define RST_PIN 9

int ledStatusPin = 2; // Status LED Gruen an digitalen PIN 2
int ledAktivPin = 3; // Aktiv LED Rot an digitalen PIN 3
int buzzerPin = 4; // Buzzer an digitalen PIN 4
int relaisPin = 5; // Relais an digitalen PIN 5 (HIGH == deaktiviert & LOW == aktiviert)
int alarmPin = 6; // Schalter fuer Alarm an digitalen PIN 6

boolean isActive = false;
boolean isAlarm = false;

RFID rfid(SS_PIN, RST_PIN);

String ids[2] = {"453B56D16", "8C3B3924AA1"}; //Zugelassene ID's

void setup()
{
  pinMode(ledStatusPin, OUTPUT);
  pinMode(ledAktivPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(relaisPin, OUTPUT);

  pinMode(alarmPin, INPUT);

  digitalWrite(alarmPin, HIGH);

  Serial.begin(9600);
  SPI.begin();
  rfid.init();
}

void loop() {
  if (isActive) {
    //Wenn die Alarmanlage aktiviert ist dann soll die rote LED aufleuchten.
    digitalWrite(ledAktivPin, HIGH);
    //Wenn kein Alarm aktiviert ist, so soll der Status des Alarmpins ausgewertet werden.
    if (isAlarm == false) {
      isAlarm = digitalRead(alarmPin) == HIGH;
    }
  } else {
    //Wenn die Alarmanlage deaktiviert ist, dann soll die rote LED aus sein und das Relais soll abgefallen sein.
    digitalWrite(ledAktivPin, LOW);
    digitalWrite(relaisPin, HIGH);
  }

  //Wenn die Alarmanlage an ist und es besteht ein Alarm so soll das Relais angezogen werden.
  if ((isActive == true) && (isAlarm == true)) {
    digitalWrite(relaisPin, LOW);
  } else {
    digitalWrite(relaisPin, HIGH);
  }

  //Wird vor das RFID Modul ein Chip gehalten so wird diese ID ausgelesen.
  if (rfid.isCard() && rfid.readCardSerial()) {
    String serial = parseId(rfid);
    //Ausgabe der ID auf dem Seriellen Monitor
    Serial.println("RFID Nummer: " + serial);

    //Schleife zum pruefen der erkannten RFID.
    int counter = 0;
    boolean foundId = false;
    for (counter = 0; counter < sizeof(ids) - 1; counter++) {
      //Wenn die RFID bekannt ist so soll die Alarmanlage aktiviert bzw. deaktiviert werden.
      if (serial == ids[counter]) {
        isActive = !isActive;
        foundId = true;
        flashLED(ledStatusPin, 250);
        break;
      }
    }

    //Wurde die RFID nicht in den registrierten ID's gefunden,
    //so soll dieses durch das blinken der roten Aktiv LED und
    //dem Buzzer bestätgit werden.
    if (!foundId) {
      flashLED(ledAktivPin, 550);
    } else if (foundId && isAlarm) {
      Serial.println("!!! RFID Nummer wurde gefunden !!!");
      isAlarm = false;
      digitalWrite(relaisPin, HIGH);
    }
  }
  rfid.halt();
  delay(750); //Pause von 750ms
}

//Laesst eine LED am PIN aufblinken,
//der Intervall wird im Parameter milliseconds uebergeben.
void flashLED(int pin, int milliseconds) {
  int i = 0;
  for (i = 0; i < 2; i++) {
    digitalWrite(pin, HIGH);
    tone(buzzerPin, 1050, 350);
    delay(milliseconds);
    digitalWrite(pin, LOW);
    tone(buzzerPin, 1050, 350);
    delay(milliseconds);
  }
}

//Liesst eine ID aus dem Modul
//und gibt diese als String zurueck.
String parseId(RFID rfid) {
  String result = "";
  int position = 0;
  for (position = 0; position <= 4; position++) {
    String pos = getNumPosAsHEX(rfid, position);
    result = result + pos;
  }
  result.toUpperCase();
  return result;
}

//Liefert aus dem Wert des RFID Moduls und einer bestimmten
//Position einen HEXADEZIMAL Codierten Wert zurueck.
String getNumPosAsHEX(RFID rfid, int position) {
  return String(rfid.serNum[position], HEX);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 18:47
Beitrag #2
RE: Bewegungsmelder mit RFID aktivieren/deaktivieren
Ist dieser Sketch ohne eigene Änderung übernommen worden?
Hast du alle Komponenten genau so angeschlossen, wie es der Autor vorgibt?
Wenn ja, sollte der Sketch auch funktionieren.

Gibt es ein Schaltbild des Projektes?

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 19:18
Beitrag #3
RE: Bewegungsmelder mit RFID aktivieren/deaktivieren
Habe den Fehler mit dem Relais gefunden:

void loop() {
if (isActive) {
//Wenn die Alarmanlage aktiviert ist dann soll die rote LED aufleuchten.
digitalWrite(ledAktivPin, HIGH);
//Wenn kein Alarm aktiviert ist, so soll der Status des Alarmpins ausgewertet werden.
if (isAlarm == false) {
isAlarm = digitalRead(alarmPin) == LOW;

Wenn ich dort LOW eingebe kann ich auch mit dem Taster den Alarm auslösen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bewegungsmelder torsten_156 8 990 14.02.2016 15:07
Letzter Beitrag: hotsystems
Question Zwei RC522 RFID Reader -> Problem durch Kabel? vtx 2 813 24.06.2015 11:13
Letzter Beitrag: vtx
  DIY UHF RFID Reader eden89 0 1.185 19.05.2015 17:18
Letzter Beitrag: eden89
  RFID zusammen mit ASA1 mp3-Shield benutzen Huepenbecker 0 686 04.05.2015 13:22
Letzter Beitrag: Huepenbecker
  RFID passiv bhilde 5 1.441 28.08.2014 06:18
Letzter Beitrag: bhilde
  arduino uno mit rfid und gsm adrian.b 1 1.444 09.04.2014 12:29
Letzter Beitrag: adrian.b

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste