Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !

4.1.3 Système d’alarme à induction magnétique

Introduction

Lorsque vous possédez un vase précieux, vous pouvez créer un système d’alarme à induction magnétique pour le protéger. Peu importe qui le déplace, vous entendrez l’alarme immédiatement.

Composants nécessaires

Pour ce projet, nous avons besoin des composants suivants :

../_images/4.1.6_magneticalarmsystem_list.png

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION AUX COMPOSANTS

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

Buzzer

ACHETER

Transistor

ACHETER

Module Interrupteur à Lame Relevable

ACHETER

Schéma

Nom T-Board

Physique

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO27

Pin 13

2

27

../_images/4.1.6_magneticalarmsystem_schematic.png

Procédures Expérimentales

Étape 1 : Construire le circuit.

../_images/4.1.6_magneticalarmsystem_circuit.png

Étape 2 : Accédez au dossier du code.

cd ~/raphael-kit/python-pi5

Étape 3 : Exécutez le programme.

sudo python3 4.1.6_MagneticAlarmSystem_zero.py

Si l’interrupteur à lames est influencé par l’aimant (par exemple, l’interrupteur à lames est placé sur la base et l’aimant est placé dans le vase), l’objet est en sécurité. À ce moment-là, l’interrupteur à lames est en état fermé, et le buzzer reste silencieux. Après avoir retiré l’aimant (par exemple, si le vase est volé), l’interrupteur à lames n’est plus affecté par le magnétisme, l’interrupteur s’ouvre et le buzzer émet une alarme. .. warning:

Si vous recevez le message d'erreur ``RuntimeError: Cannot determine SOC peripheral base address``, veuillez consulter :ref:`faq_soc`

Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez accéder au chemin du code source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
from gpiozero import Buzzer, Button
import time

# Initialize the buzzer on GPIO pin 27
buzzer = Buzzer(27)
# Initialize the reed switch on GPIO pin 17 with pull-up resistor enabled
reed_switch = Button(17, pull_up=True)

try:
    while True:
        # Check if the reed switch is pressed
        if reed_switch.is_pressed:
            # Turn off the buzzer if reed switch is pressed
            buzzer.off()
        else:
            # If reed switch is not pressed, beep the buzzer
            buzzer.on()
            time.sleep(0.1)  # Buzzer on for 0.1 seconds
            buzzer.off()
            time.sleep(0.1)  # Buzzer off for 0.1 seconds

except KeyboardInterrupt:
    # Turn off the buzzer when the program is interrupted (e.g., keyboard interrupt)
    buzzer.off()
    pass

Explication du Code

  1. Cette ligne importe les classes nécessaires Buzzer et Button de la bibliothèque gpiozero ainsi que le module time de la bibliothèque standard de Python.

    #!/usr/bin/env python3
    from gpiozero import Buzzer, Button
    import time
    
  2. L’objet Buzzer est relié à la broche GPIO 27, et un Button (agissant comme un interrupteur à lames) est connecté à la broche GPIO 17 avec l’argument pull_up=True, activant ainsi la résistance pull-up interne.

    # Initialize the buzzer on GPIO pin 27
    buzzer = Buzzer(27)
    # Initialize the reed switch on GPIO pin 17 with pull-up resistor enabled
    reed_switch = Button(17, pull_up=True)
    
  3. Le bloc try contient une boucle infinie (while True) vérifiant l’état de l’interrupteur à lames. Si l’interrupteur est activé (is_pressed), le buzzer est éteint. Sinon, le buzzer émet un bip (0,1 seconde allumé, 0,1 seconde éteint).

    try:
        while True:
            # Check if the reed switch is pressed
            if reed_switch.is_pressed:
                # Turn off the buzzer if reed switch is pressed
                buzzer.off()
            else:
                # If reed switch is not pressed, beep the buzzer
                buzzer.on()
                time.sleep(0.1)  # Buzzer on for 0.1 seconds
                buzzer.off()
                time.sleep(0.1)  # Buzzer off for 0.1 seconds
    
  4. Le bloc except gère une interruption clavier (comme Ctrl+C dans le terminal) pour éteindre le buzzer en toute sécurité.

    except KeyboardInterrupt:
        # Turn off the buzzer when the program is interrupted (e.g., keyboard interrupt)
        buzzer.off()
        pass