Anuncio

¿Alguna vez has querido llegar a casa para recibir una bienvenida personal? Con una Raspberry Pi y algunos componentes simples, ¡puedes! En este proyecto simple, usaremos un interruptor de láminas para activar una melodía de tema cuando se abre una puerta. Aquí usaremos una Raspberry Pi como controlador, aunque podría usar casi cualquier otro microcontrolador Microcontroladores de $ 5: ¿Arduino, Raspberry Pi Zero o NodeMCU?Solía ​​ser el caso de que si quisieras obtener una computadora, tendrías que volver a conectar tu casa para pagarla. Ahora, puedes conseguir uno para un Abraham Lincoln. Lee mas para este proyecto usando el mismo circuito. Aquí hay una demostración.

Necesitará

Es probable que ya tenga todas las partes que necesita para hacer esto, excepto el interruptor de láminas, que cuesta alrededor de $ 2–3, o puede obtener un paquete de 5 por poco más de $ 8 aquí.

  • Una Raspberry Pi (cualquier modelo funcionará para esto).
  • 1 x resistencia de 220 ohmios.
  • 1 x resistencia de 1K Ohm.
  • instagram viewer
  • Resistencia de 3 x 10K Ohm.
  • 1 x interruptor de láminas magnético.
  • 1 x LED.
  • 2 x interruptor de botón.
  • Tablero de circuitos.
  • Cables de conexión.
  • Altavoz de computadora o similar.

Usaremos la Raspberry Pi para reproducir una canción cuando ingrese a la sala, y diseñaremos un circuito con botones en nuestra placa de pruebas para activarla con retraso y detener el programa.

Este proyecto, aunque se realiza principalmente por diversión, cubre los conceptos básicos para muchas aplicaciones en Bricolaje domótica Guía de automatización del hogar con Raspberry Pi y ArduinoEl mercado de la automatización del hogar está inundado de sistemas de consumo caros, incompatibles entre sí y costosos de instalar. Si tienes un Raspberry Pi y un Arduino, básicamente puedes lograr lo mismo en ... Lee mas y también Bricolaje de seguridad para el hogar ¿Busca una solución de sistema de seguridad para el hogar de bricolaje? Prueba uno de estosEn la era de la tecnología digital y el hardware siempre conectado, configurar un sistema de seguridad para el hogar debería trascender el arte de colocar una caja con forma de alarma en la pared. Lee mas

Empezando

Comencemos por hacer nuestro circuito. Asegúrese de que su Pi no tenga energía y configure su circuito de esta manera:

HQ anotado fritzing

El LED está conectado al pin 7 en nuestro pi. Los dos interruptores de botón están conectados a los pines 11 y 13, y el interruptor de láminas se conecta al pin 15. Nuestro poder va al pin 1 (3v3) y al pin 6 (Gnd).

diagrama pin

Asegúrese de verificar que todo esté exactamente en el lugar correcto.

Mientras prueba este proyecto, puede ser útil mantener su interruptor de láminas frente a usted para que pueda activarlo o desactivarlo fácilmente. En este caso, el interruptor de láminas ya estaba instalado encima de la puerta. Una vez que su proyecto esté en funcionamiento, puede conectar temporalmente el interruptor a su puerta usando cinta adhesiva, o si tiene más confianza, puede colocarla de manera más permanente para usarla en el futuro proyectos!

interruptor de láminas instalado

Conecte la salida de jack de 3,5 mm de su Pi a su sistema de altavoces. Una vez que todo esté listo, debería verse así:

toda la configuración correcta

Tenga en cuenta que la placa de prueba utilizada aquí tiene sus rieles de potencia al revés del diagrama de Fritzing anterior.

Ahora encienda su Pi y acceda a él utilizando SSH para que podamos acceder al terminal. Si no está seguro de cómo hacer esto, esta guia Configuración de su Raspberry Pi para uso sin cabeza con SSHEl Raspberry Pi puede aceptar comandos SSH cuando está conectado a una red local (ya sea por Ethernet o Wi-Fi), lo que le permite configurarlo fácilmente. Los beneficios de SSH van más allá de alterar el examen diario ... Lee mas puedo ayudarte. Si está utilizando su Raspberry Pi con un monitor, mouse y teclado, omita este paso y abra el terminal.

Antes de comenzar, vale la pena verificar si está actualizado. Tipo sudo apt-get update en la terminal

Ahora podemos pasar a hacer que nuestro Pi hable con nuestro circuito.

Probar nuestra configuración

Para comenzar, revisemos nuestro circuito usando un programa simple. Si está seguro de que ha conectado todo bien hasta ahora, puede omitir este paso, aunque lo recomendaría, ya que puede ahorrar dolores de cabeza más adelante.

Si nunca antes has programado en Python y te sientes un poco intimidado, hay una gran cantidad de grandes sitios web Los 5 mejores sitios web para aprender programación de Python¿Quieres aprender programación de Python? Estas son las mejores formas de aprender Python en línea, muchas de las cuales son completamente gratuitas. Lee mas eso puede ayudarlo a comenzar.

