Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Projekt: PIR & RFID Alarmanlage

Posted on 3. Juni 20185. März 2024 by Stefan Draeger

In diesem Projekt möchte ich die bereits erzeugte und vorgestellte Arduino Projekt: Alarmanlage mit RFID Steuerung um einen Pyroelektrischer Infrarot Motion Sensor (PIR) erweitern.

  • Warum das Projekt PIR & RFID Alarmanlage?
  • Benötigte Bauteile / Bauelemente
  • Aufbau
    • Anschluss
  • Schaltplan
  • Quellcode

Warum das Projekt PIR & RFID Alarmanlage?

Das Projekt entstand aus einem Kommentar zum Beitrag Arduino Projekt: Alarmanlage mit RFID Steuerung der Leser hatte mich hier gefragt wie denn ein PIR Sensor in die Schaltung integriert werden kann. Dieses habe ich zum Anlass genommen das Projekt neu aufzubauen und zwei PIR Sensoren zu integrieren.

Des Weiteren verwende ich nun auch eine RGB SMD Led statt zwei einzelne LEDs somit kann ich noch weitere Zustände farblich darstellen.

Benötigte Bauteile / Bauelemente

BezeichnungPreisLink
Arduino Leonardo (oder vergleichbar)4,50 €ebay.de*
RFID Modul – RC5223,50 €ebay.de*
PIR Modul – HC-SR5051,09 €ebay.de*
PIR Modul – HC–SR5012,85 €ebay.de*
NeoPixel Modul4,44 €ebay.de*
Piezo Buzzer1,40 €ebay.de*
400 PIN Breadboard3,85 €ebay.de*
Breadboardkabel1,90 €ebay.de*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Benötigte Bauelemente / Bauteile für die Alarmanlage mit zwei PIR Sensoren
Benötigte Bauelemente / Bauteile für die Alarmanlage mit zwei PIR Sensoren

Aufbau

Der Aufbau ist auf einem Breadboard, lötfrei und schnell erledigt. Die verbauten Module benötigen 10 digitale Pins somit reicht ein Arduino Leonardo völlig aus.

Sicherlich könnte man auch hier einen Arduino UNO oder sogar einen Arduino Nano verwenden, jedoch habe ich sehr gute Erfahrungen mit dem Leonardo gemacht.

Anschluss

ModulPinArduino Leonardo
RFID Modul – RC522  
 SDAD10
 SCKD19
 MOSID17
 MISOD18
 IRQ-bleibt frei-
 GNDGND
 RSTReset
 3.3V3.3V
PIR Modul – HC-SR505  
 +5V
 OUTD5
 –GND
PIR Modul – HC–SR501  
 VCC5V
 OUTD6
 GNDGND
NeoPixel Modul  
 GNDGND
 REDD4
 GREEND2
 BLURD7
Piezo Buzzer  
 SIGD3
 VCC5V
 GNDGND

Schaltplan

Aufbau der Schaltung auf dem Steckbrett
Aufbau der Schaltung auf dem Steckbrett

Quellcode

Für das Kompilieren und den Betrieb des Quellcodes wird die Bibliothek für das RFID Modul benötigt, diese kannst du von der Wiki Seite Electrodragon.com herunterladen.

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

//RGB LED
#define BLUE_LED 7  /* PIN für die blaue LED */
#define RED_LED 4   /* PIN für die rote LED */
#define GREEN_LED 2 /* PIN für die grüne LED */
 
//Piezo Buzzer
#define BUZZER 3 /* PIN für den Buzzer */

//RFID Modul - RC522
#define SS_PIN 10 /* PIN SDA für das RFID Modul */
#define RST_PIN 9 /* PIN RST für das RFID Modul */
RFID rfid(SS_PIN, RST_PIN);
String ids[2] = {"453B56D16", "8C3B3924AA1"}; //Zugelassene ID's

//PIR Modul HC-SR505
#define PIR505_PIN 5 /* PIN OUT für das PIR Modul HC-SR505 */

//PIR Modul HC-SR501
#define PIR501_PIN 6 /* PIN OUT für das PIR Modul HC-SR501 */

boolean isActive = false;

