Autorisierte Online-Händler:

Kaufen Sie aus den USA Kaufen Sie aus dem Vereinigten Königreich Kaufen Sie aus Deutschland Kaufen Sie aus Italien Kaufen Sie aus Frankreich Kaufen Sie aus Spanien ここでご購入を!

Ein RFID-Leser ist ein sehr beliebtes Gerät in Sicherheitssystemen. Er kann die ID einer RFID-Karte lesen und an ein Computersystem senden.

In dieser Lektion verwenden wir den OSOYOO RFID-Leser, um ein einfaches Sicherheitsüberprüfungssystem zu erstellen. Dieser RFID-Leser wird ein neues Kommunikationsprotokoll namens SPI verwenden, um Daten an den Pico zu senden. Nach Abschluss dieser Lektion haben Sie drei Arten von Kommunikationsprotokollen kennengelernt: SPI, I2C und Serial (RS232). Der Geschwindigkeitsvergleich zwischen diesen drei Methoden ist wie folgt: SPI > I2C > Serial.

Da wir in diesem Projekt viele Pins verwenden werden, haben wir hier die Pico-Pin-Map zur Verfügung gestellt, um Benutzern zu helfen, die richtigen Pins zu finden.

1.Raspberry Pi Pico Board und MicroUSB-Kabel

2.Ein Computer zum Ausführen der Thonny Python-IDE

3.Ein Steckbrett

4.LED x 2 Stück

5.220 Ω Widerstand x 2 Stück

6.Aktivierbarer Piepser

7.OSOYOO RFID-Leser x 1 Stück

8.Einige Jumper-Drähte

Im obigen Schaltungsdiagramm sehen Sie das:

Pico Pins RFID Pins
GP5 SDA
GP6 SCK
GP7 MOSI
GP4 MISO
IRQ
GND GND
GP18 RST
3.3V 3.3V
Pico Pins Devices
GP14 Red LED through 220ohm resistor
GP15 Green LED through 220ohm resistor
GP16 Buzzer I/O pin

Sie können den Python-Code der Lektion 7 von https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip herunterladen.

Später können Sie Thonny verwenden, um pico-lesson7.py zu öffnen und auf den Pico zu laden.

Hier ist der vollständige Code mit Kommentaren:

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)


Schritt 1: Verbinden Sie das Pico-Board mit einem der USB-Anschlüsse Ihres PCs.
Schritt 2: Wenn Sie die Thonny-Software noch nicht installiert haben oder nicht wissen, wie Sie die Thonny-IDE verwenden sollen, lesen Sie bitte Lektion 1.

Schritt 3: Öffnen Sie nun die Thonny Python-IDE und klicken Sie auf “Ausführen”, um MicroPython für Raspberry Pi Pico als Interpreter auszuwählen.

Wählen Sie auch den COM-Port aus, an den Ihr Pico-Board angeschlossen ist.:

Klicken Sie anschließend auf “OK”, um die Einstellungen zu speichern.

Schritt 4: Laden Sie nun den Code von https://osoyoo.com/driver/pico/lesson7/pico-lesson7.zip herunter, speichern Sie ihn auf Ihrem lokalen PC und entpacken Sie die Datei. Sie finden zwei Dateien: mfrc522.py und pico-lesson7.py. Öffnen Sie die Bibliotheksdatei mfrc522.py mit Thonny.

Schritt 5: Klicken Sie dann auf “Datei” -> “Speichern unter”.

Schritt 6: Wählen Sie dann “Raspberry Pi Pico” als Ziel aus.

Schritt 7: Geben Sie den Dateinamen als “mfrc522.py” ein. Klicken Sie danach auf “OK”, um die Einstellungen zu speichern.

Dann verwenden Sie Thonny, um eine andere Datei namens pico-lesson7.py zu öffnen, klicken Sie auf das kleine ►-Symbol, um den Python-Code auszuführen.

Sie müssen drei verschiedene RFID-Karten vorbereiten. Berühren Sie jede Karte auf dem Leser, und Sie sehen ihre ID, wie “0xd71d9a52” und “invalid card”, im Shell-Fenster. Auch die rote LED wird eingeschaltet, und der Summer wird einen langen Piepton abgeben. Dies liegt daran, dass die aktuellen Karten-IDs nicht mit den IDs in den Zeilen 14 und 15 übereinstimmen. Bitte ändern Sie die Zeilen 14 und 15 in die IDs Ihrer Karte 1 und Karte 2 und klicken Sie dann erneut auf das ►-Symbol, um den Code auszuführen.

Jetzt sehen Sie, dass wenn Sie Karte 1 auf den Leser legen, es die Nachricht “Karte 1 erkannt”, einen kurzen Piepton und ein grünes Licht auslöst. Wenn Sie Karte 2 auf den Leser legen, zeigt das Shell-Fenster “Karte 2 erkannt”, zwei kurze Pieptöne und ein grünes Licht an.

Nach Abschluss der Operation drücken Sie Strg+C, um den Befehl zu beenden.

 

ERFAHREN SIE MEHR ÜBER DEN TEILE-SKU 2021005900

Nummer Bild Produktname Link
1 Raspberry Pi Pico-Karte 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 Servomotor https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Infrarot-Sensor-Modul https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 RFID-Modul und Karte https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Druckknöpfe und Hüte https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED (6 x Weiß, 6 x Rot, 6 x Gelb, 6x Grün) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Piezo-Summer-Modul https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
8 I2C LCD-Anzeige (16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
9 Kreuzschlitzschraubendreher https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
10 Lötfreies Prototypen-Breadboard https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
11 Potentiometer (einstellbarer 10K-Widerstand) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
12 40Pin M zu M Brückenkabel https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
13 20-poliges M zu F Jumper-Kabel, 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327