DIY Pan and Tilt Network Security Cam med Raspberry Pi

  • Michael Cain
  • 0
  • 1875
  • 468
Reklame

Lær hvordan du fremstiller en ekstern synlig panorering og vip sikkerhedskamera med en Raspberry Pi. Dette projekt kan afsluttes om morgenen med kun de enkleste dele. Her er slutresultatet:

Hvad du har brug for

  • Raspberry Pi 2 eller 3 med Micro SD-kort
  • Arduino UNO eller lignende
  • 2 x mikro- eller minihobbyservoer
  • USB webcam
  • Ledninger til mandlige til mandlige tilslutninger
  • Han-til-kvindelige tilslutningsledninger
  • Assorterede lynlåsebånd

Bygning af sikkerhedskamera

Fastgør et servohorn (den lille plast “figurer”) til hver servo ved hjælp af den medfølgende skrue. Den særlige form betyder ikke rigtig noget, selvom jo større jo bedre. Spænd ikke skruen for meget.

Brug nu lynlåsebånd til at fastgøre den ene servo til den anden i ret vinkel. En af disse vil være panorering (venstre til højre), mens den anden vil vippe (op og ned). Det betyder ikke noget, hvem der gør hvad, det kan justeres i koden.

Tilslut til sidst dit webcam til en af ​​servoerne. Du kunne bruge lynlås til dette, selvom mit webcam kom med et klips skruet nederst - jeg fjernede dette og brugte skruen til at holde det til hornet. For stabilitet kan det være en god idé at montere hele riggen til en kasse eller kasse. En simpel papkasse gør tricket ganske pænt. Du kan skære et pænt firkantet hul og montere en servoskyl på overfladen, men et lynlåsbånd vil være tilstrækkeligt.

Et ord om webcams

Ikke alle USB-webkameraer oprettes ens. Tilslut dit webcam til USB-porten på din Pi og kør denne kommando:

så udfør lsusb

Denne kommando viser information om alle USB-enheder, der er sluttet til Pi. Hvis dit webcam ikke er vist her, kan du prøve en USB-hub, der er drevet, og gentage kommandoen. Hvis webcam stadig ikke genkendes, skal du muligvis købe et kompatibelt webcam.

Servoopsætning

Selvom servoer kan virke skræmmende og komplekse, er de virkelig ganske enkle at forbinde. Servoer fungerer på PWM (Pulse Width Modulation), hvilket er en måde for digitale systemer at efterligne analoge signaler. PWM-signaler er i det væsentlige et hurtigt ON - OFF signal. Et signal, der er ON eller HIGH, beskrives ved hjælp af driftscyklus. Driftscyklus udtrykkes som en procentdel og beskriver, hvor længe signalet er TIL. Et PWM-signal på 25% driftscyklus vil være TIL i 25% af tiden og OFF for de resterende 75%. Signalet er ikke TIL i starten og derefter FRA for altid, det pulseres regelmæssigt over en meget kort periode.

Servoer lytter efter disse impulser og handler i overensstemmelse hermed. Brug af en arbejdscyklus på 100% ville være det samme som “fast” 5v og 0% ville være det samme som jord. Bare rolig, hvis du ikke fuldt ud forstår, hvordan PWM fungerer, kan du stadig kontrollere servoer (Extreme Electronics er et godt sted at lære mere).

Der er to hovedmåder til at bruge PWM - hardware eller software. Hardware PWM giver ofte lavere latenstid (hvor længe mellem servoen, der modtager kommandoen og flytter) end software PWM, men Pi har dog kun en hardware-PWM-stand, der er i stand. Eksterne kredsløb er tilgængelige for at tilvejebringe flere kanaler med hardware-PWM, men en simpel Arduino kan også håndtere opgaven, da de har flere hardware-PWM-stifter.

Her er kredsløbet:

Dobbeltkontrol af pinout for din Pi, de varierer lidt mellem modeller. Du skal finde ud af, hvordan dine servoer er kablet. Servoer kræver tre ledninger for at kontrollere dem, men farverne varierer lidt:

  • Rødt er positivt, tilslut dette til Pi + 5v
  • Brun eller sort er negativ. Tilslut dette til GND på Pi
  • Orange eller hvidt er signal, tilslut dette til Arduino-stifter 9 og 10

Arduino-opsætning

Er du ny på Arduino? Kom i gang her Kom godt i gang med Arduino: En begynderguide Kom godt i gang med Arduino: En begynderguide Arduino er en open-source elektronik-prototyperplatform baseret på fleksibel, brugervenlig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver der er interesseret i at skabe interaktive objekter eller miljøer. .

Når servoerne er tilsluttet, skal du åbne Arduino IDE på din computer og uploade denne testkode. Glem ikke at vælge det rigtige kort og port fra Værktøjer> Tavle og Værktøjer> Port menuer

