DIY Pan og Tilt Network Security Cam med Raspberry Pi

Lær hvordan du gjør et eksternt synlig pan- og tilt-sikkerhetskamera med en Raspberry Pi. Dette prosjektet kan fullføres om morgenen med bare de enkleste delene.

Lær hvordan du gjør et eksternt synlig pan- og tilt-sikkerhetskamera med en Raspberry Pi.  Dette prosjektet kan fullføres om morgenen med bare de enkleste delene.
Annonse

Lær hvordan du lager et eksternt synlig pan- og tilt-sikkerhetskamera med en Raspberry Pi. Dette prosjektet kan fullføres om morgenen med bare de enkleste delene. Her er sluttresultatet:

Hva trenger du

  • Raspberry Pi 2 eller 3 med Micro SD-kort
  • Arduino UNO eller lignende
  • 2 x mikro eller mini hobby servos
  • USB-webkamera
  • Mann til mannlig hookup ledninger
  • Mann til kvinnelig hookup ledninger
  • Assorterte zip-bånd

Bygg sikkerhetskameraet

Fest et servohorn (de små plastformene ") til hver servo med den medfølgende skruen. Den spesielle formen spiller ingen rolle, selv om jo større jo bedre. Ikke skru over skruen.

Bruk nå zip-bånd for å feste en servo til den andre i riktig vinkel. En av disse vil være pan (venstre til høyre), mens den andre vil vippe (opp og ned). Det spiller ingen rolle hvem som gjør hva, det kan justeres i koden.

Servo-Hardware

Til slutt legger du til webkameraet ditt på en av servoene. Du kan bruke zip-bånd til dette, selv om webkameraet mitt kom med et klips skrudd til bunnen - jeg fjernet dette og brukte skruen til å holde den til hornet. For stabilitet kan det være lurt å montere hele riggen på en sak eller et eske. En enkel pappkasse gjør trikset ganske pent. Du kan klippe et pent kvadrat hull og montere en servo flush til overflaten, men en glidelås vil være tilstrekkelig.

Pi-Pan-Tilt-kamera

Et ord om webkameraer

Ikke alle USB-webkameraer opprettes likt. Koble ditt webkamera til USB-porten til Pi og kjør denne kommandoen:

lsusb 

Denne kommandoen viser informasjon om alle USB-enheter som er koblet til Pi. Hvis webkameraet ditt ikke er oppført her, kan det være lurt å prøve en drevet USB-hub og gjenta kommandoen. Hvis webkameraet fortsatt ikke er kjent, må du kanskje kjøpe et kompatibelt webkamera.

Servo Setup

Selv om servoer kan virke skummelt og komplekst, er de veldig ganske enkle å koble til. Servoer opererer på Pulse Width Modulation (PWM), som er en måte for digitale systemer å etterligne analoge signaler. PWM-signaler er i hovedsak et raskt ON-OFF-signal. Et signal som er ON eller HIGH er beskrevet ved bruk av driftssyklus. Tollsyklusen uttrykkes som prosent, og beskriver hvor lenge signalet er PÅ for. Et PWM-signal på 25% driftssyklus vil være PÅ for 25% av tiden, og OFF for de resterende 75%. Signalet er ikke PÅ i starten og deretter AV for alltid, det pulses regelmessig over en svært kort periode.

Servoer lytter etter disse pulser og opptrer tilsvarende. Å bruke en arbeids syklus på 100% ville være den samme som "vanlig" 5v, og 0% ville være den samme som bakken. Ikke bekymre deg hvis du ikke forstår fullt ut hvordan PWM fungerer, du kan fortsatt kontrollere servos (Extreme Electronics er et godt sted å lære mer).

Det er to hovedmåter å bruke PWM - maskinvare eller programvare. Maskinvare PWM gir ofte lavere ventetid (hvor lenge mellom servo mottar kommandoen og beveger seg) enn programvare PWM, men Pi har bare en maskinvare PWM-stift. Eksterne kretser er tilgjengelige for å gi flere kanaler med maskinvare PWM, men en enkel Arduino kan også håndtere oppgaven, da de har flere maskinvare PWM-pinner.

Her er kretsen:

Pi-Servo-Connection

Dobbeltklikk pinout for Pi, de varierer litt mellom modeller. Du må finne ut hvordan serviene dine er koblet til. Servoer krever tre ledninger for å kontrollere dem, men fargene varierer litt:

  • Rød er positiv, koble dette til Pi + 5v
  • Brun eller svart er negativ, koble dette til GND på Pi
  • Oransje eller hvitt er signal, koble dette til Arduino pins 9 og 10

Arduino Setup

Nytt på Arduino? Kom i gang her Komme i gang Med Arduino: En nybegynnersveiledning Komme i gang med Arduino: En nybegynnersguide Arduino er en open source elektronikk prototyping plattform basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer .

Når servoene er tilkoblet, åpner du Arduino IDE på datamaskinen din og laster opp denne testkoden. Ikke glem å velge riktig bord og port fra Verktøy> Styret og Verktøy> Portmenyer

 #include // Import the library Servo servoPan, servoTilt; // Create servo objects int servoMin = 20, servoMax = 160; // Define limits of servos void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); } void loop() { for(int i = servoMin; i servoMin; --i) { // Move servos from maximum to minimum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms } }  #include // Import the library Servo servoPan, servoTilt; // Create servo objects int servoMin = 20, servoMax = 160; // Define limits of servos void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); } void loop() { for(int i = servoMin; i servoMin; --i) { // Move servos from maximum to minimum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms } } 

Alt er bra, du bør se begge servene sakte bevege seg frem og tilbake. Legg merke til hvordan "servoMin" og servoMax "er definert som 20 og 160 grader (i stedet for 0 og 180). Dette er delvis fordi disse billige servoene ikke klarer å bevege seg helt 180 grader, og også på grunn av den fysiske størrelsen på webkameraet forhindrer hele spekteret å bli brukt. Du må kanskje justere disse for oppsettet ditt.

Hvis de ikke jobber i det hele tatt, kontrolleres kretsen riktig. Brettbrett kan også variere i kvalitet, så vurder å investere i et multimeter for å verifisere.

Servoene er nesten for kraftige for Arduino til makten, så de blir drevet av Pi. 5v-skinnen på Pi er begrenset til 750mA til hele Pi, og Pi trekker ca. 500mA, og forlater 250mA for servoene. Disse micro servos tegner ca 80mA, noe som betyr at Pi skal kunne håndtere to av dem. Hvis du ønsker å bruke flere servoer eller større, høyere drevne modeller, må du kanskje bruke en ekstern strømforsyning.

Last opp følgende kode til Arduino. Dette vil lytte til innkommende serielle data (seriell som i Universal Serial Bus, eller USB). Pi vil sende disse dataene over USB til Arduino, fortelle det hvor du skal flytte servoene.

 #include // Import the library Servo servoPan, servoTilt; // Create servo object String data = ""; // Store incoming commands (buffer) void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); Serial.begin(9600); // Start serial at 9600 bps (speed) } void loop() { while (Serial.available()>0) { // If there is data char singleChar = Serial.read(); // Read each character if (singleChar == 'P') { // Move pan servo servoPan.write(data.toInt()); data = ""; // Clear buffer } else if (singleChar == 'T') { // Move tilt servo servoTilt.write(data.toInt()); data = ""; // Clear buffer } else { data += singleChar; // Append new data } } } 

Du kan teste denne koden ved å åpne seriell skjerm ( øverst til høyre> Seriell skjerm ) og sende noen testdata:

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

Merk formatet på kommandoene - en verdi og deretter et brev. Verdien er posisjonen til servo, og bokstaven (i caps) angir pan- eller vippeservo. Siden disse dataene overføres fra Pi serielt, kommer hvert tegn gjennom en om gangen. Arduino må "lagre" disse til hele kommandoen er overført. Endebrevet spesifiserer ikke bare servoen, det lar også Arduino vite at det ikke er flere data i denne kommandoen.

Til slutt, koble din Arduino fra datamaskinen, og koble den til Raspberry Pi via den vanlige USB-porttilkoblingen .

Pi Setup

Nå er det på tide å sette opp Pi. Først installerer du et operativsystem Slik installerer du et operativsystem til din bringebær Pi Slik installerer du et operativsystem til din Raspberry Pi Slik får du et nytt OS installert og kjører på din Pi - og hvordan du kloner ditt perfekte oppsett for rask katastrofe gjenoppretting. Les mer . Koble webkameraet og Arduino til Pi USB.

Oppdater Pi:

 sudo apt-get update sudo apt-get upgrade 

Installer bevegelse:

 sudo apt-get install motion 

Motion er et program laget for å håndtere webkamera streaming. Den håndterer alle de tunge løftene, og kan til og med utføre opptak og bevegelsesdeteksjon (prøv å bygge et bevegelsesopptakssikkerhetssystem. Build a Motion Capture Security System ved hjelp av en Raspberry Pi. Build a Motion Capture Security System. Bruke en Raspberry Pi Av de mange prosjektene du kan Bygg med Raspberry Pi, en av de mest interessante og permanent nyttige er bevegelseskapt sikkerhetssystemet. Les mer). Åpne Motion-konfigurasjonsfilen:

 sudo nano /etc/motion/motion.conf 

Denne filen inneholder mange alternativer for å konfigurere Motion. Oppsett som følger:

  • daemon på - Kjør programmet
  • framerate: 100 - Hvor mange rammer eller bilder / sekunder å streame
  • stream_localhost av - Tillat tilgang på tvers av nettverket
  • bredde 640 - Bredde på video, juster for webkameraet ditt
  • høyde 320 - Høyde på video, juster for ditt webkamera
  • stream_port 8081 - Porten for å utføre video til
  • output_picture av - Ikke lag noen bilder

Dette er en ganske stor fil, så du vil kanskje bruke CTRL + W til å søke etter linjer. Når du er ferdig, trykker du på CTRL + X og bekrefter deretter for å lagre og avslutte.

Rediger nå en fil:

 sudo nano /etc/default/motion 

Sett "start_motion_daemon = yes". Dette er nødvendig for å sikre bevegelseshastigheter.

Finn ut din IP-adresse:

 ifconfig 

Denne kommandoen viser nettverksforbindelsesdetaljer for Pi. Se på den andre linjen, inet addr . Du vil kanskje angi en statisk IP-adresse (hva er en statisk IP-adresse? Hva er en statisk IP-adresse, hvordan får jeg en og dens fordeler / ulemper Hva er en statisk IP-adresse, hvordan får jeg en og dens fordeler / ulemper I hjemmenettverk er IP-adresser vanligvis ikke faste, men de faller innenfor bestemte områder. En statisk IP-adresse endres ikke. Hva er fordelene med dette, og hvorfor vil du ha en? Les mer), men for nå noter dette nummeret.

Start nå Motion:

 sudo service motion start 

Du kan stoppe eller starte Motion ved å endre "start" til "stopp" eller "start" på nytt.

Bytt til datamaskinen din og naviger til Pi fra en nettleser:

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

Hvor xxx.xxx.x.xx er Pi IP-adressen. Tykktarmen etterfulgt av et tall er porten som ble satt opp tidligere. Alt er bra, du bør se strømmen fra webkameraet ditt! Prøv å flytte rundt og se hvordan ting ser ut. Du må kanskje justere lysstyrke og kontrastinnstillinger i config-filen. Du må kanskje fokusere på webkameraet - noen modeller har en liten fokusring rundt linsen. Vri dette til bildet er den skarpeste.

Tilbake på Pi, lag en mappe og naviger inn i den:

 mkdir security-cam cd security-cam/ 

Installer nå Twisted:

 sudo apt-get install python-twisted 

Twisted er en webserver skrevet i Python, som vil lytte etter kommandoer og deretter handle tilsvarende.

Når du er installert, opprett et Python-skript for å utføre kommandoer (flytt servoene).

 sudo nano servos.rpy 

Legg merke til hvordan filtypen er ".rpy" istedenfor "py". Her er koden:

 # Import necessary files import serial from twisted.web.resource import Resource # Setup Arduino at correct speed try: arduino = serial.Serial('/dev/ttyUSB0', 9600) except: arduino = serial.Serial('/dev/ttyUSB1', 9600) class MoveServo(Resource): isLeaf = True def render_GET(self, request): try: # Send value over serial to the Arduino arduino.write(request.args['value'][0]) return 'Success' except: return 'Failure' resource = MoveServo() 

Start nå webserveren:

 sudo twistd -n web -p 80 --path /home/pi/security-cam/ 

La oss slå det ned - "-p 80" angir porten (80). Dette er standardporten for nettsider. "-path / home / pi / security-cam /" forteller Twisted for å starte serveren i den angitte katalogen. Hvis du gjør noen endringer i skriptene i "sikkerhetskam" -mappen, må du starte serveren på nytt ( CTRL + X for å lukke, deretter kjør kommandoen igjen).

Opprett nå nettsiden:

 sudo nano index.html 

Her er nettsidekoden:

 Make Use Of DIY Security Camera #container { /* center the content */ margin: 0 auto; text-align: center; } Pi-Pan-Tilt-kamera-Web-View

Der har du det. Din egen Pan and Tilt Network Camera. Hvis du vil utsette webkameraet ditt på Internett, må du huske å vurdere farene. 5 Fare for å vurdere når du peker på hjemmekameraer. 5 Farer du bør vurdere når du peker på hjemmekameraer. Det er viktig å nøye vurdere hvor du plasserer kameraene dine og hva deler av ditt hjem du peker på på. Å holde ting trygt er viktig, men så opprettholder du ditt privatliv. Les mer - se deretter på port videresending Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Skriker du litt innvendig når noen forteller deg at det er et problem med portoverføring, og derfor vil din skinnende nye app ikke fungere? Din Xbox vil ikke la deg spille spill, dine torrentnedlastinger nekte ... Les mer, så ruteren din vet hvor du skal sende innkommende forespørsler. Kan du legge til en ekstern strømforsyning Pi til Go? 3 måter å drive en bringebær Pi til bærbare prosjekter Pi å gå? 3 måter å drive en bringebær Pi til bærbare prosjekter Ønsker du å få din Raspberry Pi ut av huset og involvert i noen mobile prosjekter? Du trenger et batteri av noe slag - men det finnes flere alternativer. Les mer og Wi-Fi-adapter for en virkelig bærbar rigg.

Har du gjort noe kult med et webkamera og en Pi? Gi meg beskjed i kommentarene, jeg vil gjerne se!

In this article