Oui, bien d'accord, GIT n'est qu'une repository.Le GIT c'est pas degeu; ce n'est qu'un outil![]()
C'est la solution qui est dégeu ! Enfin, au vu du

Dsl... je dors pas beaucoup en ce moment... ya un module qui me fait *****biiiiiiip****.

Modérateur : Francois
Oui, bien d'accord, GIT n'est qu'une repository.Le GIT c'est pas degeu; ce n'est qu'un outil![]()
Code : Tout sélectionner
sudo apt-get install python-dev
Code : Tout sélectionner
git clone https://github.com/lthiery/SPI-Py
sudo python setup.py install
Code : Tout sélectionner
git clone https://github.com/mxgxw/MFRC522-python
Code : Tout sélectionner
sudo python Read.py
Bonjour,vague nerd a écrit :Ceci à fonctionné direct (en moins de 5 minutes, solution degeu, donc).
...
La distance de détection me fait un peu peur quand même. C'était destiné à être recouvert de quelque chose d'étanche, genre boite au lettre...
C'est clair ! Enfin, surtout de la manière dont je compte l'utiliserIl ne faut surtout pas considérer le RFID comme une solution de sécurité.
Code : Tout sélectionner
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import MFRC522
import signal
import time
import json
continue_reading = True
# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
global continue_reading
print "Ctrl+C captured, ending read."
continue_reading = False
GPIO.cleanup()
def check_uid(uid):
global uids
#print uid
if uid in uids:
return True
else:
return False
def read_uids():
global uids
uids = json.load(open('uids.json'))
uids = []
read_uids()
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# Welcome message
print "Press Ctrl-C to stop."
GPIO.setmode(GPIO.BOARD)
GPIO.setup(37, GPIO.OUT)
GPIO.setup(40, GPIO.OUT)
GPIO.output(37, False)
GPIO.output(40, False)
# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:
# Scan for cards
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
# If a card is found
#if status == MIFAREReader.MI_OK:
# print "Card detected"
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll()
# If we have the UID, continue
if status == MIFAREReader.MI_OK:
if check_uid(uid):
GPIO.output(37, True)
else:
GPIO.output(40, True)
time.sleep(1)
GPIO.output(37, False)
GPIO.output(40, False)
#GPIO.cleanup()
Bonjour,vague nerd a écrit : ...
Par contre, le programme boucle sans temporisation (sleep). Je me demande s'il ne serait pas judicieux d'en ajouter un (très faible pour ne pas que ça se remarque), pour que le pi ne soit pas tout le temps occupé à faire des if qui seront le plus souvent insatisfait. Genre time.sleep(0.1). Qu'en pensez-vous ?
Cdt.
AMHA aussi, mais je n'ai pas trouvé comment faire... mais je n'ai pas beaucoup cherché. En plus, il y a un pin inutilisé sur le module, c'est peut-être à cela qu'il sert (et là, pas regardé du tout).AMHA, la solution élégante est l'utilisation des interruptions.
Code : Tout sélectionner
GPIO.add_event_detect(24, GPIO.RISING, callback=my_callback)
Code : Tout sélectionner
receivedCount = 0
def checkInput(arg):
global receivedCount
receivedCount = receivedCount+1
print "(" + str(receivedCount) + ")received !"
GPIO.setup(38, GPIO.IN)
GPIO.add_event_detect(38, GPIO.RISING, callback=checkInput)
Sans time.sleep(), rien.
Avec time.sleep(1) :
[code](1)received !
(2)received !
(3)received !
(4)received !
(5)received !
...
(96)received !
(97)received !
(98)received !
(99)received !
(100)received !
Bonsoir,vague nerd a écrit : ...
Merci pour m'avoir chalangé !
...
Edit 4 : A la lecture du datasheet, on et en 3V sur le pin irq en sortie. Je vais donc tenter de cabler pour voir si j'arrive à gérer l'interuption...
J'espère rien bruller...