#include // Importer biblioteket Servo servoPan, servoTilt; // Opret servoobjekter int servoMin = 20, servoMax = 160; // Definer grænser for opsætning af tomt til servoer () // Opsætning af servoer på stifter, der er i stand til PWM, servoPan.attach (9); servoTilt.attach (10);  void loop () for (int i = servoMin; i  servoMin; --i) // Flyt servoer fra maksimum til minimum servoPan.write (i); servoTilt.write (i); forsinkelse (100); // Vent 100 ms

Alt i alt skal du se begge servoer langsomt bevæge sig frem og tilbage. Bemærk, hvordan “servoMin” og servoMax” er defineret som 20 og 160 grader (i stedet for 0 og 180). Dette skyldes delvist, at disse billige servoer ikke er i stand til nøjagtigt at bevæge sig hele 180 grader, og også på grund af webcam's fysiske størrelse forhindrer, at det fulde interval bruges. Du skal muligvis justere disse til din opsætning.

Hvis de overhovedet ikke fungerer, skal du tjekke, at kredsløbet er korrekt tilsluttet. Breadboards kan undertiden også variere i kvalitet, så overvej at investere i et multimeter for at verificere.

Servoer er næsten for magtfulde til, at Arduino er til magt, så de vil blive drevet af Pi. 5v-skinnen på Pi er begrænset til 750 mA leveret til hele Pi, og Pi trækker cirka 500 mA, hvilket efterlader 250 mA til servoerne. Disse mikroservoer tegner ca. 80 mA, hvilket betyder, at Pi skal være i stand til at håndtere to af dem. Hvis du ønsker at bruge flere servoer eller større, højere drevne modeller, skal du muligvis bruge en ekstern strømforsyning.

Upload nu følgende kode til Arduino. Dette vil lytte til indgående seriedata (seriel som i Universal) Seriel Bus eller USB). Pi'en sender disse data over USB til Arduino og fortæller dem, hvor servoer skal flyttes.

#include // Importer biblioteket Servo servoPan, servoTilt; // Opret servoobjekt Stringdata = ""; // Opbevar indkommende kommandoer (buffer) ugyldig opsætning () // Opsætningsservoer på stifter, der er i stand til PWM-servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Start seriel ved 9600 bps (hastighed) void loop () while (Serial.available ()> 0) // Hvis der er data char singleChar = Serial.read (); // Læs hvert tegn, hvis (singleChar == 'P') // Flyt pan servo servoPan.write (data.toInt ()); data = ""; // Ryd buffer ellers hvis (singleChar == 'T') // Flyt vippeservo servoTilt.write (data.toInt ()); data = ""; // Ryd buffer andet data + = singleChar; // Tilføj nye data

Du kan teste denne kode ved at åbne den serielle skærm (øverst til højre> Seriel skærm) og sende nogle testdata:

  • 90P
  • 0P
  • 20T
  • 100T

Bemærk formatet på kommandoerne - en værdi og derefter et bogstav. Værdien er servoens placering, og bogstavet (i kasketter) specificerer panorering eller vippeservo. Da disse data transmitteres fra Pi-serien, kommer hver karakter gennem én ad gangen. Arduinoen skal “butik” disse indtil hele kommandoen er blevet overført. Det sidste brev angiver ikke kun servoen, det lader også Arduinoen vide, at der ikke er flere data i denne kommando.

Til sidst skal du fjerne din Arduino fra computeren, og Sæt det i Raspberry Pi via den sædvanlige USB-portforbindelse.

Pi-opsætning

Nu er det tid til at opsætte Pi. Først skal du installere et operativsystem Sådan installeres et operativsystem på en Raspberry Pi Sådan installeres et operativsystem på en Raspberry Pi. Sådan installeres et operativsystem på din Raspberry Pi, og hvordan du kloner din perfekte opsætning til hurtig gendannelse af katastrofer. . Tilslut webcam og Arduino til Pi USB.

Opdater Pi:

sudo apt-get-opdatering sudo apt-get-opgradering

Installer bevægelse:

sudo apt-get install motion

Motion er et program lavet til at håndtere streaming af webcam. Det håndterer al den tunge løftning og kan endda udføre optagelse og bevægelsesdetektion (prøv at opbygge et bevægelsessikringssystem Opbyg et bevægelsesfangstsikkerhedssystem ved hjælp af et hindbærpi Opbyg et bevægelsesfangstsikkerhedssystem ved hjælp af et hindbærpi af de mange projekter, du kan byg med Raspberry Pi, en af ​​de mest interessante og permanent nyttige er bevægelsessystemets sikkerhedssystem.) Åbn Motion-konfigurationsfilen:

sudo nano /etc/motion/motion.conf

Denne fil indeholder masser af muligheder for at konfigurere Motion. Opsætning som følger:

  • daemon on - Kør programmet
  • framerate: 100 - Hvor mange rammer eller billeder / sekund at streame
  • stream_localhost off - Tillad adgang på tværs af netværket
  • bredde 640 - Bredde på video, juster til dit webcam
  • højde 320 - Videohøjde, juster til dit webcam
  • stream_port 8081 - Porten, der skal udsendes video til
  • output_picture off - Gem ikke billeder