void setup() {
  Serial.begin(9600);

  pinMode(PIR501_PIN, INPUT);
  pinMode(PIR505_PIN, INPUT);

  pinMode(BLUE_LED, OUTPUT);   /* Setzt den PIN für die blaue LED als Ausgang. */
  pinMode(RED_LED, OUTPUT);    /* Setzt den PIN für die rote LED als Ausgang. */
  pinMode(GREEN_LED, OUTPUT);  /* Setzt den PIN für die grüne LED als Ausgang. */

  pinMode(BUZZER, OUTPUT) ; /* Setzt den PIN für den Piezo Buzzer als Ausgang. */

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

void loop() {

  boolean foundId = false;
  if (rfid.isCard() && rfid.readCardSerial()) {
    Serial.println("drin");
    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;
    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;
        break;
      }
    }
    Serial.println(foundId);
}

if(isActive){
  blinkActiveLED();
  int pirHC505 = digitalRead(PIR505_PIN);
  int pirHC501 = digitalRead(PIR501_PIN);

  if(pirHC505 == HIGH || pirHC501 == HIGH){
     tone(BUZZER, 500, 50);
     noTone(BUZZER);
  }
}

if(foundId){
    lightUpLED(0, 255, 0);
} else {
    lightUpLED(255, 0, 0);
}
delay(1500);

}

//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);
}

void blinkActiveLED(){
  lightUpLED(0, 0, 255);
  delay(350);
  lightUpLED(0, 0, 0);
  delay(350);
  lightUpLED(0, 0, 255);
  delay(350);
  lightUpLED(0, 0, 0);
}

void lightUpLED(int red, int green, int blue){
  analogWrite(RED_LED, red);
  analogWrite(GREEN_LED, green);
  analogWrite(BLUE_LED, blue );
  
}

7 thoughts on “Arduino Projekt: PIR & RFID Alarmanlage”

  1. Henry Fenzke sagt:
    29. Juli 2021 um 14:01 Uhr

    Die RFID-Biblothek „RFID.h“ ist am 4.02.2021 von der Seite https://www.electrodragon.com gelöscht worden.gibt es für das Sektch noch eine andere Möglichkeit.
    Ich habe es mit der Adafruit_MFRC630.h versucht (include RFID.h auskommentiert)
    aber das bringt mir einen fehler bei der überprüfung in der Zeile: RFID rfid (SS_Pin, RST_pin)
    kannst du eine andere Bibliothek empfehlen und dein Beispiel-Sketch darauf anpassen?

    Antworten
    1. Stefan Draeger sagt:
      29. Juli 2021 um 18:27 Uhr

      Hi Henry,

      ich werde da mal ein Update raushauen, schaue doch mal übermorgen auf meinen Blog vorbei 🙂

      Gruß,

      Stefan

      Antworten
      1. Marco sagt:
        19. Januar 2022 um 07:56 Uhr

        Hallo.

        Wo findet man denn dein Blog? Ich habe nämlich das gleiche Problem mit der RFID.h

        Gruß Marco

        Antworten
        1. Stefan Draeger sagt:
          19. Januar 2022 um 10:49 Uhr

          Hi Marco,

          du befindest dich gerade auf meinem Blog.
          Zum RFID Sensor habe ich einen neuen Beitrag veröffentlicht welcher eine andere Bibliothek verwendet (welche zumindest verfügbar ist).
          https://draeger-it.blog/rfid-kartenleser-rc522-am-arduino-betreiben-update-29-07-2021/

          Gruß,

          Stefan Draeger

          Antworten
          1. Mirko Thieme sagt:
            3. Juni 2023 um 20:56 Uhr

            Hallöle.

            Ich möchte dieses System in meinem Wohnwagen einbauen.
            Leider finde ich die benötigte Bibliothek mit der RFID.h nicht.
            Der Link vom 19. Januar geht leider auch nicht mehr.

            VG
            Mirko

          2. Stefan Draeger sagt:
            4. Juni 2023 um 18:20 Uhr

            Hi,

            bitte beachte das RFID nicht das sicherste System ist und die IDs mit speziellen Geräten kopiert werden können.
            Ich habe die Links nun angepasst, du findest die Bibliothek als ZIP-Datei unter https://draeger-it.blog/wp-content/uploads/2016/06/Electrodragon-Rfid2.zip

            Gruß, Stefan

  2. Pingback: Digitale Kommunikation im Unternehmen organisieren und verbessern - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}