User Tools

Site Tools


firebutton

Тревожная кнопка

В каждом классе у учительского стола устанавливаем “тревожную кнопку” для оперативного оповещения охраны о нестандартной ситуации. Одна из проблем таких “кнопок” в школе - случайная активация. Для решения этой проблемы необходима предварительная авторизация пользователя.

В проекте для авторизации используется RFID-технология. В школе у всех персональные RFID-карты. В качестве “тревожной кнопки” используется бесконтактный считыватель RFID карт RDM6300 с частотой 125 кГц. Сигнал тревоги передается на пульт охраны, где включается красный светодиод, соответствующий кабинету.

Схема

Код

#include <SoftwareSerial.h>
 
#define pinLED 13
#define pinRFID 10
 
SoftwareSerial RFID(pinRFID, 3); // пин TX и пин RX для RFID Plus
 
// номер обнаруженной карты
byte newCard[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 
// номер карты учителя
byte teacherCard[14] = {2,55,67,48,48,57,48,68,56,56,55,66,51};
 
byte bSim;
 
void setup() {
  RFID.begin(9600); // SoftwareSerial to RFID reader
  pinMode(pinLED, OUTPUT);
  Serial.begin(9600);  // serial (UART)  to computer 
//      digitalWrite(pinLED, HIGH);
//    delay(1000);    
}
 
void loop() {
  RFID.listen();
  delay(100); 
  bSim = RFID.read();
  if (bSim == 2) 
  {
    newCard[0] = bSim;
    Serial.print(newCard[0]);
    Serial.print(" ");
    for (int i = 1 ; i < 13 ; i++) {
      newCard[i] = RFID.read();      
      Serial.print(newCard[i]);
      Serial.print(" ");
    }
    Serial.println();
  }
  if (newCard[0] == teacherCard[0] && newCard[1] == teacherCard[1] &&
      newCard[2] == teacherCard[2] && newCard[3] == teacherCard[3] &&
      newCard[4] == teacherCard[4] && newCard[5] == teacherCard[5] &&
      newCard[6] == teacherCard[6] && newCard[7] == teacherCard[7] &&
      newCard[8] == teacherCard[8] && newCard[9] == teacherCard[9] &&
      newCard[10] == teacherCard[10] && newCard[11] == teacherCard[11] &&
      newCard[12] == teacherCard[12] && newCard[13] == teacherCard[13]) {
 
    digitalWrite(pinLED, HIGH);
    delay(1000);     
  }
  else {
    digitalWrite(pinLED, LOW);
  }
 
  delay(1000);
}
firebutton.txt · Last modified: by admin