Snowman Skrevet 11. februar 2018 Skrevet 11. februar 2018 (endret) 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 Endret 11. februar 2018 av Snowman 4 1 Siter
Snowman Skrevet 11. februar 2018 Forfatter Skrevet 11. februar 2018 @clio75 og @Moskus Her er writeup og bilder. 1 Siter
berland Skrevet 11. februar 2018 Skrevet 11. februar 2018 [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. 1 Siter
berland Skrevet 11. februar 2018 Skrevet 11. februar 2018 Ganske stilig! Har du fått testet touch-responsen på denne - og hvilken "hovedprogramvare" kjører du på den for statusinformasjonen? Siter
Snowman Skrevet 11. februar 2018 Forfatter Skrevet 11. februar 2018 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/ Siter
Anbefalte innlegg
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.