Har i helgen gjort et lite prosjekt.
Ønsket var å få en statusskjerm til å avktivere seg ved bevegelse over skjermen.
Sensor kan selvfølgelig også peke ut i rommet, men jeg ville ikke ha den aktiv med mindre jeg tok hånden over skjermen.
Du trenger.
En raspberry pi
En lcd skjerm og casing.
En motion sensor
En frisk installasjon av raspbian.
Skjerm
https://www.kjell.com/no/produkter/data-og-nettverk/enkortsdata/raspberry-pi/raspberry-pi-beroringsskjerm-7--p87843
Kabinett
https://www.kjell.com/no/produkter/data-og-nettverk/enkortsdata/raspberry-pi/kabinett-for-raspberry-pi-og-beroringsskjerm-p87869
Build info for skjerm
https://thepihut.com/blogs/raspberry-pi-tutorials/45295044-raspberry-pi-7-touch-screen-assembly-guide
Bevegelsessensoren jeg har benyttet
https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/tilbehor/luxorparts-bevegelsesdetektor-p87892
Vær obs på å sjekke ut hva som er 5v og negativ på den du kjøper, her varierer de på pinne, og ikke alltid godt merket.
Ga motion sensor (pir) 5v og gnd, samt pinne 21 for sensor på raspberry pi.
Koblingskablene sine pinner passer akkurat så man kan holde sensoren fast mellom bakplate på casing og casing, se bilde.
Python kode.
Min lagret jeg som pir.py og kjører «python pir.py»
Skriptet står da og går og uansett hva du starter av browsere osv er da tilgjengelig når du trenger det.
Lar innebygget funksjon i raspbian slukke skjermen, men vekker den opp når sensor merker bevegelse, se kode.
Husk å enable gpio tilgang i raspbian
«kode start»
import subprocess
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
pir_sensor = 21 #GPIO pin 21
GPIO.setup(pir_sensor, GPIO.IN, GPIO.PUD_DOWN)
current_state = 0
while True:
try:
time.sleep(0.1)
current_state = GPIO.input(pir_sensor)
if current_state == 1:
print("GPIO pin %s is %s" % (pir_sensor, current_state)),
print (time.ctime()) # # motion detected at time
subprocess.call('DISPLAY=:0 xset dpms force on', shell=True)
time.sleep(4) # wait 4 seconds for PIR to reset.
except KeyboardInterrupt:
GPIO.cleanup()
«kode slutt»
Lykke til.
Snømannen
VIDEO av den i aksjon.
MotionVideo.mov