Pas op de hond!

      Reacties uitgeschakeld voor Pas op de hond!

Een blaffende hond in huis kan inbrekers afschrikken, maar kan een virtuele nephond dat ook?

Een vriend die alleen woont, had behoefte aan een waakhond voor als hij van huis is. Aangezien hij geen hond als huisdier wil en ook geen tijd heeft om ervoor te zorgen, moest er een virtuele oplossing komen. Daarom riepen we project “Waakhond” in het leven.  Dit is zo simpel dat het binnen een half uur af was.

Wat je leert 

  • PIR-sensor gebruiken
  • Geluid via een Python-script afspelen

Wat je nodig hebt 

  • Raspberry Pi (maakt niet uit welke)
  • PIR-bewegingssensor (HC-SR501, kost ca. 3,45 euro)
  • Actieve luidsprekers
  • Optioneel: usb-audio-adapter of audio-board

Aan de slag

Sluit de PIR-sensor aan op de Raspberry Pi volgens de instructies hier. Als je de laatste versie van Raspbian gebruikt zit daar al alles in wat je nodig hebt. Activeer SSH, zodat je het systeem ‘headless’ en op afstand kunt bedienen. Wijzig ook het standaardwachtwoord, zodat niemand met je virtuele hond aan de haal kan gaan.

De meeste tijd ben je kwijt met het zoeken van een geschikte geluidsopname. Als je niet je eigen opnames wilt maken, met de Rottweiler van een kennis bijvoorbeeld, dan kun je terecht bij verschillende websites. Wij haalden ons blaffende hondengeluid van de site orangefreesounds.com.  Deze site levert geluiden in mp3-formaat. De Pygame-bibliotheek waar we het geluid mee willen afspelen werkt echter standaard met het ongecomprimeerde WAV-formaat. Met diverse gratis online-diensten kun je gelukkig heel makkelijk mp3 naar wav converteren. Wij gebruikten audio.online-convert.com.

De luidsprekers kun je aansluiten op de analoge audiouitgang. Zorg wel dat de analoge audio-uitgang geactiveerd is, via het audiosymbooltje in de grafische interface of raspi-config (Advanced Options/Audio/1) op de commandline.

Ten slotte de code:

#!/usr/bin/python
# importeer bibliotheken
import RPi.GPIO as GPIO
import time
import pygame

# initialiseer afspeelsysteem
pygame.init()
pygame.mixer.init()
woef = pygame.mixer.Sound("blaffendehonden.wav")

# initialiseer PIR-sensor
GPIO.setmode(GPIO.BOARD)
pin07 = 07
GPIO.setup(pin07, GPIO.IN)
print "Wachten op sensor om zich in te stellen"
time.sleep(2)
print "Systeem gereed!"

while True:
    if GPIO.input(pin07):
        print "Beweging ontdekt! Begin met blaffen"
        woef.play()
        time.sleep(13)
        print "Stop met blaffen"
        woef.stop()
    time.sleep(12)