Inhoudsopgave:
- Stap 1: Vereiste componenten afronden
- Stap 2: Zet de Pi aan de gang
- Stap 3: Maak het laserdetectiecircuit
- Stap 4: wijzig de laser voor externe voeding
- Stap 5: Schakel de laser in en test het detectiecircuit
- Stap 6: sluit uw webcam aan en test de functionaliteit ervan
- Stap 7: Pauze
- Stap 8: Bewaak de laser met software
- Stap 9: Maak een webpagina om uw stream weer te geven
- Stap 10: E-mailwaarschuwingen instellen
- Stap 11: Activeer e-mailscript wanneer laser wordt geactiveerd
- Stap 12: Maak een masterscript om het systeem te starten
- Stap 13: Conclusie
Video: Raspberry Pi laserbeveiligingssysteem - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Bedankt voor het bekijken van mijn instructable. Aan het einde van deze instructable bouw je het Raspberry Pi-laser-tripwire-systeem met e-mailwaarschuwingsfunctionaliteit die in de video wordt getoond.
Om deze instructable te voltooien, moet je bekend zijn met algemene circuits en solderen, weten hoe je een breadboard moet gebruiken en vertrouwd zijn met het gebruik van de terminal op de pi. Ervaring met Python zal ook nuttig zijn.
Dit project bestaat uit drie hoofdsystemen. De Raspberry Pi, het laser tripwire circuit en een observerende computer. Ons doel is om de Raspberry Pi te gebruiken om een spanningsverandering op het lasertripwire-circuit te detecteren en vervolgens een observerende computer te waarschuwen in de vorm van een e-mail en videostream.
Laten we beginnen.
Stap 1: Vereiste componenten afronden
Om dit project te voltooien, hebt u de volgende items nodig.
- Ten minste één operationele Raspberry Pi. In deze build heb ik een model B-stijl Pi gebruikt met raspbian wheezy. Ik weet zeker dat deze tutorial prima zal werken als je raspbian jessie gebruikt.
- Een externe stroombron voor de Raspberry Pi. We zullen een aanzienlijke hoeveelheid stroomsterkte trekken zodra dit alles is aangesloten. Ik heb veel tijd besteed aan het diagnosticeren van een waardeloze voeding als mijn bron van problemen tijdens mijn eerste build. Zorg ervoor dat je een stevige krachtbron hebt die minimaal 2 ampère kan leveren.
- Een goedkope laserpointer. Ik vond de mijne naast de kassa bij een tankstation. Als u de exacte laser wilt, kunt u deze hier vinden. Op het label staat 630-680 nm voor de golflengte. Welke laser u ook krijgt, bepaalt enkele van de andere componenten in de build. Zorg er dus voor dat het label de golflengte aangeeft.
- Een webcam in usb-stijl. Deze webcam heeft een verstelbare voet waarmee je de camera mooi kunt positioneren. Ik vond dat de usb-kabel die bij de webcam zat te kort was voor mijn toepassing, dus vond ik een verlenging op monoprice.
-
Een soort breakout-kit voor de Raspberry Pi, zodat je gemakkelijk toegang hebt tot de pinnen op de processor.
- Een broodplank.
- Een soldeerbout.
- Overbruggingsdraden voor het breadboard.
-
Circuitcomponenten. Vermenigvuldig met het aantal tripdraden dat u wilt.
- Een werkende led
- Een weerstand van 100 ohm
- Een weerstand van 1k
- Een weerstand van 10k
- Een weerstand van 200k Werkelijk elke grote weerstand is voldoende. Ik heb het getest met een weerstand van 1M en het werkte prima. Ter info 10k was te klein.
- Eén PNP-transistor PN:2N4403-APCT-ND
- Eén fotodiode (pas deze aan op uw lasergolflengte) PN:PDB-C142-ND
Ik zal de kicad-bestanden voor de printplaat bijvoegen, maar zal niet ingaan op de productie van het bord in deze instructable.
In de loop van dit project vond ik de volgende optionele hulpmiddelen handig:
- Synergie installeren op de Raspberry Pi. Voor het geval u niet bekend bent, kunt u met deze software de muis en het toetsenbord van de raspberry pi met een andere computer bedienen. Dit is fijn als je net als ik bent en je meer op je gemak voelt op een andere computer. Dit is ook software die iedereen zou moeten hebben.
- Een usb-hub. Voor elke webcam die u wilt gebruiken, heeft u één poort nodig.
- Spanningsmeter of oscilloscoop als je die hebt.
- MobaXterm gebruiken om de Raspberry Pi te besturen en bestanden te manipuleren via ssh. Het is een must-have voor iedereen die op ramen is geheven. Bekijk deze zelfstudie om u voor te bereiden om het te gebruiken.
Stap 2: Zet de Pi aan de gang
De pi met minimale componenten aangesloten
Voordat we lasers kunnen schieten, moeten er verschillende lagen software worden geconstrueerd. Om de meeste kans op succes te hebben, is het een goede gewoonte om met een schone lei te beginnen. Om dit te doen, ontkoppel alle onnodige items van de Pi. Dit verkleint de kans op interferentie van een aangesloten apparaat.
Zorg er vervolgens voor dat uw Raspberry Pi werkt met de nieuwste software door het volgende in de terminal in te voeren:
sudo apt-get update
Met de raspberry pi up-to-date is het tijd voor de volgende stap
Stap 3: Maak het laserdetectiecircuit
Plaats de componenten op het breadboard zoals afgebeeld. Voorzie het breadboard van stroom met behulp van de 5v-uitgang van de pi of een benchtop-voeding. In figuur 1 is de 5v-voeding aangesloten op de positieve breadboard-rail linksonder in de afbeelding en de grond linksboven. Deze schakeling gebruikt de fotodiode als schakelaar om de transistor te triggeren. De transistor zet de kleine spanningsverandering in de fotodiode om in een enigszins digitaal signaal dat de pi kan lezen. Voor alle volgende stappen zal het punt tussen de 100ohm en de signaal-led zijn waar we het circuit met de pi bemonsteren.
-
Fig 1: Circuit breadboard layout top
-
Fig 2: Alternatieve weergave circuit breadboard layout
Als je een schoner uiterlijk wilt, heb ik de kicad-bestanden bijgevoegd voor het bord dat hieronder wordt weergegeven.
-
Fig 3: Bovenaanzicht sensorkaart
-
Fig 4: Sensorkaart ISO
-
De oranje draad vervangt de tijdelijke drukknop
-
Positieve en negatieve leads weergeven
-
Kogelgewricht
-
Dopverbinding:
-
Kogel en mof gemonteerd
-
Werkende laser met een gezonde straal
-
De straal is niet gebroken en de led is uit
-
Indringer breekt de straal waardoor de led gaat branden
-
mjpg-streamer voorbeelduitvoer
-
Breadboard-indeling met PiCobler
-
Correcte console-output (weergegeven met MobaXterm)
-
Screenshot van de bijgevoegde bestanden in werking
- your_ip = "192.168.0.177"
- your_ip_Optional_port = ":8080"
- port_to_camera = ":8081"
- send_email_username = "uw e-mail gebruikersnaam"
- send_email_password = "uw wachtwoord"
-
Screenshot van de bijgevoegde bestanden in werking
Stap 4: wijzig de laser voor externe voeding
In de volgende stappen bouwt u de laserpointerconstructie.
- Demonteer de laserpointer. Let daarbij op de oriëntatie van de accupolen ten opzichte van de laserzender.- Desoldeer vervolgens de accuverbindingsveer en de kortstondige drukknop van de laser.- Soldeer een stuk draad tussen de klemmen waar de knop zat. Als er nu stroom aan de laser wordt geleverd, wordt deze automatisch ingeschakeld. Soldeer nu de positieve en negatieve draden aan de laser. Als u dezelfde laser uit de onderdelenlijst gebruikt, kunt u de onderstaande afbeelding gebruiken om de soldeerpunten te zien. Als dat niet het geval is, moet u mogelijk zelf de soldeerpunten zoeken. U kunt de richting van de batterij gebruiken als een hint voor de positieve of negatieve leiding. Om het laatste soldeerpunt te vinden, kunt u een 5v-voeding gebruiken en het circuit met twee meetsnoeren doorzoeken. Als je de juiste schakeling hebt gemaakt, heb je het soldeerpunt gevonden en gaat de laser branden.
- De laatste stap is het maken van een richtbare montagepaal voor de laser, zodat deze eenvoudig kan worden aangepast om op de laserhouder te richten. Ik heb ontdekt dat de meeste lego-bionicle-kits een uitstekende bron zijn voor goedkope kogelgewrichten. Lijm een stuk van het kogelgewricht met superlijm op de laserpointer. Nu kunt u de mofverbinding op elk oppervlak monteren en de laser vastklikken.
Stap 5: Schakel de laser in en test het detectiecircuit
Sluit de laser aan op uw breadboard. De positieve moet worden aangesloten op 5v en de negatieve draad aarden. Als de laser goed wordt ingeschakeld, controleer dan nogmaals of je de juiste spanning hebt met een multimeter. Als het nog steeds niet werkt, probeer dan de draden te verwisselen voor het geval je het achterstevoren hebt aangesloten. Als het nog steeds niet werkt, heb je misschien niet op de juiste pads gesoldeerd, ga dan terug naar de laatste stap.
Zodra u de laserstraal hebt, is het tijd om het detectiecircuit te testen. Richt de laser op de fotodiode. De LED moet uitgaan om aan te geven dat de straal actief is. Zwaai met je hand door de straal en de LED moet gaan branden om een trip aan te geven.
Stap 6: sluit uw webcam aan en test de functionaliteit ervan
Sluit je webcam aan op de usb-poort. Om de video te streamen, hebben we het hulpprogramma mjpg-streamer nodig. Hier is een geweldige tutorial over hoe je precies dat kunt doen. Zodra je mjpg-streamer goed hebt geïnstalleerd. Begin met het streamen van video door de volgende opdracht in de terminal in te voeren.
cd /waar je mjpg-streamer/mjpg-streamer hebt geïnstalleerd
./mjpg_streamer -i "./input_uvc.so -y /dev/video0" -o "./output_http.so -w./www -p 8081"
Met deze opdracht wordt een stream op poort 8081 ingesteld met behulp van de video0-bron. Als je meerdere webcams wilt, voer dan de bovenstaande opdracht opnieuw in, maar verander video0 in video1 en 8081 in 8082. Ik heb op deze manier tot 3 webcams gestreamd en de pi werd niet overbelast.
Test of de verbinding werkt door een browser op een andere computer te openen en ip-address-of-pi:8081 in te voeren of op de pi kunt u gewoon localhost:8081 invoeren. Als u uw ip van de pi niet weet, voert u het volgende in de terminal in:
ifconfig
Als alles werkt, zou je de startpagina van mpg-streamer moeten zien. Klik op het streamtabblad om uw webcamstream te zien. Hieronder ziet u een screenshot van de interface.
Toen ik deze tutorial voor de tweede keer deed, kreeg ik toegang tot de startpagina van mjpg-streamer, maar ik zag geen stream. Om dit op te lossen heb ik dit bericht gelezen (link is nu verbroken), met name het gedeelte over het YUYV-pixelformaat, als je een lege stream tegenkomt, moet je deze ook raadplegen.
Stap 7: Pauze
Oké, dus op dit punt zouden we onze Raspberry Pi in gebruik moeten hebben. Onze laser is aangepast voor externe voeding. Ons detectiecircuit is geconstrueerd en u hebt bevestigd dat wanneer de laserstraal de fotodiode raakt, de led uitgaat en wanneer u de straal verbreekt, moet de led aan gaan. Ten slotte moet uw webcam zijn aangesloten en functioneel streamen.
Nu is het tijd om alles op een rijtje te zetten. Laten we eenvoudig beginnen door te proberen de uitschakeling van de laserstraal te detecteren met software.
Sluit het detectiecircuit aan op het breadboard zoals afgebeeld. Zorg ervoor dat u de sensorsignaaldraad aansluit op pin 25 ter voorbereiding op de volgende stap. De pull-down weerstand is niet optioneel. Ik had een 10k liggen, maar elke weerstand zou het moeten doen.
Stap 8: Bewaak de laser met software
Laten we een kort programma schrijven om naar het lasersignaal te luisteren en die uitvoer naar de terminal sturen. U kunt de code als bijlage downloaden.
U zult waarschijnlijk de afhankelijkheden voor dit script moeten installeren. Python en de gpio-module. Om deze te installeren voer
sudo apt-get install python-rpi.gpio python3-rpi.gpio
Zodra u een succesvolle installatie van python heeft, downloadt u het bijgevoegde python-script met de naam read_pin.py en voert u het uit
cd /directory waar u het bestand/chmod 777 read_pin.py. plaatst
De opdracht chmod geeft het script toestemming om uit te voeren. Test vervolgens of alles in orde is door te rennen
sudo python3 read_pin.py
Als alles goed gaat, zou je een console-uitvoer moeten zien zoals hieronder weergegeven. Om het python-script af te sluiten, typt u:
Ctrl-C
Zwaai met uw hand voor de laserstraal en u zou een uitvoer op de console moeten zien die u waarschuwt dat de straal is onderbroken. Voel je vrij om met het script te spelen om je systeem op verschillende manieren te laten presteren.
Stap 9: Maak een webpagina om uw stream weer te geven
Nu moeten we een interface voor het bekijken van een webcam instellen. Voor deze stap moet u de apache-webserver installeren. Er zijn tal van tutorials die er zijn over het opzetten van een. Maar hier is de korte lijst met minimale configuratie.
sudo apt-get install apache2
eenmaal geïnstalleerd zou je in je browser moeten kunnen typen op de raspberry pi
localhost
Je zou de welkomstpagina van apache moeten zien. Als dit de eerste keer is dat je een webserver instelt, wil je waarschijnlijk je pi zo configureren dat deze een statisch ip-adres heeft, zodat je router altijd het juiste ip zal toewijzen als je een power cycle uitvoert. Als u uw beveiligingssysteem vanaf een andere locatie wilt bekijken, moet u port forwarding instellen op uw router. Het is een tijdje geleden, maar ik denk ook dat je alle poorten met een webcam moet doorsturen. Er zijn tal van tutorials die deze procedures behandelen. Houd er rekening mee dat iedereen uw webcam kan zien als u ervoor kiest om port forwarding in te stellen op uw router.
De bijgevoegde bestanden zijn voorbeeldwebpagina's die u kunt gebruiken om uw website in te stellen. U moet de bestandsextensie van het html-bestand wijzigen, omdat ik het niet kan uploaden. Plaats vervolgens de bestanden in uw www-map die wordt genoemd in uw apache-configuratiebestand. De standaardlocatie is
cd /var/www
Als u de locatie wilt wijzigen waar de webserver naar uw html-bestanden zoekt, kunt u uw voor sites ingeschakelde bestand bewerken door:
sudo nano /etc/apache2/sites-enabled/000-default
Wijzig elke instantie van /var/www/ naar de gewenste locatie. Ik heb de mijne in /home/pi/Desktop/www/ gezet
Zodra u de html-bestanden in de webmap hebt, voert u localhost in de browser in of het ip-adres van de pi van een andere computer. Je zou zoiets moeten zien.
SEEEEET!
Stap 10: E-mailwaarschuwingen instellen
Er gebeuren goede dingen! Laten we ons geluk beproeven door te proberen een e-mailwaarschuwing van de pi naar een vooraf gedefinieerd e-mailadres te sturen. Het bijgevoegde python-script bouwt uw e-mail op die u wilt verzenden, maakt verbinding met een e-mailprovider zoals Gmail en verzendt de e-mail met behulp van de e-mailprovider. Dit wordt bereikt met behulp van het smtp-pakket van python. Ik stel voor dat je een dummy-e-mailadres maakt voor je beveiligingssysteem, omdat we de beveiliging van je gmail-account moeten verminderen om het smtp-pakket te laten werken.
U zult het script op verschillende plaatsen moeten wijzigen om een succesvolle verzending te krijgen. Het is zwaar becommentarieerd en zal voor uw gemak veel outputs op de terminal produceren.
Dingen die je moet veranderen zijn:
your_ip_ optional_port zal hoogstwaarschijnlijk leeg zijn, tenzij je apache-server op een andere poort draait dan de standaard 80. Ik had al een server die op 80 draaide, dus ik heb mijn pi ingesteld om op 8080 te draaien. De port_to_camera zal de poort zijn waarop je je camera opgeeft draaien op het gebruik van mjpeg-streamer.
Nadat u deze variabelen aan het begin van het script hebt gewijzigd, voert u het programma uit door het volgende in de terminal in te voeren.
cd /map waar je het script plaatst/
sudo python3 send_mail.py
Als de sterren correct zijn uitgelijnd en alle variabelen correct zijn, zou u een e-mail moeten ontvangen die lijkt op die hieronder.
Er zijn veel plaatsen waar dit script kan mislukken. Raak niet gefrustreerd als het de eerste keer niet lukt. Gebruik de foutopsporingspunten in het script om de probleemgebieden te verfijnen en focus vervolgens op één probleem tegelijk.
Stap 11: Activeer e-mailscript wanneer laser wordt geactiveerd
Nu de pi in staat is om e-mails te verzenden, laten we het automatiseren zodat elke keer dat de laser wordt geactiveerd, we een e-mail krijgen. Download het bijgevoegde bestand dat een aangepaste versie is van read_pin.py die een nieuwe functie bevat om het mailscript te starten. De belangrijkste extra regel is de volgende:
sm_pid = os.spawnlp(os. P_NOWAIT, "/usr/bin/python3", "python3", "/home/pi/Desktop/security/send_mail.py")
Deze regel start het script voor het verzenden van e-mail parallel met het script voor laserdetectie. Dit is wenselijk omdat het script voor het verzenden van e-mail een paar seconden nodig heeft om te voltooien en het zou voorkomen dat het laserdetectiescript wordt uitgevoerd totdat de e-mail is verzonden. Dit is geen probleem voor een systeem met één camera, maar als u meerdere camera's had, zou u een lasertrip op camera 1 willen detecteren, zelfs als camera 2 een e-mailgebeurtenis heeft geactiveerd. De sm_pid-variabele bevat de pid van het proces dat door deze opdracht wordt gestart. We controleren op deze id als de e-mailtrigger opnieuw wordt aangeroepen, als deze bestaat, wordt de e-mail nog steeds verzonden, dus negeren we de gebeurtenis. Als het niet bestaat, is dit waarschijnlijk een nieuwe gebeurtenis en wordt er een e-mail verzonden.
Test of alles werkt door te rennen
cd /directory waar u het bestand/ plaatst
chmod 777 read_pin_with_mail.py
sudo python3 read_pin_with_mail.py
Wanneer u de laserstraal verbreekt, zou u een e-mail moeten ontvangen met de momentopname van de webcam.
Stap 12: Maak een masterscript om het systeem te starten
Op dit punt is het project grotendeels klaar. Een laatste stap is om het opstarten van het systeem te vereenvoudigen met een laatste script. Het zal alle subprogramma's starten en de webcam instellen met één script. Het bijgevoegde bestand kan bij het opstarten worden gestart door uw /etc/rc.local-bestand te bewerken. U moet de bestandsextensie wijzigen en mogelijk moet u het script bewerken om de juiste paden op te nemen als u uw scripts op een andere locatie plaatst.
Stap 13: Conclusie
Nou dat is het. Ik hoop dat je genoten hebt van deze instructable! Laat het me weten in de comments als je vragen hebt of meer gedetailleerde informatie nodig hebt op een bepaald gebied. Blijven knutselen!
Aanbevolen:
DIY Raspberry Pi-downloadbox: 4 stappen
DIY Raspberry Pi Downloadbox: Ben je vaak bezig met het downloaden van grote bestanden zoals films, torrents, cursussen, tv-series, etc dan ben je hier aan het juiste adres. In deze Instructable zouden we onze Raspberry Pi zero in een downloadmachine veranderen. Die elke
Raspberry Pi-scorebord: 4 stappen
Raspberry Pi-scorebord: Vandaag zal ik uitleggen hoe ik dit scorebord heb gemaakt dat wordt bestuurd door een Raspberry Pi en wordt aangedreven door een 5V-voeding. Het gebruikt een combinatie van ws2811- en ws2812b-leds voor de verlichting en de structuur is gemaakt van multiplex en rood eiken. Voor een besch
Smart Home van Raspberry Pi: 5 stappen (met afbeeldingen)
Smart Home van Raspberry Pi: er zijn al verschillende producten die uw flat slimmer maken, maar de meeste zijn eigen oplossingen. Maar waarom heb je een internetverbinding nodig om een lamp te schakelen met je smartphone? Dat was voor mij een reden om mijn eigen Smar te bouwen
LED-knipper met Raspberry Pi - Hoe GPIO-pinnen op Raspberry Pi te gebruiken: 4 stappen
LED-knipper met Raspberry Pi | Hoe GPIO-pinnen op Raspberry Pi te gebruiken: Hallo allemaal, in deze instructables zullen we leren hoe we GPIO's van Raspberry Pi kunnen gebruiken. Als je ooit Arduino hebt gebruikt, weet je waarschijnlijk dat we een LED-schakelaar enz. op de pinnen kunnen aansluiten en het zo kunnen laten werken. laat de LED knipperen of krijg input van de schakelaar zodat
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50