Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema Avançado de Presença RFID v2.0 – Solução sem Ethernet

Componentes e Materiais

ComponenteQuantidade
Arduino UNO1
Fios Jumpers (genéricos)1
Módulo RFID RC5221

Aplicativos e Serviços Online

Sobre o Projeto

A primeira versão do nosso "Sistema de Presença RFID Online (sem Ethernet)" podia ser complexa para hobbyistas sem experiência em programação. Com a Versão 2 do Sistema de Presença RFID Online, eliminamos a necessidade de codificação. Com apenas algumas conexões, você cria seu próprio sistema de presença online completo, com display LCD.

Como Funciona

Circuito

Sistema Avançado de Presença RFID v2.0 – Solução sem Ethernet

Consulte a seção Esquemáticos para detalhes das conexões de pinos.

Conexões do Display LCD

Programação e Configuração

  1. Crie um Grupo de Usuários e Gere a Chave de Validação
    Acesse: https://www.parikshacrack.com/gadgetProgrammers/user_group.html
    Guarde esta chave de validação.
  2. Baixe os arquivos necessários para sincronizar Arduino e aplicação web: Nota: apenas para Windows (32 ou 64 bits).
  3. Extraia os arquivos e salve no PC.
  4. Conecte o Arduino e o leitor RFID ao mesmo PC.
  5. Copie o código Arduino (abaixo) para a IDE, compile e carregue.
  6. Execute o aplicativo desktop "addRFIDTagsProg" (da pasta extraída). Selecione a porta COM correta. Insira a chave de validação gerada no passo 1 e clique em "Validate Key".
  7. Após validação, aproxime o cartão/tag RFID do leitor RC522. O UID aparecerá; digite o nome do usuário e confirme. Sucesso permite visualizar no painel web: https://www.parikshacrack.com/gadgetProgrammers/index.php
  8. No painel web, vá em Usuários → Lista de Usuários Pendentes para associar tags a funcionários/alunos.
  9. Execute o aplicativo "markOnlineAttendance" (pasta markattendancewin64.zip). A tela mostrará "Status: connected". Aproxime a tag do leitor por alguns segundos para registrar a presença.
  10. Para relatórios: no painel web, Controles de Presença → Ver Presença, selecione mês/ano e clique em "Show".

Código

Código Arduino

/* Exemplo de leitura de NUID com MFRC522
   Baseado em biblioteca: https://github.com/miguelbalboa/rfid
   Conexões LCD e RFID conforme comentários no código */
#include 
#include 
#include 

const int rs = A0, en = A1, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define SS_PIN 10
#define RST_PIN 9

int writeVal;
int greenLedPin = A2;
int redLedPin = A3;
int orangeLedPin = 6;
int buzzerPin = A4;
boolean chkConn = false;

MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
byte nuidPICC[4];
boolean isValidating = false;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(greenLedPin, OUTPUT);
  pinMode(redLedPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("GadgetProgrammer");
  delay(100);
  lcd.setCursor(0, 1);
  lcd.print(" Not Connected! ");
  establishConnection();
}

void loop() {
  lcd.setCursor(0, 1);
  char retOutput;
  if (Serial.available() > 0) {
    retOutput = Serial.read();
    lcd.blink();
    if (retOutput == 'A') {
      chkConn = true;
      analogWrite(orangeLedPin, 0);
      lcd.print("Swipe Your Card!");
    }
    if (retOutput == 'V') {
      analogWrite(orangeLedPin, 1000);
      lcd.print("Validating Group");
      isValidating = true;
      delay(1000);
    }
    if (retOutput == 'S') {
      lcd.print("Validation Done!");
      glowGreenLed(1000);
      isValidating = false;
      delay(1000);
    }
  }
  if (chkConn && retOutput != 0) {
    if (retOutput == '1') { lcd.print("Attendance Done!"); glowGreenLed(1000); delay(4000); }
    else if (retOutput == '0') { lcd.print("Network Error !"); glowRedLed(1000); delay(4000); }
    else if (retOutput == '2') { lcd.print("User Not Found!"); glowRedLed(1000); delay(4000); }
    else if (retOutput == '5') { lcd.print("Network Error!"); glowRedLed(1000); delay(4000); }
    if (!isValidating) {
      lcd.setCursor(0, 1);
      analogWrite(orangeLedPin, 0);
      lcd.print("Swipe Your Card!");
    }
  }
  if (!rfid.PICC_IsNewCardPresent()) return;
  if (!rfid.PICC_ReadCardSerial()) return;
  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
      piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
      piccType != MFRC522::PICC_TYPE_MIFARE_4K) return;
  for (byte i = 0; i < 4; i++) nuidPICC[i] = rfid.uid.uidByte[i];
  printHex(rfid.uid.uidByte, rfid.uid.size);
  Serial.println();
  lcd.setCursor(0, 1);
  lcd.print("Reading Card...!");
  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();
  delay(1000);
}

void printHex(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? "0" : "");
    Serial.print(buffer[i], HEX);
  }
}

void glowGreenLed(int delaytime) {
  digitalWrite(orangeLedPin, LOW);
  digitalWrite(greenLedPin, HIGH);
  digitalWrite(redLedPin, LOW);
  tone(buzzerPin, 5000, 300);
  if (delaytime > 0) { delay(delaytime); digitalWrite(greenLedPin, LOW); noTone(buzzerPin); }
}

void glowRedLed(int delaytime) {
  digitalWrite(orangeLedPin, LOW);
  digitalWrite(greenLedPin, LOW);
  digitalWrite(redLedPin, HIGH);
  digitalWrite(buzzerPin, HIGH);
  delay(1000);
  tone(buzzerPin, 5000);
  if (delaytime > 0) { delay(delaytime); digitalWrite(redLedPin, LOW); noTone(buzzerPin); }
}

void glowOrangeLed() { analogWrite(orangeLedPin, 100); delay(100); }

void establishConnection() {
  while (Serial.available() <= 0 && !chkConn) {
    Serial.println("A");
    glowOrangeLed();
    delay(200);
  }
}

Esquemáticos

Arquivos de conexão de pinos:

Processo de manufatura

  1. O Rolo de Massa: Das Origens Etruscas à Arte Moderna
  2. A Evolução e o Artesanato dos Pinos de Boliche Modernos
  3. Sistemas de Aquecimento Solar: De Soluções Passivas a Ativas para Aquecimento Residencial Sustentável
  4. Das Fíbulas Antigas à Fabricação Moderna: O Alfinete de Segurança Explicado
  5. Primal Display: Construa Monitor de Temperatura LCD com Raspberry Pi
  6. Elkem Silicones Revela LSR Select: Cura a Baixa Temperatura e Formulação Personalizada para Ciclos 50% Mais Rápidos
  7. Sistema Revolucionário de Resfriamento Termoelétrico Melhora Desempenho de Computadores e Baterias
  8. Sistema de Presença RFID Confiável com Arduino e Python
  9. Sistemas Transportadores: Funcionamento, Tipos e Principais Benefícios
  10. Dominando o Sistema de Suspensão do Seu Veículo: Protegendo Seu Carro e Melhorando o Conforto