Herkese merhabalar,
Elimde şu RFID okuyucu mevcut https://www.direnc.net/125-khz-usb-rfid-kart-etiket-okuyucu?language=tr&h=434aa101&gclid=CjwKCAiAvK2bBhB8EiwAZUbP1Kb6Uu2NgCZ6b9yHzX6hzZw5NlZqp_uaxL5xankPb5Xo8e4M0q2wuxoCbJoQAvD_BwE
Bilgisayara (Windows) takıyorum ve herhangi bir text dosyasına direk RFID kodunu gösteriyor.
Fakat benim yapmak istediğim şey bu rfid verilerini python ile almak. Ancak bunun için bulduğum birkaç kaynak da COM port ilişkisi var. Fakat bu cihaz USB aygıt olarak görüntüleniyor. Verileri python ile nasıl elde edebilirim önerisi olan var mı ?
Alıntı yapılan: robikod - 09 Kasım 2022, 15:55:48Herkese merhabalar,
Elimde şu RFID okuyucu mevcut https://www.direnc.net/125-khz-usb-rfid-kart-etiket-okuyucu?language=tr&h=434aa101&gclid=CjwKCAiAvK2bBhB8EiwAZUbP1Kb6Uu2NgCZ6b9yHzX6hzZw5NlZqp_uaxL5xankPb5Xo8e4M0q2wuxoCbJoQAvD_BwE
Bilgisayara (Windows) takıyorum ve herhangi bir text dosyasına direk RFID kodunu gösteriyor.
Fakat benim yapmak istediğim şey bu rfid verilerini python ile almak. Ancak bunun için bulduğum birkaç kaynak da COM port ilişkisi var. Fakat bu cihaz USB aygıt olarak görüntüleniyor. Verileri python ile nasıl elde edebilirim önerisi olan var mı ?
bu cihaz kendini klavye gibi gösteriyor. HID olarak çalışıyor. imleç nerede ise okuduğu veriyi oraya yazıyor.
Program arka planda çalışıyorsa bir ihtimal python hid lib kullanarak vid ve pid bilgilerini bulup girip yakalanabilir.
import hid
vid = 0x046d # Change it for your device
pid = 0xc534 # Change it for your device
with hid.Device(vid, pid) as h:
print(f'Device manufacturer: {h.manufacturer}')
print(f'Product: {h.product}')
print(f'Serial Number: {h.serial}')
https://pypi.org/project/hid/
pythonda input komutu var. Klavyeden veri girişi için. Enter tuşunu takip eder.
Sizdeki rfid okuyucu windows tarafından klavye olarak algılanır. Bu yüzden python kodu içinde veriyi almak istedğiniz yere
x = input("xyz")
şeklinde yazıp veriyi alabilirsiniz. Veri string olarak gelecektir.
Alıntı yapılan: SercanTEK - 09 Kasım 2022, 16:24:03bu cihaz kendini klavye gibi gösteriyor. HID olarak çalışıyor. imleç nerede ise okuduğu veriyi oraya yazıyor.
Program arka planda çalışıyorsa bir ihtimal python hid lib kullanarak vid ve pid bilgilerini bulup girip yakalanabilir.
import hid
vid = 0x046d # Change it for your device
pid = 0xc534 # Change it for your device
with hid.Device(vid, pid) as h:
print(f'Device manufacturer: {h.manufacturer}')
print(f'Product: {h.product}')
print(f'Serial Number: {h.serial}')
https://pypi.org/project/hid/
Arka planda çalıştırmam gerekiyor aslında, o yüzden input verisini alamıyorum.
pid ve vidsini biliyorum ama nasıl data okuyabilirim bulamadım. Şu kütüphaneyi deniyorum https://github.com/charlysan/pyrfidhid
Fakat bunda da Windows da "usb.core.USBError: [Errno None] b'libusb0-dll:err [claim_interface] could not claim interface 0, invalid configuration 0\n'" Sorununu yaşıyorum bir çözüm bulamadım.
Alıntı yapılan: robikod - 09 Kasım 2022, 16:59:22Arka planda çalıştırmam gerekiyor aslında, o yüzden input verisini alamıyorum.
pid ve vidsini biliyorum ama nasıl data okuyabilirim bulamadım. Şu kütüphaneyi deniyorum https://github.com/charlysan/pyrfidhid
Fakat bunda da Windows da "usb.core.USBError: [Errno None] b'libusb0-dll:err [claim_interface] could not claim interface 0, invalid configuration 0\n'" Sorununu yaşıyorum bir çözüm bulamadım.
açıkçası birebir tecrübe etmediğim için yanlış yönlendirmek istemiyorum. ama pyrfidhid yerine birde verdiğim linkteki libi deneyin.
Alıntı yapılan: SercanTEK - 09 Kasım 2022, 19:38:17açıkçası birebir tecrübe etmediğim için yanlış yönlendirmek istemiyorum. ama pyrfidhid yerine birde verdiğim linkteki libi deneyin.
Biraz uğraştım aşağıdaki gibi bir kod oluşturdum. scan_hiddevice doğru bir şekilde dönüyor fakat, rx_handler ile rfid'nin bana döndürdüğü tagleri okuyamıyorum. Bu fonksiyona hiç gelmiyor neden olabilir sizce ?
import pywinusb.hid as hid
DEVICE_DEFAULT_VID = 0xffff
DEVICE_DEFAULT_PID = 0x0035
# handler called when a report is received
def rx_handler(data):
print ('recv: ', data)
def scan_hiddevice():
""" Scans for and returns the HID device. """
devices = hid.HidDeviceFilter( vendor_id = DEVICE_DEFAULT_VID, product_id = DEVICE_DEFAULT_PID ).get_devices()
if not devices:
print ("scan_hiddevice: No device connected.")
return None
else:
device = devices[0]
print("scan_hiddevice: found %s", device )
print(device)
return device
return None
def setup_hiddevice():
"""Creates a new HID device, opens it and attaches a receive data handler"""
hid_device = scan_hiddevice()
print("here")
hid_device.set_raw_data_handler(rx_handler)
hid_device.open()
print(hid_device)
return hid_device
def main(verbose=True):
hid_device = setup_hiddevice()
while (True):
#wait for data
1 == 1
main()
Alıntı yapılan: robikod - 09 Kasım 2022, 20:54:25Biraz uğraştım aşağıdaki gibi bir kod oluşturdum. scan_hiddevice doğru bir şekilde dönüyor fakat, rx_handler ile rfid'nin bana döndürdüğü tagleri okuyamıyorum. Bu fonksiyona hiç gelmiyor neden olabilir sizce ?
import pywinusb.hid as hid
DEVICE_DEFAULT_VID = 0xffff
DEVICE_DEFAULT_PID = 0x0035
# handler called when a report is received
def rx_handler(data):
print ('recv: ', data)
def scan_hiddevice():
""" Scans for and returns the HID device. """
devices = hid.HidDeviceFilter( vendor_id = DEVICE_DEFAULT_VID, product_id = DEVICE_DEFAULT_PID ).get_devices()
if not devices:
print ("scan_hiddevice: No device connected.")
return None
else:
device = devices[0]
print("scan_hiddevice: found %s", device )
print(device)
return device
return None
def setup_hiddevice():
"""Creates a new HID device, opens it and attaches a receive data handler"""
hid_device = scan_hiddevice()
print("here")
hid_device.set_raw_data_handler(rx_handler)
hid_device.open()
print(hid_device)
return hid_device
def main(verbose=True):
hid_device = setup_hiddevice()
while (True):
#wait for data
1 == 1
main()
Bu program çalışırken de aynı zamanda rfid den okunan değerler ekrana yazmaya devam ediyor. Fakat pythondan okuyamıyorum