from mfrc522 import SimpleMFRC522 import RPi.GPIO as GPIO from datetime import datetime, timedelta import time import json import os import requests dosya_adi = "giris_kayitlari.json" api_url = "https://pdks.damargrup.com/api/kayitoku" reader = SimpleMFRC522() if not os.path.exists(dosya_adi): with open(dosya_adi, "w") as dosya: json.dump([],dosya) son_okutma_zamani = None print("KART OKUMA İŞLEMİ BAŞLATILDI") try: while True: print("\nKart okutmak için okuyucuya yaklaştırın") id, veri = reader.read() mevcut_zaman = datetime.now() try: isim, birim = veri.split("-", 1) except ValueError: isim = veri birim = "Birim bilgisi yok" if isinstance(mevcut_zaman, datetime): print("GİRİŞ SAATİ: ", mevcut_zaman.strftime("%Y-%m-%d %H:%M:%S")) else: print("Mevcut zaman bir datetime nesnesi değil") print('KART ID:', id) print('KART SAHİBİ:', isim) print('BIRIM:', birim) print('GİRİŞ SAATİ:', mevcut_zaman.strftime("%Y-%m-%d %H:%M:%S")) yeni_kayit= { "id": id, "İsim": isim, "Birim": birim, "time": mevcut_zaman.strftime("%Y-%m-%d %H:%M:%S") } sunucu_json= { "id": id, "time": mevcut_zaman } try: with open(dosya_adi,"r+") as dosya: try: kayitlar = json.load(dosya) except json.JSONDecodeError: print("json dosyası geçersiz formatta yenisi oluşturuluyor") kayitlar = [] dosya.seek(0) json.dump(kayitlar, dosya) kayitlar.append(yeni_kayit) dosya.seek(0) json.dump(kayitlar, dosya, indent=4) except FileNotFoundError: print("JSON dosyası bulunamadı, yenisi oluşturuluyor") with open(dosya_adi, "w") as dosya: json.dump([yeni_kayit], dosya, indendt=4) try: response = requests.post(api_url, data=yeni_kayit) if response.status_code == 200: print("Veri API'ye başarıyla gönderildi") else: print("API gönderimi hatası:", e) except requests.exceptions.RequestException as e: print("API bağlantısı hatası:", e) son_okutma_zamani = mevcut_zaman time.sleep(1) except KeyboardInterrupt: print("\Kart okuma işlemi durduruldu") finally: GPIO.cleanup()