Distributeurs en ligne autorisés:

Acheter aux États-Unis Acheter au Royaume-Uni Acheter en Allemagne Acheter en Italie Acheter en France Acheter en Espagne ここでご購入を!

Un lecteur RFID est un dispositif très populaire dans les systèmes de sécurité. Il peut lire l’identifiant d’une carte RFID et l’envoyer à un système informatique.

Dans cette leçon, nous utiliserons le lecteur RFID OSOYOO pour créer un système de vérification de sécurité simple. Ce lecteur RFID utilisera un nouveau protocole de communication appelé SPI pour envoyer des données au Pico. Après avoir terminé cette leçon, vous aurez appris sur trois types de protocoles de communication: SPI, I2C et Série (RS232). La comparaison de vitesse entre ces trois méthodes est la suivante: SPI > I2C > Série.

Comme nous utiliserons de nombreux broches dans ce projet, nous avons inclus la carte des broches du Pico ici pour aider les utilisateurs à localiser les broches appropriées.

  1. Carte Raspberry Pi Pico et câble microUSB
  2. Un ordinateur pour exécuter l’IDE Python Thonny
  3. Une plaque d’essai
  4. LED x 2 pcs
  5. Résistance 220 Ω x 2 pcs
  6. Buzzer négatif activé
  7. Lecteur RFID OSOYOO x 1 pc
  8. Des fils de cavalier

Dans le graphique ci-dessus, vous pouvez voir que :

Pico Pins Épingles RFID
GP5 SDA
GP6 SCK
GP7 MOSI
GP4 MISO
IRQ
GND GND
GP18 RST
3.3V 3.3V
Pico Pins Dispositifs
GP14 LED rouge à travers une résistance de 220 ohms
GP15 LED verte à travers une résistance de 220 ohms
GP16 Buzzer I/O pin

Vous pouvez télécharger le code Python de la leçon 7 à partir de https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip.

Plus tard, vous pouvez utiliser Thonny pour ouvrir pico-lesson7.py et le charger sur le Pico.

Voici le code complet avec des commentaires.

import time
from machine import I2C, Pin, SPI #import I2C,Pin,SPI library
from mfrc522 import MFRC522 #import RFID reader library
buzzer= Pin(16, Pin.OUT) #set buzzer to GP16
buzzer.value(1)
true = Pin(15, Pin.OUT)  #set Green LED to GP15
false = Pin(14, Pin.OUT) #set Red LED to GP14
sck = Pin(6, Pin.OUT)    #set RFID sck to GP6
mosi = Pin(7, Pin.OUT)   #set RFID mosi to GP7
miso = Pin(4, Pin.OUT)   #set RFID miso to GP4 
sda = Pin(5, Pin.OUT)    #set RFID sda to GP5 
rst = Pin(18, Pin.OUT)   #set RFID rst to GP18
spi = SPI(0, baudrate=100000, polarity=0, phase=0, sck=sck, mosi=mosi, miso=miso) #initial SPI 
card1 = "0xe58a6223" #change this value to match your testing RFID card 1
card2 = "0xf765bd60" #change this value to match your testing RFID card 2

