Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Rasberry PI med motion sensor for å vekke skjerm


Anbefalte innlegg

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

Bakside.jpg

FraSiden.jpg

innside.jpg

 

VIDEO av den i aksjon.

MotionVideo.mov

 

 

Nærbilde.jpg

Skjermbilde 2018-02-11 kl. 23.35.26.jpg

Endret av Snowman
  • Like 4
  • Thanks 1
Lenke til kommentar
Del på andre sider

[Unit] 
Description=start and stop snowmans pir service

[Service]
WorkingDirectory=/home/pi
User=pi
Group=pi
Restart=always
RestartSec=20
ExecStart=/usr/bin/python /home/pi/pir.py


[Install]
WantedBy=multi-user.target
Alias=ventsensors.service

Prøv denne som /etc/systemd/system/pir.service

 

Da skal python-scriptet ditt startes automagisk hver gang du setter i power (det hadde du kanskje allerede ordnet), men det vil også startes om igjen med 20 sek forsinkelse hvis det av en eller annen grunn feiler. 

 

  • Like 1
Lenke til kommentar
Del på andre sider

49 minutes ago, berland said:

Ganske stilig! Har du fått testet touch-responsen på denne - og hvilken "hovedprogramvare" kjører du på den for statusinformasjonen?

Takk for tips om å legge til scriptet som service, novice på python kan man si :-)

Responsen fra skjermen er helt ok den, litt smått selvfølgelig.

Zoom i chromium for å tilpasse sitt behov var greit.

Dash jeg bruker er for Smartthings og heter webcore

https://wiki.webcore.co/

 

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.