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.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Raphael Kit |
337 |
Sie können diese auch separat über die untenstehenden Links kaufen.
KOMPONENTENVORSTELLUNG |
KAUF-LINK |
---|---|
Schaltplan¶
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO27 |
Pin 13 |
2 |
27 |
Experimentelle Verfahren¶
Schritt 1: Bauen Sie den Schaltkreis.
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
Importiert die notwendigen Klassen
Buzzer
undButton
aus der Bibliothekgpiozero
und das Modultime
aus der Standardbibliothek von Python.#!/usr/bin/env python3 von gpiozero import Buzzer, Button import time
Der
Buzzer
-Objekt ist mit dem GPIO-Pin 27 verbunden, und einButton
(fungiert als Reed-Schalter) ist mit dem GPIO-Pin 17 verbunden, mit dem Argumentpull_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)
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
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