En la terminal, cree un nuevo script:

nano test.py

Una vez abierto, agregue este código al archivo y presione Ctrl-C para salir, siguiendo el diálogo de guardar:

# Este código fue escrito para un artículo en www. MakeUseOf.com por Ian Buckley. importar RPi. GPIO como GPIO. tiempo de importación GPIO.setwarnings (Falso) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) mientras verdadero: GPIO.output (7, GPIO.HIGH) if (GPIO.input (11) == 1): print ("Button on GPIO 11") time.sleep (1 ) Si (GPIO.input (13) == 1): print ("Button on GPIO 13") time.sleep (1) if (GPIO.input (15) == 1): print ("Button on GPIO 15") time .sueño (1) GPIO.cleanup ()

Este código lee el valor de los botones y se imprime en la pantalla cuando cambian. Los dos botones tienen resistencias desplegables, por lo que informan ALTO cuando se presionan. El interruptor del imán de láminas informa ALTO cuando su imán acompañante está cerca.

interruptores

Ejecuta el programa:

prueba de python.py

Debería ver el LED iluminado y un informe en la pantalla cuando presiona sus dos botones y retira el imán de su interruptor de láminas. Si no recibe comentarios cuando presiona los botones, revise sus circuitos nuevamente y asegúrese de que todo esté conectado como debería estar. Cuando termine de probar, presione CTRL-C para detener el programa

prueba

Ahora podemos armar un programa simple para configurar, activar y restablecer nuestro sensor de puerta. Repasaremos el código en partes y explicaremos brevemente lo que hace cada parte, aunque si desea ver el código completo, desplácese hacia abajo para verlo presentado en su totalidad.

Necesitamos comenzar importando algunos módulos:

Importar Rpi. GPIO como GPIO. importar pygame.mixer. tiempo de importación 

Estaremos usando el Pygame Módulo para reproducir nuestra música. Viene de serie con Raspbian Jessie, y es una gran biblioteca para todo lo que necesitas para hacer juegos de Python y muchos otros proyectos asombrosos Cómo construir un bot de Twitter Raspberry PiTwitter es el mayor depósito mundial de mensajes cortos de personas sin nada que decir, y ahora usted también puede contribuir a ese proyecto épico con un bot de Twitter automatizado, impulsado por su Frambuesa... Lee mas .

Vamos a usar una variable llamada activo para decidir si nuestro sistema está activo o no. Vamos a definir un par de funciones que harán esto por nosotros:

def activeSetup (): global active active = 0 print ("Actualmente no activo") def activeState (): global active si está activo == 1: active = 0 GPIO.output (7, GPIO.LOW) print ("Actualmente no activo") elif active == 0: print ("Activando en 10 segundos") para x en el rango (0,10): GPIO.output (7, GPIO.HIGH) time.sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) print ("Actualmente Activo ") más: volver. 

La primera función aquí crea una variable llamada activoy lo establece en 0. Darle al estado activo un valor numérico significa que si planea ampliar su programa para tener diferentes estados activos, puede numerarlos en consecuencia. Si bien puede que no sea la mejor programación de Python del mundo, será más que suficiente para este proyecto.

La segunda función cuando se llama comprueba si el sistema está activo (o activo == 1). Si es así, configura el sistema como no activo (activo == 0), apaga el LED e imprime en la consola. Si no es así, le ofrece una cuenta regresiva de 10 segundos para salir de la habitación en la que parpadea el LED, antes de permanecer encendido para mostrar que el sistema está activo.

Ahora podemos definir una función que observará nuestro interruptor magnético de láminas:

def watchDoor (): reproducción global jugando = falso mientras verdadero: si está activo == 1 y GPIO.input (15) == 1 y jugando == falso: jugando = verdadero pygame.mixer.music.play () if GPIO.input (13) == 1: print ("Botón de detención presionado: Salir") pygame.mixer.music.stop () break si GPIO.input (11) == 1: activeState () time.sleep (0.5)

Creamos otra variable aquí llamada jugando - esto es simplemente para detener el programa que intenta comenzar a reproducirse repetidamente cuando se activa el interruptor.

Dentro del ciclo while, la primera declaración if comienza la música (de la que todavía no tenemos nada, pero no se preocupe, ya viene). Solo permite que la música comience si el sistema está activo, el interruptor de láminas está abierto y ya no se está reproduciendo.

La segunda declaración if es para nuestro botón de salida. Si se presiona este botón, la música se detiene y el programa sale.

La tercera declaración if es para alternar si el sistema está activo o no. los tiempo de dormir La función aquí es evitar lecturas de múltiples botones cuando se presiona.

Ahora es el momento de configurar los pines de Pi.

GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, initial = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN)

Si ya has experimentado con el Pi antes, esto te resultará familiar. los inicial = GPIO.LOW el argumento en la configuración del pin 7 lo establece en bajo tan pronto como se inicializa.

