Met behulp van een Raspberry Pi, laser en lichtsensor is het redelijk eenvoudig om een ’tripwire’ te maken. Door een laser op een lichtsensor te laten schijnen kun je detecteren wanneer de laser onderbroken wordt. Als de laser wordt onderbroken betekent dit dat er een object aanwezig is tussen de laser en lichtsensor.
Je kunt dus een tripwire inzetten voor beveiligingsdoeleinden of bijvoorbeeld gebruiken om te controleren of er post in je brievenbus zit. Het aansluiten is vrij simpel en met het bijhorende Python script kun je de status van je tripwire uitlezen.
Gebruikte componenten
• Lichtsensor module
• KY-008 Laser Transmitter Module
• 5x Dupont verbindingskabel (female/female)
Raspberry Pi Zero, Raspberry Pi 2, Raspberry Pi 3
Raspbian Jessie (2016-05-27 kernel 4.4.13)
Aansluitschema
Sluit de lichtsensor en laser module aan volgens het onderstaande schema:
Laser module | Raspberry Pi Pin | Raspberry Pi Functie |
---|---|---|
S | 11 | GPIO 17 |
GND | 6 | GND |
Lichtsensor | Raspberry Pi Pin | Raspberry Pi Functie |
---|---|---|
GND | 39 | GND |
VCC | 1 | 3.3v |
SIGNAL D0 | 16 | GPIO 23 |
Python tripwire script
Nadat de twee modules zijn aangesloten op de Raspberry Pi kunnen we de werking gaan testen, hiervoor kun je gebruikmaken van het onderstaande script:
#!/usr/bin/env python | |
# Tripwire met laser module en lichtsensor | |
# https://raspberrytips.nl/tripwire-laser | |
from datetime import datetime | |
import RPi.GPIO as GPIO | |
import os, time | |
SensorGPIO = 23 | |
LaserGPIO = 17 | |
def callback_func(channel): | |
if GPIO.input(channel): | |
print("Laser onderbroken -> "+str(datetime.now())) | |
if __name__ == '__main__': | |
GPIO.setmode(GPIO.BCM) | |
GPIO.setwarnings(False) | |
# activeer laser | |
GPIO.setup(LaserGPIO, GPIO.OUT) | |
GPIO.output(LaserGPIO, GPIO.HIGH) | |
#setup de lichtsensor | |
GPIO.setup(SensorGPIO, GPIO.IN) | |
GPIO.add_event_detect(SensorGPIO, GPIO.RISING, callback=callback_func, bouncetime=200) | |
try: | |
while True: | |
time.sleep(0.5) | |
except: | |
GPIO.remove_event_detect(SensorGPIO) | |
GPIO.output(LaserGPIO, GPIO.LOW) | |
GPIO.cleanup() |
Kopieer het bovenstaande script of download deze op je Raspberry Pi met:
wget https://raspberrytips.nl/tripwire.py
Activeer het script:
python tripwire.py
Het script zal de laser module activeren, zorg ervoor dat de laser is gericht op de lichtsensor. Wanneer hierna de laser wordt onderbroken wordt er een melding in het terminal venster weergegeven met het tijdstip dat dit plaatsvond.