Tijd & aanwezigheid systeem met framboos en Phidgets (3 / 3 stap)

Stap 3: Rfid-tags


We zullen een eenvoudig tekstbestand gebruiken voor het opslaan van de RFID-tag. Met een Python-script zullen we de tag lezen en als het bestand het bevat, wij een nieuwe rij worden vastgelegd in het bestand attendance.txt.  Op hetzelfde moment stuurt het script een bericht weer te geven.

Maak een nieuw bestand /home/pi/tag.txt met sommige codes

Maak een nieuw bestand /home/pi/attendance.txt waarop we de bewegingen inkomende en uitgaande zal bewaren

Maak het bestand /home/pi/rfid.py met deze inhoud

 #!/usr/bin/env python #Basic imports from ctypes import * import sys import time import datetime import urllib2 import urllib #Phidget specific imports from Phidgets.PhidgetException import PhidgetErrorCodes, PhidgetException from Phidgets.Events.Events import AttachEventArgs, DetachEventArgs, ErrorEventArgs, OutputChangeEventArgs, TagEventArgs from Phidgets.Devices.RFID import RFID, RFIDTagProtocol tagsList=list() tagStatus=list() with open('tag.txt') as f: tagsList = f.read().splitlines() for index in range(len(tagsList)): tagStatus.append(0) #Create an RFID object try: rfid = RFID() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) #Information Display Function def displayDeviceInfo(): print("|------------|----------------------------------|--------------|------------|") print("|- Attached -|- Type -|- Serial No. -|- Version -|") print("|------------|----------------------------------|--------------|------------|") print("|- %8s -|- %30s -|- %10d -|- %8d -|" % (rfid.isAttached(), rfid.getDeviceName(), rfid.getSerialNum(), rfid.getDeviceVersion())) print("|------------|----------------------------------|--------------|------------|") print("Number of outputs: %i -- Antenna Status: %s -- Onboard LED Status: %s" % (rfid.getOutputCount(), rfid.getAntennaOn(), rfid.getLEDOn())) #Event Handler Callback Functions def rfidAttached(e): attached = e.device print("RFID %i Attached!" % (attached.getSerialNum())) def rfidDetached(e): detached = e.device print("RFID %i Detached!" % (detached.getSerialNum())) def rfidError(e): try: source = e.device print("RFID %i: Phidget Error %i: %s" % (source.getSerialNum(), e.eCode, e.description)) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) def rfidOutputChanged(e): source = e.device print("RFID %i: Output %i State: %s" % (source.getSerialNum(), e.index, e.state)) def rfidTagGained(e): source = e.device rfid.setLEDOn(1) try: if tagStatus[tagsList.index(e.tag)]==0: postdata="Welcome, have a good day" tagStatus[tagsList.index(e.tag)]=1 else: postdata="Hi, see you tomorrow" tagStatus[tagsList.index(e.tag)]=0 if e.tag in tagsList: query_args={'direction':postdata} url='http://localhost/web/message.php' user_agent = 'Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4' headers = { 'User-Agent' : user_agent } data=urllib.urlencode(query_args) request=urllib2.Request(url,data,headers) request.add_header('Referer', 'http://localhost/web/') response=urllib2.urlopen(request).read() now = datetime.datetime.now() fh = open("/home/pi/attendance.txt", "a") #fh.write(now.strftime('%s')) #fh.write(";{};{};\n".format( tagStatus[tagsList.index(e.tag)], e.tag )) fh.write("{};{};{};\n".format( now.strftime('%s'), tagStatus[tagsList.index(e.tag)], e.tag )) fh.close except ValueError: print("Error unknown tag %s" % (e.tag)) def rfidTagLost(e): source = e.device rfid.setLEDOn(0) time.sleep(2) postdata="Ready.." query_args={'direction':postdata} url='http://localhost/web/message.php' user_agent = 'Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4' headers = { 'User-Agent' : user_agent } data=urllib.urlencode(query_args) request=urllib2.Request(url,data,headers) request.add_header('Referer', 'http://localhost/web/') response=urllib2.urlopen(request).read() #Main Program Code try: rfid.setOnAttachHandler(rfidAttached) rfid.setOnDetachHandler(rfidDetached) rfid.setOnErrorhandler(rfidError) rfid.setOnOutputChangeHandler(rfidOutputChanged) rfid.setOnTagHandler(rfidTagGained) rfid.setOnTagLostHandler(rfidTagLost) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Opening phidget object....") try: rfid.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Waiting for attach....") try: rfid.waitForAttach(10000) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) try: rfid.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Exiting....") exit(1) else: displayDeviceInfo() print("Turning on the RFID antenna....") rfid.setAntennaOn(True) print("Press Enter to quit....") chr = sys.stdin.read(1) try: lastTag = rfid.getLastTag() print("Last Tag: %s" % (lastTag)) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Closing...") try: rfid.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Done.") exit(0) 

Het script uitvoeren

 sudo python /home/pi/rfid.py 

De RFID-lezer is uitgesteld, als een welkom bericht naderen van een tag de monitor verschijnt.

Op hetzelfde moment het script opslaan een nieuwe rij in attendance.txt.

Een variabele wordt de status van dat label opgeslagen en naderen terug dezelfde tag het zal tonen een boodschap van begroeting naar de uitgang

Gerelateerde Artikelen

Aanwezigheid systeem met behulp van Raspberry Pi en NFC Tag reader

Aanwezigheid systeem met behulp van Raspberry Pi en NFC Tag reader