Ahora podemos llamar a nuestra función que configurará el sistema para que no esté activo cuando se inicie el programa.

activeSetup ()

Music Maestro!

En este punto, deberíamos comenzar a pensar en la música para tocar. Puede elegir cualquier archivo de música que desee, pero elegiremos algo disponible para todos por el momento. Si ves YouTube, probablemente ya estés familiarizado con la música de Kevin MacLeod. Vamos a descargar una canción fantástica de él llamado "Maestro tuerto". Esto, junto con gran parte de la música en su sitio, está licenciado bajo Creative Commons, y hay muchas buenas razones ¿Qué es Creative Commons y uso no comercial?¿Qué es Creative Commons? ¿Qué significa "uso no comercial"? Aprenda sobre las licencias Creative Commons y cómo funcionan. Lee mas usar contenido con estas licencias para sus proyectos.

wget

De vuelta en nuestro código, necesitamos iniciar el mezclador Pygame y cargar nuestra melodía.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) nombre = "Maestro tuerto.mp3" pygame.mixer.music.load (nombre) print ("Pista cargada -" + str (nombre))

La primera línea de este bloque inicia el Pygame mezclador. El último argumento entre paréntesis es el búfer que controla la latencia en la que se reproduce el sonido. Si experimenta una reproducción entrecortada más tarde cuando se reproduce su música, intente aumentar este número a 4096. La configuración tal como está funciona sin problemas en un Pi 3.

Si descargó su archivo de música en un directorio diferente a su puerta.py programa, deberá proporcionar la ruta completa dentro de los corchetes cuando defina la variable de nombre.

Ahora todo lo que queda por hacer es configurar un bucle que nos espera para configurar el programa activo o salir de él.

while True: if (GPIO.input (13) == 1): print ("Botón de detención presionado: Saliendo") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()

Este ciclo while espera una entrada desde cualquiera de los botones y se cierra o cambia el estado a activo en consecuencia. Si el estado de activo se convierte en 1, entonces el watchDoor se llama a la función que definimos anteriormente y la próxima vez que se abra la puerta se reproducirá nuestra melodía. Tambien llamamos GPIO.cleanup () restablecer nuestros pines en la salida, que generalmente es una buena práctica para toda la programación en Raspberry Pi.

Eso es todo lo que necesitamos hacer para poner en marcha este proyecto, aquí está el código completo:

importar RPi. GPIO como GPIO. importar pygame.mixer. tiempo de importación def activeSetup (): global activo activo = 0 print ("Actualmente no activo") def activeState (): global activo si está activo == 1: activo = 0 GPIO.output (7, GPIO.LOW) print ("Actualmente No Activo ") elif activo == 0: print (" Activando en 10 segundos ") para x en el rango (0,10): GPIO.output (7, GPIO.HIGH) time.sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) print ("Actualmente activo") más: return def watchDoor (): reproducción global jugando = False mientras verdadero: si está activo == 1 y GPIO.input (15) == 1 y jugando == False: jugando = verdadero pygame.mixer.music.play () if GPIO.input (13) == 1: print ("Botón de detención presionado: Salir") pygame.mixer.music.stop () break si GPIO.input (11) == 1: activeState () time.sleep (0.5) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, initial = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) activeSetup () pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) nombre = "Maestro tuerto.mp3" pygame.mixer.music.load (nombre) print ("Loaded track -" + str (name)) while True: if (GPIO.input (13) == 1): print ("Botón Stop presionado: Saliendo") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()

Si te desplazaste aquí para obtener el código completo de inmediato, ¡ten en cuenta que aún necesitarás descargar la música en tu Pi para que funcione!

¡Ahora debería tener una melodía de tema de bienvenida en casa que funcione! Coloque su interruptor de láminas en su puerta y pruébelo. El baile embarazoso es opcional pero recomendado.

Este proyecto cubrió los aspectos básicos de muchas formas de monitoreo, seguridad y automatización del hogar, ¡y con suerte también fue divertido!

Ahora que has llegado hasta aquí, ¿por qué detenerte allí? Puede agregar más pistas y hacer que el programa elija una al azar de una lista. Tú podrías agregar un relé Comenzando con GPIO en una Raspberry PiSi pensabas que el Arduino era genial, solo espera hasta que tengas una Raspberry Pi, estas cosas son increíbles. Además de ser una computadora totalmente funcional, también tienen ... Lee mas y hacer que se activen otros objetos en la entrada. Si tiene un sistema de música hogareño, ¿por qué no tiene una canción para cada habitación?

luces de relevo

¿Diseñarás tu propio mensaje personal de bienvenida a casa? ¿Has sido inventivo con los interruptores de láminas en tu hogar de otras maneras? Si es así, ¡deja un comentario sobre lo que estás planeando o ya has hecho en la sección de comentarios a continuación!

Ian Buckley es periodista independiente, músico, intérprete y productor de video que vive en Berlín, Alemania. Cuando no está escribiendo o en el escenario, está jugando con la electrónica o el código de bricolaje con la esperanza de convertirse en un científico loco.