fr:rfid_access

Cela pourrait être par exemple l'édition d'un log, ou l'ouverture d'une gâche électrique pour ouvrir l'armoire de votre installation. A vous d'ajouter des actions en dessous de print pour qu'elles soient exécutées. Vous pouvez ajouter autant d'accès que vous le souhaitez, en insérant des lignes:

elif ss= xyzxyzxyz, où xyzxyzxyz est le code de votre puce.

Le lecteur RFID est un lecteur USB qui se trouve par exemple chez amazon

| read_rfid.py
# source code on https://www.raspberrypi.org/forums/viewtopic.php?f=45&t=55100
import sys
 
hid = { 4: 'a', 5: 'b', 6: 'c', 7: 'd', 8: 'e', 9: 'f', 10: 'g', 11: 'h', 12: 'i', 13: 'j', 14: 'k', 15: 'l', 16: 'm', 17: 'n', 18: 'o', 19: 'p', 20: 'q', 21: 'r', 22: 's', 23: 't', 24: 'u', 25: 'v', 26: 'w', 27: 'x', 28: 'y', 29: 'z', 30: '1', 31: '2', 32: '3', 33: '4', 34: '5', 35: '6', 36: '7', 37: '8', 38: '9', 39: '0', 44: ' ', 45: '-', 46: '=', 47: '[', 48: ']', 49: '\\', 51: ';' , 52: '\'', 53: '~', 54: ',', 55: '.', 56: '/'  }
 
hid2 = { 4: 'A', 5: 'B', 6: 'C', 7: 'D', 8: 'E', 9: 'F', 10: 'G', 11: 'H', 12: 'I', 13: 'J', 14: 'K', 15: 'L', 16: 'M', 17: 'N', 18: 'O', 19: 'P', 20: 'Q', 21: 'R', 22: 'S', 23: 'T', 24: 'U', 25: 'V', 26: 'W', 27: 'X', 28: 'Y', 29: 'Z', 30: '!', 31: '@', 32: '#', 33: '$', 34: '%', 35: '^', 36: '&', 37: '*', 38: '(', 39: ')', 44: ' ', 45: '_', 46: '+', 47: '{', 48: '}', 49: '|', 51: ':' , 52: '"', 53: '~', 54: '<', 55: '>', 56: '?'  }
 
#hidraw1 = port of USB reader
fp = open('/dev/hidraw1', 'rb')
 
try:
   while 1:
 
      ss = ""
      shift = False
 
      done = False
 
      while not done:
 
         ## Get the character from the HID
         buffer = fp.read(8)
         for c in buffer:
            if ord(c) > 0:
 
            ##  40 is carriage return which signifies
            ##  we are done looking for characters
               if int(ord(c)) == 40:
                  done = True
                  break;
 
            ##  If we are shifted then we have to 
            ##  use the hid2 characters.
               if shift:
 
               ## If it is a '2' then it is the shift key
                  if int(ord(c)) == 2 :
                     shift = True
 
               ## if not a 2 then lookup the mapping
                  else:
                     ss += hid2[ int(ord(c)) ]
                     shift = False
 
            ##  If we are not shifted then use
            ##  the hid characters
 
               else:
 
               ## If it is a '2' then it is the shift key
                  if int(ord(c)) == 2 :
                     shift = True
 
               ## if not a 2 then lookup the mapping
                  else:
                     ss += hid[ int(ord(c)) ]
      print ss
      if ss == "0006322501":
         print "BONJOUR F5UII"
      elif ss == "0004686024":
         print "BONJOUR F8ASB"
      elif ss == "0005746718":
         print "BONJOUR F4BKE"
      else: 
        print "VOUS N'ETES PAS AUTORISE"
 
except KeyboardInterrupt:
    print "Caught interrupt, exiting..."
    print "Unexpected error:", sys.exc_info()[0]
    raise
  • fr/rfid_access.txt
  • Dernière modification: 2020/07/05 17:12
  • (modification externe)