met mijn nieuwe speeltje Raspberry pi ik heb gedaan met het testen van verschillende projecten uitInstructables, adafruit enz. Maar na een tijdje werd het saai en ik ben begonnen op zoek naar iets echt nuttig voor mij. Mijn vorige speeltuin was mijn
Automatisch sproeisysteem systeem met capacitieve sonde en Arduino op de goedkope (en ik bedoel het)

Automatisch sproeisysteem systeem met capacitieve sonde en Arduino op de goedkope (en ik bedoel het)

Disclaimer: Ik ben geen ingenieur elektronica, dus kan ik niet garantie voor het ontwerp (veel minder voor uw implementatie bieden). Ik weet alleen de gepresenteerde oplossing werkte voor mij voor ten minste ongeveer 5-6 maanden (dus ik kan niet zelf
Slimme aanwezigheid systeem (Intel Edison binnen)

Slimme aanwezigheid systeem (Intel Edison binnen)

Slimme aanwezigheid systeem heeft ontwikkeld op basis van RFID & Intel Edison Board voor aanwezigheid beheerstoepassing voor kantoren, scholen en instituten. Dit systeem is zeer makkelijk te gebruiken, student of werknemer zal dragen een RFID kaart t
Zonne-energie systeem met Up-fietste componenten.

Zonne-energie systeem met Up-fietste componenten.

Omvang van Project.Het doel van dit project is te monteren en installeren van een stand alleen zonne-energie systeem (foto-voltaïsche of PV). Mijn doel is om 2 LED lampen in armaturen uitvoert op mijn werkbank en kosten/bijhoudt met mijn power tool b
Lage begroting tijd vervallen camera met DigiSpark

Lage begroting tijd vervallen camera met DigiSpark

SLEUTELHANGER CAMERAEste proyecto tambien esta disponible nl Español haciendo clic aquiDeze diminute mini camera's werden gebouwd in meerdere formulieren zoals sleutelhangers, GOM pack, pen, sigarettenaansteker, enz. Allemaal in principe hebben een C
DIY verticale van de Aquaponic systeem met luchtpomp landbouw

DIY verticale van de Aquaponic systeem met luchtpomp landbouw

Heb een project combineren-Hydrocultuur systeem;-Aqua-cultuur systeem;-Lucht-Lift technologie;Voordelen-Recycleren hergebruik + verminderen van afval (frisdrank flessen) nuttig groeien bedden,-Verticale landbouw regeling dat opslaan voet, afdrukken i
Eenvoudige Batchfile Login systeem met laden Bar

Eenvoudige Batchfile Login systeem met laden Bar

hier delen we Batch-bestand voor login systeem met laden bar.Wij zullen tonen u code en ook laten zien hoe je gebruik.U kunt ook het bezoeken van onze blog voor meer batch bestand codes.FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1
Vinden van tijd om zonsopgang met ster kaarten

Vinden van tijd om zonsopgang met ster kaarten

door tonytran2015 (Melbourne, Australië).Vinden van tijd om zonsopgang is nodig voor het reizen door woestijnen zoals de reizigers worden op tijd willen kunnen om te voorkomen dat de extreme hitte en kou. Het is ook nodig door lange afstand handelare
SMS gebaseerde Home Automation systeem met behulp van 1SHEELD

SMS gebaseerde Home Automation systeem met behulp van 1SHEELD

Hey vrienden, dit mijn eerste instructable en net draaide 16 jr oude twee maanden geleden.In dit instructable zal ik laten zien hoe maak je 5 kanaals SMS op basis van Home Automation systeem met behulp van 1sheeld. Ik heb mijn eigen goedkope SSRs tri
Arduino - drenken systeem met TFT LCD weerstation Monitor Plant

Arduino - drenken systeem met TFT LCD weerstation Monitor Plant

Hallo peepz, ik heb een Prototype Plant water geven systeem met weerstation op een TFT LCD-scherm voor de binnenkweek.Natuurlijk kunt u het wilt gebruiken buiten te bouwen.Deze projecten werken maar is gewoon de basis voor een groter project... vanaf
Intelligente drenken systeem met arduino...

Intelligente drenken systeem met arduino...

In dit instructable ik wilde delen mijn automatische irrigatiesysteem met behulp van de arduino, bodem vochtigheid sensor en een eenvoudig aquarium klep aangesloten op een servo... Vochtigheid sensor neemt voortdurend lezingen van het bodemvocht en b
Bedien uw licht systeem met behulp van uw smart phone

Bedien uw licht systeem met behulp van uw smart phone

Nu u uw verlichtingssysteem in uw huis kunt met behulp van uw smart phone door het schrijven van een karakter-de LED inschakelen of uitschakelenStap 1: Het idee van het projectHet idee van het project is om te bewijzen dat u kunt uw verlichting van h
Met behulp van de sensor van de vingerafdruk voor tijd aanwezigheid in combinatie met xAMP oplossing

Met behulp van de sensor van de vingerafdruk voor tijd aanwezigheid in combinatie met xAMP oplossing

Voor een schoolproject, waren we op zoek naar een oplossing op de aanwezigheid van studenten bijhouden. Veel van onze studenten laat komen. Het is een vervelende baan controleren van hun aanwezigheid. Aan de andere kant, is er een heleboel discussie
55 gallon food grade vat Aquaponic systeem met tank venster

55 gallon food grade vat Aquaponic systeem met tank venster

Voor dit project, zal u het volgende nodig:Twee food grade 55 gallon vaten, moet men hele, onder 12" moet intact (ten minste) op tweede vateen doos van 1/4" met (1/2" lang) RVS vervoer bouten (moet worden roestvrij staal) hoeft u niet allem