- Komponenter, der kræves
- Kredsløbsdiagram til Raspberry Pi- og PIR-sensorbaseret bevægelsesdetektor
- Python-kode til Raspberry Pi:
Sikkerhedssystemer spiller en vigtig rolle i vores daglige liv, og der kan vi finde mange forskellige typer sikkerhedssystemer med forskellige slags teknologier og med forskellige prisklasser. At være en elektronisk entusiast kan du oprette et simpelt sikkerhedssystem ved at bruge få penge og lidt fritid. Her i denne artikel deler jeg en DIY-guide til at lave en simpel Raspberry pi- og PIR-sensorbaseret bevægelsesdetektoralarm, der tænder summeren, når PIR-sensoren registrerer enhver menneskelig bevægelse i området. Vi dækkede også et simpelt PIR-sensorbaseret bevægelsesdetektorkredsløb i en af vores tidligere artikler, hvor vi i detaljer dækkede PIR-sensorens arbejde.
Komponenter, der kræves
- Raspberry Pi 3 (enhver model)
- PIR-sensor
- Summer
- Brødbræt
- Tilslutning af ledninger
Arbejde med PIR-sensor
Passiv infrarød (PIR) sensor kaldes passiv, fordi den modtager infrarød, ikke udsender. Grundlæggende registrerer den enhver ændring i varmen, og når den registrerer en ændring, bliver dens output-PIN HØJ. De betegnes også som pyroelektriske eller IR bevægelsessensorer.
Her skal vi bemærke, at hvert objekt udsender en vis mængde infrarød, når det opvarmes. Human udsender også infrarød på grund af kropsvarme. PIR-sensorer kan registrere lille variation i infrarød. Hver gang en genstand passerer gennem sensorområdet, producerer den infrarød på grund af friktionen mellem luft og genstand og bliver fanget af PIR.
Hovedkomponenten i PIR-sensoren er den pyroelektriske sensor, der er vist i figuren (rektangulær krystal bag plastikhætten). Sammen med dette, BISS0001 ("Micro Power PIR Motion Detector IC"), nogle modstande, kondensatorer og andre komponenter, der bruges til at bygge PIR-sensor. BISS0001 IC tager input fra sensoren og behandler for at gøre output pin HIGH eller LOW i overensstemmelse hermed.
Pyroelektrisk sensor opdeles i to halvdele, når der ikke er nogen bevægelse, forbliver begge halvdele i samme tilstand, hvilket betyder, at begge registrerer det samme niveau af infrarødt. Så snart nogen kommer ind i første halvdel, bliver det infrarøde niveau på den ene halvdel større end den anden, og dette får PIR'er til at reagere og gør output pin høj.
Pyroelektrisk sensor er dækket af en plastikhætte, der har en række Fresnel-linser indeni. Disse linser er buede på en sådan måde, at sensoren kan dække et bredt spektrum.
Kredsløbsdiagram til Raspberry Pi- og PIR-sensorbaseret bevægelsesdetektor
Som vist i ovenstående skematisk diagram for Raspberry Pi og PIR-sensorbaseret bevægelsesdetektor, er den positive pin på PIR-sensoren forbundet med pin 4 (5v), og jorden pin på PIR-sensoren er forbundet med Pin 6 (Ground) på Raspberry Pi (Du kan her finde Pin Diagram of Raspberry Pi). PIR-sensorens udgangsstift er forbundet med GPIO 23 fra Raspberry pi, som bruges til at give input til Raspberry Pi. GPIO-stiften 24, som her erklæres for output, er forbundet med positiv af summer, og jord af summer er forbundet med jorden (pin 6) af hindbær pi.
Python-kode til Raspberry Pi:
Python-koden til denne hindbær pi- og PIR-sensorbaserede bevægelsesdetektor er ret enkel og kunne let forstås med kommentarerne inde i kodesektionen nedenfor. Jeg erklærede GPIO-pin 23 og 24 som input- og output-pins.
mens True: hvis GPIO.input (23): #Hvis der er en bevægelse, giver PIR-sensor input til GPIO23 GPIO.output (24, True) #Output givet til summer gennem GPIO24-tid. sove (1) #Buzzer tændes i 1 sekund GPIO. Output (24, Falsk)
En 'while' loop bruges som 'True', så indholdet inde i loop'en vil altid udføres. hvis GPIO.input (23): udsagn registrerer, om GPIO pin 23 er høj, og hvis det samme er tilfældet, gør det output-PIN 24 høj. Funktionstiden. Søvn (sek) bruges til at sætte programmet i python på pause i et bestemt tidspunkt, hvor 'sek' er tiden i sekunder. Så her plejede vi at sætte den i pause i 1 sekund. I den næste linje lavede vi output på 24 som falsk, så summer stopper, indtil sløjfen begynder den næste iteration, da While loop er indstillet altid sandt uden nogen forudsætning.