Nota
¡Hola! Bienvenidos a la Comunidad de Entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y Compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances Exclusivos: Obtén acceso temprano a nuevos anuncios de productos y adelantos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
4.1.3 Sistema de Alarma de Inducción Magnética
Introducción
Cuando tengas un jarrón precioso, puedes hacer un sistema de alarma de inducción magnética para él. No importa quién lo mueva, podrás escuchar la alarma a tiempo.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN DE COMPONENTES |
ENLACE DE COMPRA |
|---|---|
Diagrama Esquemático
Nombre T-Board |
física |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO27 |
Pin 13 |
2 |
27 |
Procedimientos Experimentales
Paso 1: Construir el circuito.
Paso 2: Ir a la carpeta del código.
cd ~/raphael-kit/python-pi5
Paso 3: Ejecutar.
sudo python3 4.1.6_MagneticAlarmSystem_zero.py
Si el interruptor de láminas está afectado por el imán (por ejemplo, el interruptor de láminas se coloca en la base y el imán se coloca en el jarrón), el objeto está seguro. En este momento, el interruptor de láminas está en estado cerrado y el zumbador está silencioso. Después de retirar el imán (como cuando el jarrón es robado), el interruptor de láminas no se ve afectado por el imán, el interruptor se abre y el zumbador suena una alarma.
Advertencia
Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
from gpiozero import Buzzer, Button
import time
# Inicializa el zumbador en el pin GPIO 27
buzzer = Buzzer(27)
# Inicializa el interruptor de láminas en el pin GPIO 17 con la resistencia pull-up habilitada
reed_switch = Button(17, pull_up=True)
try:
while True:
# Verifica si el interruptor de láminas está presionado
if reed_switch.is_pressed:
# Apaga el zumbador si el interruptor de láminas está presionado
buzzer.off()
else:
# Si el interruptor de láminas no está presionado, activa el zumbador
buzzer.on()
time.sleep(0.1) # Zumbador activado durante 0.1 segundos
buzzer.off()
time.sleep(0.1) # Zumbador desactivado durante 0.1 segundos
except KeyboardInterrupt:
# Apaga el zumbador cuando el programa es interrumpido (por ejemplo, con un interruptor de teclado)
buzzer.off()
pass
Explicación del Código
Esto importa las clases necesarias
BuzzeryButtonde la bibliotecagpiozero, y el módulotimede la biblioteca estándar de Python.#!/usr/bin/env python3 from gpiozero import Buzzer, Button import time
El objeto
Buzzerestá vinculado al pin GPIO 27, y unButton(actuando como interruptor de láminas) está conectado al pin GPIO 17 con el argumentopull_up=True, habilitando la resistencia pull-up interna.# Inicializa el zumbador en el pin GPIO 27 buzzer = Buzzer(27) # Inicializa el interruptor de láminas en el pin GPIO 17 con la resistencia pull-up habilitada reed_switch = Button(17, pull_up=True)
El bloque
trycontiene un bucle infinito (while True) que verifica el estado del interruptor de láminas. Si está presionado (is_pressed), el zumbador se apaga. De lo contrario, el zumbador suena (0.1 segundos encendido, 0.1 segundos apagado).try: while True: # Verifica si el interruptor de láminas está presionado if reed_switch.is_pressed: # Apaga el zumbador si el interruptor de láminas está presionado buzzer.off() else: # Si el interruptor de láminas no está presionado, activa el zumbador buzzer.on() time.sleep(0.1) # Zumbador activado durante 0.1 segundos buzzer.off() time.sleep(0.1) # Zumbador desactivado durante 0.1 segundos
El bloque
exceptmaneja una interrupción de teclado (como un Ctrl+C en el terminal) para apagar el zumbador de manera segura.except KeyboardInterrupt: # Apaga el zumbador cuando el programa es interrumpido (por ejemplo, con un interruptor de teclado) buzzer.off() pass