Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Composants et fournitures

Arduino UNO × 1
Fils de connexion (génériques) × 1
Module RFID RC522 × 1

Applications et services en ligne

À propos du projet

La première version de notre « Système de pointage RFID en ligne (sans Ethernet) » pouvait sembler complexe pour les amateurs sans compétences en programmation. Avec la version 2 du système de pointage RFID en ligne, nous avons éliminé la partie codage. En réalisant simplement quelques connexions, vous pourrez créer votre propre système de pointage en ligne.

Cette version intègre tous les éléments d'un vrai système de pointage : afficheur LCD, gestion des utilisateurs, validation de groupe, etc.

Fonctionnement

Circuit

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

En cas de doute sur les connexions, consultez la section « Schémas » pour le détail des broches.

Connexion de l'écran LCD :

Programmation :

Étape 1 : Créez un groupe d'utilisateurs et générez une clé de validation sur cette page. Conservez cette clé.

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Étape 2 : Téléchargez les fichiers nécessaires à la synchronisation Arduino / Application Web :

Note : uniquement pour Windows (32 ou 64 bits). Extrayez les archives et placez les fichiers sur votre PC.

Étape 3 : Connectez l'Arduino et le lecteur RFID au même PC.

Étape 4 : Copiez le code Arduino (section Code) dans l'IDE Arduino, compilez et téléversez.

Étape 5 : Lancez l'application de bureau « addRFIDTagsProg » (dossier addRFIDTagsProg.zip). Sélectionnez le port COM de l'Arduino.

Système de pointage RFID avancé v2.0 – Solution sans Ethernet
Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Entrez la clé de validation générée à l'étape 1 et cliquez sur « Valider la clé ». Une fois validé, vous pouvez ajouter des utilisateurs : approchez le badge RFID du lecteur, le UID s'affiche, saisissez le nom de l'utilisateur et validez.

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Un message de succès confirme l'ajout. L'utilisateur apparaît sur le panneau web : https://www.parikshacrack.com/gadgetProgrammers/index.php

Étape 6 : Connectez-vous à l'application web (même URL) pour gérer les utilisateurs. Onglet « Utilisateurs → Liste des utilisateurs en attente » pour assigner les badges RFID aux employés/étudiants.

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Étape 7 : Lancez l'application « markOnlineAttendance » (dossier markattendancewin64.zip). L'écran affiche « Status: connected ». Présentez un badge RFID devant le lecteur quelques secondes : le pointage est enregistré pour la personne associée.

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

Étape 8 : Pour consulter les pointages (mois/année) : onglet « Contrôles de pointage → Voir pointages », sélectionnez mois et année, cliquez sur « Afficher ».

Système de pointage RFID avancé v2.0 – Solution sans Ethernet

C'est terminé ! N'hésitez pas à laisser un commentaire en cas de question.

Code

Code Arduino

/* --------------------------------------------------------------------------------------------------------------------
 Example sketch/program showing how to read new NUID from a PICC to serial.
 --------------------------------------------------------------------------------------------------------------------
 This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 ...
*/ 
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

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 != "") {
    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 == false){
      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 printDec(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? "0" : "");
    Serial.print(buffer[i], DEC);
  }
}
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); }
}
void printLcdMsg(String msg, int col, int row) {
  if (msg.equals("") || row < 0 || col < 0) { row = 0; col = 1; }
  lcd.setCursor(col, row);
  lcd.print(msg);
}

Schémas

pin_connections_of_arduino_and_lcd_yD9G43NUd9.tiff
pin_connections_of_arduion_and_rfid_7DFKgigFOA.tiff

Processus de fabrication

  1. Le rouleau à pâtisserie : des origines étrusques à l'artisanat moderne
  2. L'évolution et l'artisanat des quilles de bowling modernes
  3. Systèmes de chauffage solaire : des solutions passives aux actives pour un chauffage domestique durable
  4. Des fibules antiques à la fabrication moderne : l'épingle de sûreté expliquée
  5. Primal Display : Construire un moniteur de température LCD avec Raspberry Pi
  6. Elkem Silicones dévoile LSR Select : cicatrisation basse température et formulation sur mesure pour cycles 50% plus rapides
  7. Système de refroidissement thermoélectrique révolutionnaire améliore les performances des ordinateurs et batteries
  8. Systèmes de convoyage : fonctionnement, types et avantages clés
  9. Maîtriser la suspension automobile : composants, types, fonctionnement et diagnostic