Rapsberry Pi – GPiO Reader RC522

Návod: Jak používat RFID čtečku RC522 s Raspberry Pi

RFID čtečky jsou skvělým nástrojem pro identifikaci a sledování různých objektů pomocí RFID čipů. V tomto blogovém příspěvku vám ukážu, jak jednoduše propojit a používat čtečku RFID RC522 s Raspberry Pi a zároveň si ukážeme základní Python skript pro čtení RFID karet.

Raspberry Pi                RC522 Reader
---------------------------------------
3.3V                        VCC
GND                         GND
GPIO8 (SPI0 CE0)            RST
GPIO9 (SPI0 MISO)           MISO
GPIO10 (SPI0 MOSI)          MOSI
GPIO11 (SPI0 SCLK)          SCK

Python Script:

Dále nainstalujte potřebné knihovny pro čtení RFID čtečky RC522 a použijte následující Python skript pro čtení RFID karet a jeho odeslání na URL:

import requests
import random
import time
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()
url_local = "http://127.0.0.1/terminalAPK.php"

def format_card_id(card_id):
    # Převod decimálního ID na hexadecimální, ořezání na prvních 8 znaků (4 bajty)
    hex_id = format(card_id, 'x')  # Převádí na hexadecimální bez doplnění nul
    hex_id = hex_id.zfill(8)       # Doplní nuly na začátek, pokud je délka menší než 8 znaků
    return hex_id[:8]              # Vrátí pouze prvních 8 znaků


def send_card_id_to_server(card_id, action_id):
    try:
        data = {"card_id": card_id, "action": action_id}
        response_local = requests.post(url_local, data=data, timeout=5)
        if response_local.status_code == 200:
            print("Data byla úspěšně uložena na lokálním serveru.")
            return True
        return False
    except requests.exceptions.RequestException as e:
        print("Chyba při komunikaci se serverem:", e)
        return False

def main():
    while True:
        try:
            print("Prosím, přiložte kartu")
            card_id, text = reader.read()
            formatted_card_id = format_card_id(card_id)
            print("Formátované ID karty:", formatted_card_id)

            test_id = random.randint(1, 9)
            if send_card_id_to_server(formatted_card_id, 0):
                print("Data byla úspěšně odeslána na server. Test ID: " + str(test_id))
            else:
                print("Data nelze odeslat na žádný server.")
            time.sleep(3)
        except KeyboardInterrupt:
            print("Program byl ukončen.")
            break
        except Exception as e:
            print("Chyba:", e)
            continue

if __name__ == "__main__":
    main()

Tento skript neustále čte přítomnost RFID karet a zobrazuje jejich UID v terminálu a zároveň se snaží odeslat POST do PHP třídy.

Závěr:

S pomocí této jednoduchého návodu můžete snadno začít používat RFID čtečku RC522 s Raspberry Pi a integrovat ji do svých projektů. Tato kombinace poskytuje spolehlivé a efektivní řešení pro identifikaci a sledování objektů v různých aplikacích, od přístupového řízení po sledování inventáře.


Comments

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *