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 fiable avec Arduino et Python (base de données phpMyAdmin)

Composants

Arduino UNO 1
Lecteur RFID RC522 + badges 1
Fils de connexion (jumper wires) 1 jeu

Logiciels requis

  1. Arduino IDE : site officiel
  2. Serveur XAMPP (Windows) : Apache + MySQL + phpMyAdmin. Téléchargement
    • Alternative Linux (LAMP) : sudo apt-get install apache2 mysql-server php libapache2-mod-php phpmyadmin
  3. Python IDLE (3.x recommandé) : python.org
    • Bibliothèques Python : pip install pyserial mysqlclient (ou mysql-connector-python)

Principe

Contrairement aux projets avec shield Ethernet, ici l'Arduino envoie les UID RFID via **liaison série (USB)** vers un script Python sur PC (ou Raspberry Pi pour version portable). Le script Python insère les données dans une base MySQL (phpMyAdmin).

Câblage RFID RC522 → Arduino UNO (SPI)

RC522Arduino UNOArduino Mega
RST99
SDA (SS)10 (ou 4)53 (ou 4)
MOSI1151
MISO1250
SCK1352
VCC3,3 V3,3 V
GNDGNDGND
IRQNon connectéNon connecté

Important : Alimentez le RC522 en 3,3 V uniquement !

Bibliothèque Arduino

Installez MFRC522 via le gestionnaire de bibliothèques (recherche « MFRC522 » → installer).

Code Arduino (extrait clé)

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("RFID Attendance System Ready");
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return;

  // Construire l'UID en chaîne hexadécimale
  String uidStr = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if (mfrc522.uid.uidByte[i] < 0x10) uidStr += "0";
    uidStr += String(mfrc522.uid.uidByte[i], HEX);
  }
  uidStr.toUpperCase();
  Serial.println(uidStr); // Envoi série vers Python
  delay(1000); // Anti-rebond
}

Script Python (envoi vers MySQL/phpMyAdmin)

import serial
import mysql.connector
from datetime import datetime

# Configuration série
ser = serial.Serial(port='COM3', baudrate=9600, timeout=1)  # Adapter le port
# Configuration BDD
db = mysql.connector.connect(
    host="localhost",
    user="root",
    password="",
    database="attendance_db"
)
cursor = db.cursor()

# Table : CREATE TABLE logs (id INT AUTO_INCREMENT PRIMARY KEY, uid VARCHAR(20), timestamp DATETIME);

print("En écoute sur port série...")
while True:
    if ser.in_waiting > 0:
        uid = ser.readline().decode('utf-8').strip()
        if uid:
            now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            sql = "INSERT INTO logs (uid, timestamp) VALUES (%s, %s)"
            cursor.execute(sql, (uid, now))
            db.commit()
            print(f"Enregistré : {uid} @ {now}")

Base de données (phpMyAdmin)

CREATE DATABASE attendance_db;
USE attendance_db;
CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    uid VARCHAR(20) NOT NULL,
    timestamp DATETIME NOT NULL,
    INDEX idx_uid (uid),
    INDEX idx_timestamp (timestamp)
);

Avantages de cette architecture

Ressources

Projet idéal pour apprendre la communication série Arduino↔Python, l'intégration BDD, et réaliser un vrai système de pointage low-cost.

Processus de fabrication

  1. Système de contrôle d'accès intégré QR, RFID et vérification de température
  2. Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
  3. Construire un robot avec Raspberry Pi et Python : Guide complet
  4. Construire une serrure RFID sécurisée avec Arduino et RC522 (MIFARE 13,56 MHz)
  5. Construire une télécommande Android universelle avec Arduino, 1Sheeld et contrôle IR
  6. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  7. Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python
  8. Construire une Radio FM Compacte avec Arduino Nano et RDA5807M
  9. Système de pointage RFID temps réel avec Arduino et Google Sheets