Innholdsfortegnelse:
- Trinn 1: Rund opp nødvendige komponenter
- Trinn 2: Få Pi i gang
- Trinn 3: Lag laserdeteksjonskretsen
- Trinn 4: Endre laseren for ekstern strøm
- Trinn 5: Slå på laseren og test deteksjonskretsen
- Trinn 6: Koble til webkameraet ditt og test funksjonaliteten
- Trinn 7: Pause
- Trinn 8: Overvåk laseren med programvare
- Trinn 9: Lag en webside for å vise strømmen din
- Trinn 10: Konfigurer e -postvarsler
- Trinn 11: Utløser e -postskript når laser utløses
- Trinn 12: Lag et hovedskript for å starte systemet
- Trinn 13: Konklusjon
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Takk for at du sjekket ut min instruerbare. Ved slutten av denne instruksjonsboken vil du konstruere bringebær pi laser tripwire -systemet med e -postvarslingsfunksjonalitet som vises i videoen.
For å fullføre denne instruksjonsmåten må du bli kjent med generelle kretser og lodding, vite hvordan du bruker et brødbrett og være komfortabel med å bruke terminalen på pi. Å ha erfaring med python vil også være nyttig.
Dette prosjektet består av tre hovedsystemer. Bringebær -pi, laser -tripwire -kretsen og en observasjonsdatamaskin. Målet vårt er å bruke bringebær -pi til å oppdage en spenningsendring på lasertrykkretsen, og deretter varsle en observerende datamaskin i form av en e -post og videostrøm.
La oss begynne.
Trinn 1: Rund opp nødvendige komponenter
For å fullføre dette prosjektet trenger du følgende elementer.
- Minst en operativ Raspberry Pi. I denne bygningen brukte jeg en modell B -stil Pi som kjørte raspbian wheezy. Jeg er sikker på at denne opplæringen vil fungere helt fint hvis du kjører raspbian jessie.
- En ekstern strømkilde for bringebærpi. Vi vil tegne en betydelig mengde strømstyrke når alt dette er koblet til. Jeg brukte mye tid på å diagnostisere en elendig strømforsyning som min kilde til problemer under min første bygging. Sørg for at du har en kraftig kraft som kan levere minst 2 ampere.
- En billig laserpeker. Jeg fant min ved siden av kassaapparatet på en bensinstasjon. Hvis du vil ha den eksakte laseren, kan du finne den her. Etiketten sier 630-680 nm for bølgelengden. Uansett hvilken laser du får bestemmer noen av de andre komponentene i bygget. Så sørg for at etiketten identifiserer bølgelengden.
- Et webkamera i usb -stil. Dette webkameraet har en justerbar fot som lar deg plassere kameraet pent. Jeg fant ut at usb -kabelen som fulgte med webkameraet var for kort for applikasjonen min, så jeg fant en utvidelse på monopris.
-
En slags breakout kit for bringebær pi slik at du kan ha lett tilgang til pinnene på prosessoren.
- Et brødbrett.
- Et loddejern.
- Stikkledninger til brødbrettet.
-
Kretskomponenter. Multipliser med mengden turkabler du vil ha.
- En fungerende ledet
- En 100 ohm motstand
- En 1k motstand
- En 10k motstand
- Én 200k motstand Egentlig vil enhver stor motstand gjøre det. Jeg testet den med en 1M motstand og den fungerte bra. FYI 10k var for liten.
- En PNP-transistor PN: 2N4403-APCT-ND
- Én fotodiode (match denne med laserbølgelengden) PN: PDB-C142-ND
Jeg vil legge ved kicad -filene for kretskortet, men vil ikke gå over produksjonen av brettet i denne instruksen.
I løpet av dette prosjektet fant jeg følgende valgfrie verktøy:
- Installere synergi på bringebær pi. Hvis du ikke er kjent, lar denne programvaren deg styre bringebær Pi -musen og tastaturet med en annen datamaskin. Dette er fint hvis du er som meg og er mer komfortabel på en annen datamaskin. Dette er også programvare som alle bør ha.
- Et usb -hub. For hvert webkamera du ønsker å bruke trenger du en port.
- Spenningsmåler eller oscilloskop hvis du har det.
- Bruke MobaXterm til å kontrollere bringebær -pi og manipulere filer gjennom ssh. Det er et must for alle hevet på vinduer. Se denne opplæringen for å sette opp for å bruke den.
Trinn 2: Få Pi i gang
Pi med minimale komponenter festet
Før vi kan skyte lasere, er det flere lag med programvare som må konstrueres. For å ha den beste sjansen for å lykkes er det god praksis å starte med en ren skifer. For å gjøre dette, koble alle unødvendige elementer fra Pi. Dette vil redusere sjansene for interferens fra en tilkoblet enhet.
Deretter må du kontrollere at Raspberry Pi er i gang med den nyeste programvaren ved å skrive inn følgende i terminalen
sudo apt-get oppdatering
Med bringebær pi oppdatert er det på tide for neste trinn
Trinn 3: Lag laserdeteksjonskretsen
Legg komponentene på brødbrettet som vist. Slå på brødbrettet ved å bruke 5v -utgangen fra pi eller en strømforsyning ved bordet. I figur 1 er 5v -forsyningen koblet til den positive brødbrettskinnen nederst til venstre på bildet, og bakken til øvre venstre. Denne kretsen bruker fotodioden som bryter for å utløse transistoren. Transistoren konverterer den lille spenningsendringen i fotodioden til et noe digitalt signal som pi kan lese. For alle påfølgende trinn vil punktet mellom 100ohm og signalledningen være der vi prøver kretsen med pi.
-
Fig 1: Circuit breadboard layout topp
-
Fig 2: Circuit breadboard layout alternativ visning
Hvis du vil ha et renere utseende, har jeg lagt ved kicad -filene for brettet som er vist nedenfor.
-
Fig 3: Sensorbrett sett ovenfra
-
Fig 4: Sensor board ISO
-
Den oransje ledningen erstatter den øyeblikkelige trykknappen
-
Viser positive og negative kundeemner
-
Kuleledd
-
Stikkontakt
-
Kule og fatning montert
-
Arbeidslaser med en sunn stråle
-
Strålen er ikke ødelagt og lysdioden er av
-
Inntrenger bryter strålen og får ledningen til å lyse
-
mjpg-streamer prøveutgang
-
Brødbrettoppsett med PiCobler
-
Riktig konsollutgang (vist ved bruk av MobaXterm)
-
Skjermbilde av de vedlagte filene i drift
- your_ip = "192.168.0.177"
- your_ip_optional_port = ": 8080"
- port_to_camera = ": 8081"
- sending_email_username = "brukernavnet ditt på e -post"
- sending_email_password = "passordet ditt"
-
Skjermbilde av de vedlagte filene i drift
Trinn 4: Endre laseren for ekstern strøm
I de følgende trinnene vil du bygge laserpekerenheten.
- Demonter laserpekeren. Når du gjør det, må du merke orienteringen til batteripolene i forhold til lasersenderen.- Deretter lodder du batteriforbindelsesfjæren og en kort trykknapp fra laseren.- Lodd et stykke ledning mellom terminalene der knappen var. Når strømmen tilføres laseren, slås den på automatisk.- Nå loddes de positive og negative ledningene til laseren. Hvis du bruker den samme laseren fra delelisten, kan du bruke bildet nedenfor for å se loddepunktene. Hvis du ikke er det, må du kanskje finne loddepunktene selv. Du kan bruke batteriretningen som et hint for den positive eller negative ledningen. For å finne det siste loddepunktet kan du bruke en 5v strømforsyning og sonde kretsen med to testledninger. Når du har opprettet riktig krets, har du funnet loddepunktet, og laseren lyser.
- Det siste trinnet er å lage en retningsbestemt monteringsstolpe for laseren, slik at den enkelt kan justeres for å sikte mot laserkontakten. Jeg har funnet ut at de fleste lego bionicle -sett er en utmerket kilde til billig ball i sokkel ledd. Lim ett stykke av kuleleddet til laserpekeren med superlim. Nå kan du montere sokkelleddet på hvilken som helst overflate og snekke laseren inn.
Trinn 5: Slå på laseren og test deteksjonskretsen
Koble laseren til brødbrettet. Det positive må kobles til 5v og jordes den negative ledningen. Hvis laseren slår seg bra, hvis ikke, må du dobbeltsjekke at du har riktig spenning med et multimeter. Hvis det fortsatt ikke fungerer, kan du bytte ledninger i tilfelle du koblet det bakover. Hvis det fortsatt ikke virker, har du kanskje ikke loddet til de riktige putene, gå tilbake til det siste trinnet.
Når du har laserstrålingen, er det på tide å teste deteksjonskretsen. Rett laseren mot fotodioden. Lysdioden skal slå av signalet om at strålen er aktiv. Vink deg med strålen og LED -lampen skal slå på for å signalisere en tur.
Trinn 6: Koble til webkameraet ditt og test funksjonaliteten
Koble webkameraet til usb -porten. For å streame videoen må vi få verktøyet mjpg-streamer. Her er en flott opplæring om hvordan du gjør nettopp det. Når du har mjpg-streamer installert riktig. Start streaming video ved å skrive inn følgende kommando i terminalen.
cd /hvor du installerte mjpg-streamer /mjpg-streamer
./mjpg_streamer -i "./input_uvc.so -y/dev/video0" -o "./output_http.so -w./www -p 8081"
Denne kommandoen vil sette opp en strøm på port 8081 ved hjelp av video0 -kilden. Hvis du vil ha flere webkameraer, skriver du inn kommandoen ovenfor igjen, men endrer video0 til video1 og 8081 til 8082. Jeg har streamet opptil 3 webkameraer på denne måten, og pi -en ble ikke overbelastet.
Test at tilkoblingen fungerer ved å åpne en nettleser på en annen datamaskin og angi ip-address-of-pi: 8081 eller på pi kan du bare skrive inn localhost: 8081. Hvis du ikke kjenner din ip av pi, skriver du inn følgende i terminalen
ifconfig
Hvis alt fungerer, bør du se mpg-streamer-hjemmesiden. Klikk på strømfanen for å se strømmen til webkameraet ditt. Nedenfor er et skjermbilde av grensesnittet.
Ved å gjøre denne opplæringen for andre gang fikk jeg tilgang til mjpg-streamer-hjemmesiden, men så ikke en strøm. For å fikse dette leste jeg dette innlegget (lenken er nå ødelagt), spesielt delen om YUYV -pikselformat. Hvis du støter på en tom strøm, bør du også konsultere den.
Trinn 7: Pause
Ok, så på dette tidspunktet burde vi ha bringebærpai i gang. Laseren vår har blitt modifisert for ekstern strøm. Vår deteksjonskrets er konstruert, og du har bekreftet at når laserstrålen treffer fotodioden, slås lysdioden av og når du bryter strålen, skal lysdioden slås på. Til slutt bør du ha webkameraet tilkoblet og funksjonelt streaming.
Nå er det på tide å sette alt sammen. La oss starte enkelt ved å prøve å oppdage laserstråleutløsningen med programvare.
Koble deteksjonskretsen til brødbrettet som vist. Sørg for at du kobler sensorsignaltråden til pin 25 som forberedelse til neste trinn. Nedtrekksmotstanden er ikke valgfri. Jeg hadde en 10k liggende, men enhver motstand burde gjøre.
Trinn 8: Overvåk laseren med programvare
La oss skrive et kort program for å lytte til lasersignalet og legge det ut på terminalen. Du kan laste ned koden som et vedlegg.
Du må sannsynligvis installere avhengighetene for dette skriptet. Python og gpio -modulen. For å installere disse enter
sudo apt-get install python-rpi.gpio python3-rpi.gpio
Når du har installert python vellykket, laster du ned det vedlagte python -skriptet read_pin.py og kjører
cd /katalog der du la filen /chmod 777 read_pin.py
Chmod -kommandoen gir skriptet tillatelse til å kjøre. Test deretter at alt er bra og dandy ved å løpe
sudo python3 read_pin.py
Hvis alt går bra, bør du se en konsollutgang som vist nedenfor. For å gå ut av python -skriptet, skriv inn
Ctrl-C
Vift hånden foran laserstrålen, og du bør se en viss utgang på konsollen som varsler deg om at strålen er brutt. Spill gjerne med skriptet for å få systemet til å fungere på forskjellige måter.
Trinn 9: Lag en webside for å vise strømmen din
Nå må vi sette opp et grensesnitt for visning av webkamera. For dette trinnet må du installere apache webserver. Det er mange opplæringsprogrammer der ute for å sette opp en. Men her er den korte listen med minimal konfigurasjon.
sudo apt-get install apache2
når den er installert, bør du kunne skrive inn nettleseren din på bringebær pi
lokal vert
Du bør se velkomstsiden fra apache. Hvis dette er første gang du setter opp en webserver, vil du sannsynligvis konfigurere pi -en din til å ha en statisk ip -adresse, slik at ruteren din alltid vil tildele riktig ip hvis du gjør en strømsyklus. Hvis du vil se sikkerhetssystemet ditt fra et annet sted, må du konfigurere portvideresending på ruteren. Det har vært en stund, men jeg tror også du må videresende alle porter som også har et webkamera. Det er mange opplæringsprogrammer der ute som dekker disse prosedyrene. Vær oppmerksom på at alle kan se webkameraet ditt hvis du velger å konfigurere portvideresending på ruteren.
De vedlagte filene er eksempler på nettsider som du kan bruke til å sette opp nettstedet ditt. Du må endre filtypen på html -filen, siden de ikke ville la meg laste den opp. Plasser deretter filene i www -mappen som ble kalt i apache -konfigurasjonsfilen. Standardplasseringen er
cd /var /www
Hvis du vil endre plasseringen der webserveren ser etter HTML -filene dine, kan du redigere nettstedaktiverte filen din ved å skrive inn
sudo nano/etc/apache2/sites-enabled/000-default
Endre forekomsten av/var/www/til stedet du ønsker. Jeg satte min i/home/pi/Desktop/www/
Når du har html -filene i webmappen, skriver du inn localhost i nettleseren eller ip -adressen til pi fra en annen datamaskin. Du burde se noe slikt.
SØT!
Trinn 10: Konfigurer e -postvarsler
Gode ting skjer! La oss trykke på lykken ved å prøve å sende et e -postvarsel fra pi til en forhåndsdefinert e -postadresse. Det vedlagte python -skriptet vil bygge e -posten du vil sende, koble til en e -postleverandør som gmail og sende e -posten ved hjelp av e -postleverandøren. Dette oppnås ved å bruke smtp -pakken med python. Jeg foreslår at du lager en dummy -e -postadresse bare for ditt sikkerhetssystem, da vi må redusere sikkerheten på gmail -kontoen din for at smtp -pakken skal fungere.
Du må endre skriptet flere steder for å få en vellykket overføring. Det er sterkt kommentert og vil produsere mange utganger på terminalen for din bekvemmelighet.
Ting du må endre vil være
your_ip_optional_port vil mest sannsynlig være tom med mindre apache -serveren din kjører på en annen port enn standard 80. Jeg hadde allerede en server som kjørte på 80, så jeg satte min pi til å kjøre på 8080. port_to_camera vil være porten du angir kameraet ditt til kjør på med mjpeg streamer.
Når du har endret disse variablene i begynnelsen av skriptet, kjører du programmet ved å skrive inn følgende i terminalen.
cd /mappe der du la skriptet /
sudo python3 send_mail.py
Hvis stjernene er riktig justert og alle variablene er riktige, bør du få en e -post som ligner den nedenfor.
Det er mange steder hvor dette skriptet kan mislykkes. Ikke bli frustrert hvis det ikke fungerer første gangen. Bruk feilsøkingspunktene i skriptet til å begrense problemområdene og deretter fokusere på ett problem om gangen.
Trinn 11: Utløser e -postskript når laser utløses
Nå som pi er i stand til å sende e -post, la oss automatisere det slik at hver gang laseren blir utløst, får vi en e -post. Last ned den vedlagte filen, som er en modifisert versjon av read_pin.py som inneholder en ny funksjon for å sende e -postskriptet. Den viktigste tilleggslinjen er følgende
sm_pid = os.spawnlp (os. P_NOWAIT, "/usr/bin/python3", "python3", "/home/pi/Desktop/security/send_mail.py")
Denne linjen starter sendemail -skriptet parallelt med lasersensorskriptet. Dette er ønskelig fordi det tar noen sekunder å fullføre sending av e -postskriptet, og det vil blokkere lasersensorskriptet fra å kjøre til e -posten ble sendt. Dette er ikke et problem for et enkelt kamerasystem, men hvis du hadde flere kameraer, vil du oppdage en lasertur på kamera 1 selv om kamera 2 har utløst en e -posthendelse. Sm_pid -variabelen vil inneholde pid av prosessen som startes av denne kommandoen. Vi ser etter denne ID -en om e -postutløseren blir ringt igjen hvis den eksisterer, og e -posten fortsatt sender, så vi ignorerer hendelsen. Hvis den ikke eksisterer, er dette sannsynligvis en ny hendelse, og en e -post blir sendt.
Test alt fungerer ved å kjøre
cd /katalog der du la filen /
chmod 777 read_pin_with_mail.py
sudo python3 read_pin_with_mail.py
Når du bryter laserstrålen, bør du få en e -post med øyeblikksbildet tatt fra webkameraet.
Trinn 12: Lag et hovedskript for å starte systemet
På dette tidspunktet er prosjektet stort sett ferdig. Et siste trinn er å forenkle oppstarten av systemet med et siste skript. Det vil starte alle delprogrammene og sette opp webkameraet med ett skript. Den vedlagte filen kan startes ved oppstart ved å redigere /etc/rc.local -filen. Du må endre filtypen og må kanskje redigere skriptet for å inkludere de riktige banene hvis du legger skriptene dine til et annet sted.
Trinn 13: Konklusjon
Vel, det er det. Jeg håper du likte dette instruerbare! Gi meg beskjed i kommentarene hvis du har spørsmål eller trenger mer detaljert informasjon på noen områder. Fortsett å tukle!