Utilisation du PN532 avec le Raspberry Pi

Using the PN532 with the Raspberry Pi

Le PN532 est un module NFC polyvalent (communication en champ proche) qui peut être utilisé pour la lecture et l'écriture de balises NFC, ainsi que pour la mise en œuvre des systèmes RFID. L'utilisation du PN532 avec un Raspberry Pi vous permet d'intégrer des capacités NFC dans vos projets pour des applications telles que le contrôle d'accès, les paiements sans contact et les appareils IoT. Ce guide vous guide à travers la configuration et l'utilisation du PN532 avec un Raspberry Pi.


Ce dont vous aurez besoin

  1. Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
  2. Module PN532 NFC
  3. Fils de planche à pain et de cavalier
  4. Un ordinateur avec un accès SSH au Raspberry Pi ou un clavier et un moniteur connectés
  5. Python installé sur le Raspberry Pi

Étape 1: Câblage du PN532 au Raspberry Pi

Le module PN532 prend en charge plusieurs protocoles de communication, y compris I2C, SPI et UART. Ce guide utilise l'interface I2C pour la simplicité.

Connexions (mode I2C)

Pin PN532 Pin de framboise PI
VCC 3.3V (broche 1)
GND Terre (broche 6)
SDA SDA (broche 3, gpio2)
SCL SCL (broche 5, gpio3)
Sel0 GND
SEL1 VCC

Note: Les broches SEL0 et SEL1 déterminent le mode de communication. La connexion SEL0 à GND et SEL1 à VCC sélectionne le mode I2C.


Étape 2: Activez l'interface I2C sur le Raspberry Pi

  1. Ouvrez l'outil de configuration Raspberry Pi:
    sudo raspi-config
    
  2. Se diriger vers Options d'interface> I2C et l'activer.
  3. Redémarrez le Raspberry Pi:
    sudo reboot
    

Étape 3: Installez les outils et les bibliothèques requises

  1. Mettez à jour votre Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installez les outils I2C:
    sudo apt install -y i2c-tools
    
  3. Installez les bibliothèques Python pour la communication I2C et la fonctionnalité PN532:
    pip install adafruit-circuitpython-pn532
    

Étape 4: Vérifiez la connexion

  1. Utiliser i2cdetect Pour vérifier que le PN532 est détecté sur le bus I2C:
    sudo i2cdetect -y 1
    
  2. Vous devriez voir le PN532 à l'adresse 0x24 ou 0x48. Sinon:
    • Vérifiez votre câblage.
    • Assurez-vous que le PN532 est alimenté.

Étape 5: Lire les balises NFC avec Python

Le script Python suivant montre comment lire les balises NFC à l'aide du PN532.

Exemple de code python

import board
import busio
from adafruit_pn532.i2c import PN532_I2C

# I2C connection setup
i2c = busio.I2C(board.SCL, board.SDA)
pn532 = PN532_I2C(i2c, debug=False)

# Configure PN532 to read NFC tags
pn532.SAM_configuration()

print("Waiting for an NFC tag...")

while True:
    uid = pn532.read_passive_target(timeout=0.5)
    if uid is not None:
        print(f"Found NFC tag with UID: {uid.hex()}")

Étape 6: Applications du PN532

  1. Contrôle d'accès: Créez un système de verrouillage de porte basé sur NFC.
  2. Paiements sans contact: Simuler les systèmes de paiement avec les cartes NFC.
  3. Projets IoT: Utilisez des balises NFC pour déclencher des événements d'automatisation.
  4. Dogging des données: Écrivez des données sur des balises NFC à des fins d'inventaire ou de suivi.

Dépannage

  1. Dispositif non détecté:

    • Vérifiez les connexions SDA et SCL.
    • Assurez-vous que l'interface I2C est activée sur le Raspberry Pi.
    • Vérifiez la configuration SEL0 et SEL1 PIN pour le mode I2C.
  2. Read Errors:

    • Ensure the NFC tag is within range of the PN532.
    • Check for interference from metal objects or other electronic devices.
  3. Erreurs I2C:

    • Assurez-vous qu'il n'y a pas d'appareils contradictoires sur le bus I2C.

Conclusion

The PN532 NFC module is a versatile tool for adding NFC and RFID capabilities to your Raspberry Pi projects. En suivant ce guide, vous pouvez configurer et utiliser le PN532 pour des applications telles que le contrôle d'accès, l'automatisation IoT et l'échange de données sans contact. Expérimentez avec la lecture et l'écriture de balises NFC pour explorer le plein potentiel de ce module puissant!

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.