Dette er en ganske stor fil, så du ønsker måske at bruge CTRL + W at søge efter linjer. Når du er færdig, skal du trykke på CTRL + X og bekræft derefter for at gemme og afslutte.

Rediger nu endnu en fil:

sudo nano / etc / default / motion

Sæt “start_motion_daemon = ja”. Dette er nødvendigt for at sikre, at bevægelse kører.

Find nu din IP-adresse:

ifconfig

Denne kommando viser detaljer om netværksforbindelsen til Pi. Se på den anden linje, inet addr. Det kan være en god ide at indstille en statisk IP-adresse (hvad er en statisk IP? Hvad er en statisk IP-adresse? Her er hvorfor du ikke har brug for en Hvad er en statisk IP-adresse? Her er hvorfor du ikke har brug for en router-tildelt IP adresser skifter lejlighedsvis, mens statiske IP-adresser ikke gør det. Her er grunden til, at du ikke virkelig har brug for en.), men skriv for øjeblikket dette nummer.

Start nu Motion:

sudo service bevægelse start

Du kan stoppe eller genstarte bevægelse ved at ændre “Start” til “hold op” eller “genstart”.

Skift til din computer og naviger til Pi fra en webbrowser:

http: //xxx.xxx.x.xx: 8081

Hvor xxx.xxx.x.xx er Pi IP-adressen. Kolon efterfulgt af et nummer er den port, der blev opsat tidligere. Alt i alt skal du se strømmen fra dit webcam! Prøv at bevæge dig rundt og se, hvordan tingene ser ud. Det kan være nødvendigt at justere lysstyrke og kontrastindstillinger i konfigurationsfilen. Det kan være nødvendigt at du fokuserer webcam - nogle modeller har en lille fokusring omkring linsen. Drej dette, indtil billedet er det skarpeste.

Tilbage på Pi, opret en mappe og naviger ind i den:

mkdir sikkerhed-cam cd sikkerhed-cam /

Installer nu Twisted:

sudo apt-get install python-twisted

Twisted er en webserver skrevet i Python, som vil lytte til kommandoer og derefter handle i overensstemmelse hermed.

Når det er installeret, skal du oprette et Python-script for at udføre kommandoer (flytte servoer).

sudo nano servos.rpy

Bemærk, hvordan filtypenavnet er “.rpy” i stedet for “py”. Her er koden:

# Importer nødvendige filer importer seriel fra twisted.web.resource import Ressource # Opsætning Arduino ved korrekt hastighed prøve: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) undtagen: arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) klasse MoveServo (ressource): isLeaf = True def render_GET (selv, anmodning): prøv: # Send værdi over seriel til Arduino arduino.write (request.args [' value '] [0]) return' Success 'undtagen: returner' Failure 'resource = MoveServo ()

Start nu webserveren:

sudo twistd -n web-p 80 - sti / hjem / pi / sikkerhed-cam /

Lad os nedbryde det - “-s 80” specificerer porten (80). Dette er standardporten til websider. “-sti / hjem / pi / sikkerhedskamera /” fortæller Twisted at starte serveren i det specificerede bibliotek. Hvis du foretager ændringer i scripts inde i “sikkerhed-cam” mappe, du bliver nødt til at genstarte serveren (CTRL + X for at lukke, kør derefter kommandoen igen).

Opret nu webside:

sudo nano index.html

Her er webside-koden:

   Gør brug af DIY-sikkerhedskamera #container / * centrer indholdet * / margin: 0 auto; tekstjustering: center;      

Der har du det. Dit helt eget Pan and Tilt Network Camera. Hvis du vil udsætte dit webcam for internettet, skal du huske at overveje farerne. 5 farer, der skal tages i betragtning, når du peger på dit hjemmesikkerhedskameraer. 5 farer, der skal tages i betragtning, når du peger dit hjemmesikkerhedskameraer. Det er vigtigt at overveje nøje, hvor du placerer dine kameraer, og hvad dele af dit hjem, du peger dem mod. Det er vigtigt at holde tingene sikre, men det er også at bevare dit privatliv. - se derefter på portvideresendelse Hvad er portvideresendelse og hvordan kan det hjælpe mig? [MakeUseOf Explains] Hvad er portvideresendelse og hvordan kan det hjælpe mig? [MakeUseOf Explains] Græder du lidt indeni, når nogen fortæller dig, at der er et problem til portvideresendelse af havn, og det er grunden til, at din skinnende nye app ikke fungerer? Din Xbox lader dig ikke spille spil, dine torrent-downloads nægter ..., så din router ved, hvor du skal sende indgående anmodninger. Du kan tilføje en ekstern strømforsyning 3 Raspberry Pi-batteripakker til bærbare projekter 3 Raspberry Pi-batteripakker til bærbare projekter Et Raspberry Pi-batteri kan gøre en almindelig Pi til en bærbar computer. Du har brug for en af ​​disse batteriløsninger for at komme i gang. og Wi-Fi-adapter til en virkelig bærbar rig.

Har du lavet noget cool med et webcam og en Pi? Fortæl mig det i kommentarerne, jeg vil meget gerne se!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.