STEP 1: SETTING UP THE WEBCAM
Open up the terminal and run:
sudo su
Press Enter
This will change to admin console
Now write:
sudo apt-get update
After this finishes running, we should test that the webcam works.
Plug your webcam into the Raspberry PI and run:
sudo apt-get install fswebcam
(This will install the driver for the webcam)
fswebcam test.jpg
(This will take a picture from your webcam.
Open the file manager and see if there is a photo.)
STEP 2: INSTALLING AND CONFIGURING MOTION
In order to turn our webcam into a motion detector, we will be using the open-source "motion" library which
was designed just for this purpose.
First, install motion by running:
sudo apt-get install motion
After the motion is installed, we need to install a file explorer using which we can edit the motion.conf file
For that purpose, give the following command:
sudo su
sudo apt-get install nautilus-admin
Now in terminal, write:
sudo su
nautilus
This will open a file manager window
Next,open the file manager and navigate to this path:
/etc/motion/motion.conf
perform the following changes:
on_event_start python /home/pi/switch_on_motor.py
on_event_end python /home/pi/switch_off_motor.py
event_gap 20
////////////////// CODE FOR switch_on_motor.py ////////////////
import time
import pygame
import sys
import RPi.GPIO as GPIO
RelayPin = 37 # pin11
def relayActivate(s):
if s == "ON":
print("Relay is ON")
GPIO.setmode(GPIO.BOARD)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.HIGH)
else:
print("Relay is OFF")
GPIO.setmode(GPIO.BOARD)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.LOW)
GPIO.cleanup()
relayActivate("ON")
pygame.init() #<-- initializes video
pygame.mixer.init()
pygame.mixer.music.load("/home/pi/dog_bark_long.wav")
pygame.mixer.music.play()
SONG_END = pygame.USEREVENT + 0
pygame.mixer.music.set_endevent(SONG_END)
while True:
for event in pygame.event.get():
if event.type == SONG_END:
print("the song ended!")
pygame.mixer.music.stop()
pygame.quit()
sys.exit()
///////////////////////////////////////
////////////////// CODE FOR switch_off_motor.py ////////////////
import time
import pygame
import sys
import RPi.GPIO as GPIO
RelayPin = 37 # pin11
def relayActivate(s):
if s == "ON":
print("Relay is ON")
GPIO.setmode(GPIO.BOARD)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.HIGH)
else:
print("Relay is OFF")
GPIO.setmode(GPIO.BOARD)
GPIO.setup(RelayPin, GPIO.OUT)
GPIO.output(RelayPin, GPIO.LOW)
GPIO.cleanup()
relayActivate("OFF")
////////////////////////////////////////////
After we have changed the settings,Run:
sudo motion
To kill motion, we can use following commands:
sudo su
ps -aux | grep motion
kill <id of motion>
Download and install VLC by opening up a new terminal and running:
sudo apt-get install vlc
Once VLC is set up, we can watch the webcam stream by running:
vlc http://localhost:8081/stream.mjpg
(NOTE:This should not be run with root(sudo su)or it will show an error)
|