Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

4.1.3 Magnetisches Induktions-Alarmsystem

Einführung

Wenn Sie eine wertvolle Vase erhalten, können Sie ein magnetisches Induktions-Alarmsystem dafür erstellen, sodass Sie rechtzeitig einen Alarm hören können, egal wer sie bewegt.

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

../_images/4.1.6_magneticalarmsystem_list.png

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können diese auch separat über die untenstehenden Links kaufen.

KOMPONENTENVORSTELLUNG

KAUF-LINK

GPIO-Erweiterungsplatine

BUY

Steckbrett

BUY

Jumper-Kabel

BUY

Widerstand

BUY

Summer

BUY

Transistor

BUY

Reed-Schalter-Modul

BUY

Schaltplan

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO27

Pin 13

2

27

../_images/4.1.6_magneticalarmsystem_schematic.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/4.1.6_magneticalarmsystem_circuit.png

Schritt 2: Wechseln Sie in den Ordner des Codes.

cd ~/raphael-kit/python-pi5

Schritt 3: Ausführen.

sudo python3 4.1.6_MagneticAlarmSystem_zero.py

Wenn der Reed-Schalter durch den Magneten beeinflusst wird (zum Beispiel wird der Reed-Schalter auf der Basis platziert und der Magnet in der Vase), ist das Objekt sicher. Zu diesem Zeitpunkt ist der Reed-Schalter im geschlossenen Zustand und der Summer schweigt. Nach Entfernen des Magneten (wie beim Diebstahl der Vase) wird der Reed-Schalter nicht mehr durch den Magneten beeinflusst, der Schalter öffnet sich, und der Summer löst einen Alarm aus.

Code

Bemerkung

Sie können den untenstehenden Code modifizieren/zurücksetzen/kopieren/ausführen/stoppen. Bevor Sie dies tun, müssen Sie zum Quellcodepfad wie raphael-kit/python-pi5 gehen. Nach der Änderung des Codes können Sie ihn direkt ausführen, um die Auswirkung zu sehen.

#!/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

Code-Erklärung

  1. Importiert die notwendigen Klassen Buzzer und Button aus der Bibliothek gpiozero und das Modul time aus der Standardbibliothek von Python.

    #!/usr/bin/env python3
    von gpiozero import Buzzer, Button
    import time
    
  2. Der Buzzer-Objekt ist mit dem GPIO-Pin 27 verbunden, und ein Button (fungiert als Reed-Schalter) ist mit dem GPIO-Pin 17 verbunden, mit dem Argument pull_up=True, welches den internen Pull-Up-Widerstand aktiviert.

    # 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. Der try-Block enthält eine Endlosschleife (while True), die den Zustand des Reed-Schalters überprüft. Wenn gedrückt (is_pressed), wird der Summer ausgeschaltet. Andernfalls piept der Summer (0,1 Sekunden an, 0,1 Sekunden aus).

    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. Der except-Block behandelt ein KeyboardInterrupt (wie ein Ctrl+C im Terminal), um den Summer sicher auszuschalten.

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