while True:
    rdr = MFRC522(spi, sda, rst) #initialize reader
    (stat, tag_type) = rdr.request(rdr.REQIDL) #read card ud
    if stat == rdr.OK:
        (stat, raw_uid) = rdr.anticoll()
        if stat == rdr.OK:
            uid = ("0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3]))
            print(uid)
            if uid == card1: #if ID matches card 1, buzzer beep once, turn on Green LED
                print("card 1 detected!")
                buzzer.value(0)
                time.sleep(0.3)
                buzzer.value(1)
                true.value(1)
                time.sleep(1)
                true.value(0)
                time.sleep(1)
            elif uid == card2:
                print("card 2 detected!")  #if ID matches card 2, buzzer beep twice, turn on Green LED
                buzzer.value(0)
                time.sleep(0.3)
                buzzer.value(1)
                time.sleep(0.3)
                buzzer.value(0)
                time.sleep(0.3)
                buzzer.value(1)
                true.value(1)
                time.sleep(1)
                true.value(0)
                time.sleep(1)
            else:  #if ID doesn't match any card, long beep, turn on Red LED
                print("invalid card!")
                buzzer.value(0)
                time.sleep(2)
                buzzer.value(1)
                false.value(1)
                time.sleep(0.1)
                false.value(0)
                time.sleep(0.1)
                false.value(1)
                time.sleep(0.1)
                false.value(0)
                time.sleep(0.1)
                false.value(1)
                time.sleep(0.1)
                false.value(0)
                time.sleep(1)


Étape 1: Connectez la carte Pico à l’un des ports USB de votre PC.
Étape 2: Si vous n’avez pas installé le logiciel Thonny ou si vous ne savez pas comment utiliser l’IDE Thonny, veuillez lire la leçon 1.

Étape 3: Ouvrez maintenant l’IDE Python Thonny et cliquez sur “Exécuter” pour sélectionner MicroPython pour Raspberry Pi Pico comme interpréteur.

Veuillez également sélectionner le port COM auquel votre carte Pico est connectée.

Ensuite, cliquez sur “OK” pour enregistrer les paramètres.

Étape 4: Téléchargez maintenant le code depuis https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip, enregistrez-le sur votre PC local, puis décompressez le fichier. Vous trouverez deux fichiers : mfrc522.py et pico-lesson7.py. Utilisez Thonny pour ouvrir le fichier de bibliothèque mfrc522.py.

Étape 5: Cliquez ensuite sur “Fichier” -> “Enregistrer sous”.

Étape 6: Sélectionnez ensuite “Raspberry Pi Pico” comme destination.

Étape 7: Écrivez le nom de fichier comme “mfrc522.py”.

Ensuite, cliquez sur “OK” pour enregistrer les paramètres. Ensuite, utilisez Thonny pour ouvrir un autre fichier, pico-lesson7.py, cliquez sur le petit bouton ► pour exécuter le code Python.

Vous devez préparer trois cartes RFID différentes. Touchez chaque carte sur le lecteur, et vous verrez son ID, comme “0xd71d9a52” et “carte invalide”, dans la fenêtre de commande. De plus, la LED rouge s’allumera et le buzzer émettra un long bip. Cela est dû au fait que les ID de carte actuelles ne correspondent à aucun ID des lignes 14 et 15. Veuillez modifier les lignes 14 et 15 avec les ID de votre carte 1 et de votre carte 2, puis cliquez sur le bouton ► pour exécuter à nouveau.

Maintenant, vous verrez que lorsque vous mettez la carte 1 sur le lecteur, elle déclenchera le message “carte 1 détectée”, un court bip et une lumière verte. Lorsque vous mettez la carte 2 sur le lecteur, la fenêtre de commande affichera “carte 2 détectée”, deux bips courts et une lumière verte.

Une fois l’opération terminée, appuyez sur Ctrl+C pour mettre fin à la commande.

EN SAVOIR PLUS SUR LES PIÈCES SKU:2021005900

Non. Photo Nom du produit Lien
1 Carte Pico Raspberry Pi https://osoyoo.store/products/raspberry-pi-pico-flexible-microcontroller-board-based-on-the-raspberry-pi-rp2040-dual-core-arm-cortex-m0-processor-1-pc?variant=39875307864175
2 Servomoteur https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Module capteur infrarouge https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 Module et carte RFID https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Boutons-poussoirs et chapeaux https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED (6 x blanc, 6 x rouge, 6 x jaune, 6 x vert) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Module Buzzer Piézo https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
8 Écran LCD I2C (16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
9 Tournevis cruciforme https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
10 Plaque d’essai sans soudure pour prototypage https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
11 Potentionmètre (résistance réglable de 10K) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
12 40Pin M to M Jumper Wires (fils de cavalier) https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
13 20Pin M to F Fils de pontage 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327