Raspberry Pi - Serrure à solénoïde

La serrure à solénoïde, également appelée serrure électrique à gâche, peut être utilisée pour sécuriser/libérer des armoires, des tiroirs et des portes. Ce tutoriel vous apprend à manipuler la serrure à solénoïde à l'aide d'un Raspberry Pi.

Une alternative à la serrure à solénoïde est la serrure électromagnétique. Pour plus d'informations, veuillez vous référer au Raspberry Pi - Serrure électromagnétique..

Préparation du matériel

1×Raspberry Pi 4 Model B
1×Solenoid Lock
1×Relay
1×12V Power Adapter
1×DC Power Jack
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de la serrure à solénoïde

Le brochage de la serrure à solénoïde

Le verrou à solénoïde a deux fils :

  • Le fil positif (+) (rouge) doit être connecté au 12V d'une alimentation DC.
  • Le fil négatif (-) (noir) doit être connecté au GND d'une alimentation DC.
Broche de verrouillage solénoïde

Comment ça fonctionne

  • Lorsque la serrure à solénoïde est alimentée, le pêne est étendu, verrouillant ainsi la porte.
  • Lorsque la serrure à solénoïde n'est PAS alimentée, le pêne est rétracté, déverrouillant ainsi la porte.

※ Note:

La serrure à solénoïde nécessite généralement 12V, 24V ou 48V pour fonctionner. Par conséquent, elle NE PEUT PAS être connectée directement à une broche de Raspberry Pi. Un relais doit être utilisé pour connecter la serrure à solénoïde à une broche de Raspberry Pi.

Si nous connectons la serrure à solénoïde à la source d'alimentation via un relais (en mode normalement ouvert) :

  • Lorsque le relais est en position ouverte, la porte sera déverrouillée.
  • Lorsque le relais est en position fermée, la porte sera verrouillée.

Nous pouvons connecter le relais au Raspberry Pi et programmer le Raspberry Pi pour contrôler la serrure solénoïde via le relais. Pour en savoir plus sur les relais, veuillez consulter le Raspberry Pi - Relais..

Diagramme de câblage

Schéma de câblage de la serrure à solénoïde Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Le code ci-dessous va verrouiller et déverrouiller la porte toutes les 2 secondes.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python solenoid_lock.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-solenoid-lock import RPi.GPIO as GPIO import time # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin controlled the solenoid lock via the relay module RELAY_PIN = 12 # Set the relay pin as an output pin GPIO.setup(RELAY_PIN, GPIO.OUT) try: # Run the loop function indefinitely while True: # Turn the relay ON (HIGH) to lock the door GPIO.output(RELAY_PIN, GPIO.HIGH) time.sleep(2) # Wait for 2 seconds # Turn the relay OFF (LOW) to unlock the door GPIO.output(RELAY_PIN, GPIO.LOW) time.sleep(2) # Wait for 2 seconds except KeyboardInterrupt: # If the user presses Ctrl+C, clean up the GPIO configuration GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 solenoid_lock.py
  • Vérifiez l'état de la languette du verrou.

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Raspberry Pi - Bouton contrôle la serrure à solénoïde

Le script Python ci-dessous pour Raspberry Pi contrôle une serrure de porte à l'aide d'un bouton. Lorsque vous appuyez sur le bouton, la porte se déverrouille pendant 5 secondes, puis se verrouille à nouveau. Vous pouvez répéter ce processus en appuyant à nouveau sur le bouton.

Étapes rapides

  • Connectez un bouton et un verrou électromagnétique au Raspberry Pi selon le schéma de câblage ci-dessous.
Schéma de câblage du verrou à solénoïde à bouton Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield
  • Créez un fichier de script Python button_solenoid_lock.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-solenoid-lock import RPi.GPIO as GPIO import time BUTTON_PIN = 18 # GPIO pin connected to the button RELAY_PIN = 16 # GPIO pin controlled the solenoid lock via the relay module # Set up the GPIO pins GPIO.setmode(GPIO.BCM) GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(RELAY_PIN, GPIO.OUT) prev_button_state = GPIO.HIGH # HIGH means the button is not pressed initially try: # Lock the door initially GPIO.output(RELAY_PIN, GPIO.HIGH) while True: button_state = GPIO.input(BUTTON_PIN) if button_state == GPIO.LOW and prev_button_state == GPIO.HIGH: # Button is pressed (LOW means pressed due to pull-up resistor) print("The button is pressed") GPIO.output(RELAY_PIN, GPIO.LOW) # Unlock the door print("The door is unlocked") time.sleep(5) # Wait for 5 seconds GPIO.output(RELAY_PIN, GPIO.HIGH) # Lock the door again print("The door is locked again") # Update the previous button state prev_button_state = button_state except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 button_solenoid_lock.py
  • Appuyez sur le bouton une fois.
  • Vérifiez l'état du pêne de la serrure pendant 5 secondes.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!