viernes, 7 de junio de 2013

Raspberry Pi Doorbell

Hola,

 hace tiempo que teníaa pensado que en el timbre de mi casa sonará la "Marcha Imperial" de Star Wars. Siempre ha estado en mente, ahora con la ayuda de una Raspberry Pi, ojear unas cuantas web y los consejos de Matías se ha hecho realidad.



Aprovechando que ya tenía en casa el raspberry pi, lo he estado usando para recoger la temperatura del comedor y consultarlo desde Android, para más adelante controlar la caldera. Cuando el proyecto tenga cara y ojos ya haré otro post.

Lo que más me ha costado ha sido encontrar los cables que entraban del timbre de la puerta. Tuve que desmontar el timbre clásico a 220v.

Esquemas eléctricos del timbre a 220v

Una vez encontrados y pasados al comedor, se conecta al GPIO 17. El GPIO es el puerto de entradas y salidas digitales del Raspberry. 

GPIO Pin Schema

El programa es bastante sencillo y muy bien optimizado gracias a los consejos de Matias. Basicamente es un bucle infinito que esta comprobando el estado puerto GPIO 17 si este es "0" se activa. 

Usaremos las librerías de desarrollo de juegos para reproducir un mp3.  La librería "pygame" tiene un efecto de sonido "fadeout", así que tras 15 segundos de reproducción hace el "fadeout", queda bastante "cool". 

El script se deja ejecutando en segundo plano y se configura en el arranque.


#!/usr/bin/python
import RPi.GPIO as GPIO
from time import sleep
import pygame

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)

TIME = 15
HOME = "/home/pi/doorbell/"
TONE = "tone.mp3"

pygame.init()
while True:
    if not GPIO.input(17):
        pygame.mixer.music.load(HOME+TONE)
        pygame.mixer.music.play()
        sleep(TIME)
        pygame.mixer.music.fadeout(5000)
        pygame.mixer.stop()
    sleep(0.1)

Os dejo un video y una foto del invento:

Foto de la protoboard


Ni que decir tiene que se puede cambiar el fichero a reproducir por tu música preferida. Incluso se puede poner el sonido de un timbre clásico. :-)

Lo interesante ahora sería buscarle una caja para que quede todo dentro sin tantos cables. Pero eso para más adelante...

Saludos!!


7 comentarios:

  1. Hola! he visto tu post y te quedo genial!

    Me gustaria saber que modelo de raspberry pi tienes y si podrias ayudarme ya que yo quiero hacer justamente el que tienes, siempre fue mi sueño poner eso XD
    Una pregunta mas, que potencia de altavoz aconsejas?

    Un saludo!

    ResponderEliminar
  2. Hola Dave!! Me alegro que te guste. El modelo de Raspberry pi que tengo yo es el de 512M de RAM, aunque para esto es indistinto. El modelo A de 256M funcionaría igual de bien. De altavoces uso unos logitech Z120 con el volumen al máximo. Se escucha desde todos los rincones de la casa.

    Saludos!!

    ResponderEliminar
  3. Hola!

    Muchisimas gracias por tu respuesta! me encaantaria hacerme un yo y el tuyo es increible! no paro de ver y oir tu video!. El caso es que tendria mas dudas y me gustaria saber si podrias ayudarme y te pregunto..
    Has hecho algun manual paso a paso de como contruirlo?
    me compre como me dijistes el modelo A, pero la cuestion es como le meto el script? mediante USB? o como?
    Tienes email para hablar por si me sale alguna duda mas?
    Muchisimas gracias por todo

    PD tengo 2 amigos que quieren hacerlo tambien, seguro q si cuelgas en youtube algo de como construirlo te haras famoso!

    ResponderEliminar
    Respuestas
    1. Hola Dave,

      primero tienes que instalar el SO al raspberry pi, por ejemplo raspbian. Una vez instalado podrás conectarte y copiar los scripts.
      De momento no hay un manual paso a paso, ni video paso a paso. Si tengo tiempo me plantearé hacer uno.

      Si tienes cualquier duda, la puedes preguntar en el blog de esta forma podemos ayudar a más gente.

      Saludos,
      Ricardo

      Eliminar
  4. hola ricardo!
    Ya tengo instalado el raspbian, lo hice en una targeta de 8Gb para que entrase todo el SO bien ( ya que una de 4 se queda algo corto) y lo puse en modo escritorio.
    El caso es que he compiado una cancion en mp3 por oir como va, pero no tiene ningun reproductor mp3? el caso es tambien podrias decirme cual es el siguiente paso? donde debo poner los scrips? que tengo que hacer para que funcionen? Un saludo y mil gracias!

    ResponderEliminar
  5. Hola Dave,

    creo que por defecto no tiene ningún reproductor de mp3 por defecto. Puedes instalar este:
    sudo apt-get -y install mpg321
    Y escuchar un mp3 así:
    mpg321 bubbling_water_1.mp3

    El reproductor mp3 no hará falta para hacer funcionar el script ya que se reproduce usando las librerias multimedia de Python.

    Los scripts los puede poner donde te vaya bien. Yo los he dejado en /root. Lo puedes ejecutar y dejarlo en background con el "&" al final del comando.

    Para que se ejecute cada vez que enciendas el raspberry pi has de poner un link en /etc/rc.3/

    Espero que con esto puedas tirar del hilo y hacerlo funcionar.
    Saludos!!

    ResponderEliminar
  6. hola de nuevo!

    copie tu scrip y mediante la shell de python le doy a run para ver si compila bien pero me da error, me dice importerror: no module name pygame...

    El caso es que aqui si que me pierdo bastante...no se crear el link para ejecutar el scrip, tengo una carpeta dentro de etc que se llama rc3.d.. es la misma que tu dices?
    nose si mi scrip esta bien creado con el formato adecuado ni como crear un hacer uno ni nada, podrias guiarme o pasarme el archivo directamente?
    La cancion Mp3 la meti en la ruta que dice el scrip /home/pi/doorbell/" esta bien?
    voy a crear un pulsador de prueba, necesita una resistencia obligatoriamente? de cuantos k?como iria conectada?
    Perdon por mi torpeza y te agradeceria que me ayudaras paso a paso si tienes tiempo...muchas gracias de verdad! un saludo

    ResponderEliminar