Objetivo y caso de uso
Lo que construirás: Un monitor de buzón con Raspberry Pi que detecta cuando la puerta se abre con un interruptor magnético de láminas, elimina el rebote de la señal, registra el evento con una marca de tiempo y envía una alerta al teléfono mediante ntfy.sh. Es un proyecto ligero de automatización GPIO con notificación casi instantánea, normalmente por debajo de 1 segundo en una conexión Wi‑Fi estable.
Por qué importa / Casos de uso
- Recibe una alerta en tiempo real cuando se entrega el correo en lugar de revisar el buzón manualmente.
- Reduce activaciones falsas eliminando el rebote de la entrada del interruptor, útil para gabinetes exteriores con viento o puertas metálicas que vibran.
- Crea un sensor de automatización del hogar de bajo consumo con carga de cómputo mínima, a menudo por debajo del 2% de CPU y uso de GPU despreciable en una Raspberry Pi.
- Mantén un historial local de eventos para verificar horas de entrega, por ejemplo registrando eventos de apertura del buzón a las 10:14:32 para paquetes o cartas.
- Usa el mismo patrón para alertas de apertura de portones, notificaciones de acceso a cobertizos o monitoreo de puertas de armarios.
Resultado esperado
- Un circuito funcional con interruptor de láminas conectado de forma segura al GPIO de Raspberry Pi con una resistencia pull-up o pull-down.
- Detección confiable de eventos de apertura con un tiempo de eliminación de rebote que filtra rebotes breves de contacto en milisegundos.
- Alertas de tipo push enviadas a tu teléfono mediante ntfy.sh con una latencia típica de extremo a extremo de aproximadamente 0.5–2 segundos, según la calidad de la red.
- Inicio automático al arrancar usando systemd para que el monitoreo se reanude tras un corte de energía o reinicio.
- Registros locales con marca de tiempo que puedes revisar para resolución de problemas, seguimiento de entregas o comprobación de notificaciones perdidas.
Público: Principiantes de Raspberry Pi, aficionados al DIY de automatización del hogar y estudiantes que aprenden manejo de entradas GPIO; Nivel: Básico
Arquitectura/flujo: El interruptor de láminas cambia el estado GPIO cuando se abre la puerta del buzón → el script de Raspberry Pi lee la entrada y elimina el rebote → el evento se registra localmente → se envía una notificación HTTP a ntfy.sh → el teléfono recibe la alerta.
Nota educativa de validación
Antes de publicar este caso, el contenido pasó la puerta automática de validación de Prometeo con estado PASS. El validador comprobó los bloques de código, la estructura del artículo, los comandos copiables y la coherencia con el catálogo de dispositivos soportados.
Evidencia de validación publicada
- Resultado automático: PASS.
- Estructura parseada: 3 apartados, 3 tablas y 14 bloques de código detectados antes de publicar.
- Código comprobado: 1 Python/py_compile, 1 bloques de configuración/servicio, 10 Bash/copy-paste checks.
- Catálogo soportado: el texto se contrastó contra los perfiles de dispositivo validables de Prometeo y los stacks no soportados bloquean la publicación.
- Hallazgos del informe: sin hallazgos bloqueantes.
Esta validación confirma compatibilidad sintáctica y de herramientas para el material publicado, pero no sustituye la prueba física sobre tu hardware, cableado y entorno exactos.
Nota educativa de seguridad
Este proyecto es un prototipo educativo, no un producto certificado. Antes de energizar la instalación, verifica el pinout de la revisión exacta de tu placa ULX3S, mantén las señales de E/S de la FPGA a 3.3 V, nunca conectes 5 V directamente a los pines de E/S, desconecta la alimentación antes de cambiar el cableado y usa fuentes de alimentación externas adecuadas para cargas, motores o servos, compartiendo tierra solo cuando el cableado lo requiera.
title: Alerta inteligente de apertura de buzón con Raspberry Pi
level: Básico
slug: practical-case-raspberry-pi
Alerta inteligente de apertura de buzón con Raspberry Pi
Este proyecto práctico con Raspberry Pi construye una alerta inteligente de apertura de buzón.
Un interruptor magnético de láminas detecta cuándo se abre la puerta del buzón, y la Raspberry Pi envía una alerta a tu teléfono usando ntfy.sh.
Diagrama de bloques conceptual
Vista de alto nivel: qué entra, qué procesa cada bloque y qué sale del sistema.
Arquitectura funcional
Flujo conceptual de señales y responsabilidades entre bloques del dispositivo.
Ruta de validación
Resumen conceptual de las herramientas usadas para comprobar el material publicado.
Qué hace este proyecto
- Detecta el estado de la puerta del buzón con un interruptor de láminas
- Elimina el rebote de la entrada para reducir activaciones falsas
- Envía una alerta de red tipo push cuando se abre el buzón
- Registra localmente cada evento de apertura con una marca de tiempo
- Se ejecuta automáticamente al arrancar con
systemd
Nota de seguridad
Este proyecto es solo para GPIO de bajo voltaje. No conectes los pines GPIO de la Raspberry Pi directamente a tensión de red, timbres alimentados, cerraduras eléctricas ni cableado desconocido dentro de un buzón metálico. Si el buzón está en exteriores, protege la Pi y el cableado de la humedad y usa alivio de tensión adecuado.
Componentes
- Raspberry Pi con acceso a red
- Tarjeta microSD con Raspberry Pi OS
- 1 interruptor magnético de láminas, normalmente abierto
- 1 resistencia de 10 kOhm
- Cables jumper
- Protoboard o placa prototipo soldada
Cableado
El interruptor de láminas se usa como sensor de contacto. Cuando se abre la puerta del buzón, el interruptor cambia de estado y la Raspberry Pi puede activar la alerta inteligente de apertura del buzón.
Tabla de pines
| Función | Pin del componente | Pin de Raspberry Pi |
|---|---|---|
| Fuente pull-up de 3.3 V | extremo 1 de la resistencia de 10 kOhm | 3.3 V, pin físico 1 |
| Nodo de señal | extremo 2 de la resistencia de 10 kOhm + extremo 1 del interruptor de láminas | GPIO17, pin físico 11 |
| Ruta a tierra | extremo 2 del interruptor de láminas | GND, pin físico 6 |
Lógica
| Estado del buzón | Interruptor de láminas | Estado de GPIO17 |
|---|---|---|
| Cerrado, imán cerca del interruptor | Contacto cerrado | LOW |
| Abierto, imán lejos del interruptor | Contacto abierto | HIGH |
Este cableado usa una resistencia pull-up externa a 3.3 V. El GPIO lee:
0cuando el buzón está cerrado1cuando el buzón está abierto
Configuración del sistema
Actualiza el sistema e instala los paquetes necesarios:
sudo apt update
sudo apt install -y python3 python3-gpiozero python3-requests
Crea un directorio de proyecto:
mkdir -p /home/pi/mailbox-alert
Aplicación en Python
Guarda este archivo como /home/pi/mailbox-alert/mailbox_alert.py.
#!/usr/bin/env python3
from gpiozero import Button
from signal import pause
from datetime import datetime
import os
import socket
import requests
PIN = 17
LOG_FILE = "/home/pi/mailbox-alert/mailbox_events.log"
HOSTNAME = socket.gethostname()
TOPIC = f"{HOSTNAME}-smart-mailbox-open-alert"
NTFY_URL = f"https://ntfy.sh/{TOPIC}"
sensor = Button(PIN, pull_up=False, bounce_time=0.2)
def write_log(message: str) -> None:
timestamp = datetime.now().isoformat(timespec="seconds")
line = f"{timestamp} {message}\n"
with open(LOG_FILE, "a", encoding="utf-8") as log_file:
log_file.write(line)
def send_alert() -> None:
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
title = "Mailbox opened"
body = f"Smart mailbox open alert from {HOSTNAME} at {now}"
headers = {
"Title": title,
"Priority": "default",
"Tags": "mailbox,postbox,package"
}
try:
response = requests.post(
NTFY_URL,
data=body.encode("utf-8"),
headers=headers,
timeout=10
)
response.raise_for_status()
write_log(f"ALERT_SENT topic={TOPIC} status={response.status_code}")
except requests.RequestException as exc:
write_log(f"ALERT_FAILED error={exc}")
def on_open() -> None:
write_log("MAILBOX_OPEN")
send_alert()
def main() -> None:
write_log(f"START topic={TOPIC} pin={PIN}")
sensor.when_pressed = on_open
pause()
if __name__ == "__main__":
os.makedirs("/home/pi/mailbox-alert", exist_ok=True)
main()
Hazlo ejecutable:
chmod +x /home/pi/mailbox-alert/mailbox_alert.py
Prueba manualmente la alerta inteligente de apertura de buzón
Ejecuta la aplicación en una terminal:
python3 /home/pi/mailbox-alert/mailbox_alert.py
Luego abre la puerta del buzón. Deberías ver un nuevo evento en el archivo de registro:
tail -f /home/pi/mailbox-alert/mailbox_events.log
Suscríbete en tu teléfono u otro dispositivo a:
https://ntfy.sh/<your-hostname>-smart-mailbox-open-alert
Por ejemplo, si el hostname de tu Raspberry Pi es raspberrypi, el tema es:
https://ntfy.sh/raspberrypi-smart-mailbox-open-alert
Puedes comprobar tu hostname con:
hostname
Ejecutar al arranque con systemd
Crea /etc/systemd/system/mailbox-alert.service:
[Unit]
Description=Smart Mailbox Open Alert
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/mailbox-alert
ExecStart=/usr/bin/python3 /home/pi/mailbox-alert/mailbox_alert.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Habilita e inicia el servicio:
sudo systemctl daemon-reload
sudo systemctl enable mailbox-alert.service
sudo systemctl start mailbox-alert.service
sudo systemctl status mailbox-alert.service --no-pager
Método de validación
Para validar que esta alerta inteligente de apertura de buzón funciona correctamente:
- Inicia el servicio.
- Cierra el buzón para que el imán quede cerca del interruptor de láminas.
- Abre el buzón una vez.
- Confirma:
- que aparece una entrada
MAILBOX_OPENen el registro local - que aparece una entrada
ALERT_SENTen el registro local - que llega una notificación al tema
ntfy.shsuscrito - Repite 10 ciclos de apertura/cierre.
Evidencia esperada
| Comprobación | Resultado esperado |
|---|---|
| Detección GPIO | Un disparo cuando se abre la puerta |
| Registro local | Líneas MAILBOX_OPEN y ALERT_SENT con marca de tiempo |
| Alerta de red | Una notificación por cada evento de apertura |
| Repetibilidad | Comportamiento consistente en ciclos repetidos de apertura/cierre |
Solución de problemas
No llega ninguna alerta
Comprueba que la Pi tenga acceso a internet:
ping -c 3 ntfy.sh
Comprueba los registros del servicio:
journalctl -u mailbox-alert.service --no-pager -n 50
Activaciones falsas
- Aumenta
bounce_timede0.2a0.5 - Monta el imán y el interruptor de láminas de forma más segura
- Mantén los cables del sensor cortos o trenzados para reducir el ruido
La entrada nunca cambia
Verifica el estado del GPIO con:
python3 -c "from gpiozero import Button; from time import sleep; s=Button(17, pull_up=False); print(s.is_pressed); sleep(1)"
Resultado
Ahora tienes una alerta inteligente de apertura de buzón construida sobre una Raspberry Pi.
Cuando se abre la puerta del buzón, el interruptor de láminas cambia de estado, la Pi detecta el evento y se envía una alerta automáticamente.
Encuentra este producto y/o libros sobre este tema en Amazon
Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.




