Bonjour, j'ai un programme qui détecte un mouvement avec un détecteur PIR. Lors de la détection, je lance un fonction de lecture sur une antenne RFID. Si la personne possède une carte RFID valide tout va bien. Je n'ai pas mis tout le code, car je vais vérifier dans une base de donnée, mais ce n'est pas utile pour mon problème. Le problème est que si la personne est détecté avec le détecteur PIR et qu'elle n'a pas de carte RFID, la fonction lire attend la lecture d'une carte RFID. J'aimerais savoir comment je peux contourner ce problème de fonction qui bloque. j'aimerais que si il y a détection avec le PIR et que la personne n'a pas de RFID, que le programme continue avec exemple allumer une lumière rouge. J'espère être asser clair dans ma question. Voici le code simplifié. J'ai besoin de savoir si il y a une fonction ou un truc quelconque qui permettrais d'empêcher la fonction de bloquer en attendant la lecture d'une carte RFID. Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 import RPi.GPIO as GPIO from mfrc522 import SimpleMFRC522 import time CardReader = SimpleMFRC522() print ('Scanning for a card..') print ('to cancel press ctrl+c') def lire(): try: id, text = CardReader.read() print (id) print(text) except KeyboardInterrupt: print("arret clavier") finally: GPIO.cleanup() def detection(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN) #Read output from PIR motion sensor GPIO.setup(3, GPIO.OUT) #LED output pin i=GPIO.input(11) if i==0: #When output from motion sensor is LOW print("No intruders"),i GPIO.output(3, 0) #Turn OFF LED time.sleep(0.1) elif i==1: #When output from motion sensor is HIGH print("Intruder detected"),i GPIO.output(3, 1) #Turn ON LED lire() time.sleep(0.1) while True: detection()
Partager