DIY Pan și Tilt Network Security Cam cu zmeura Pi

DIY Pan și Tilt Network Security Cam cu zmeura Pi / DIY

Aflați cum să creați o cameră de supraveghere de supraveghere de la distanță și de înclinare de la distanță, cu o pată de zmeură. Acest proiect poate fi finalizat într-o dimineață cu doar cele mai simple părți. Iată rezultatul final:

De ce ai nevoie

  • Zmeura Pi 2 sau 3 cu card Micro SD
  • Arduino UNO sau similar
  • 2 servere micro sau mini hobby
  • USB webcam
  • Conectori de sex masculin la masculi
  • Cabluri de conectare de la bărbați la femei
  • Asamblate legături zip

Construirea camerei de securitate

Atașați un servo corn (micul plastic “forme”) la fiecare servo folosind șurubul prevăzut. Forma specială nu contează cu adevărat, deși cu atât mai mare cu atât mai bine. Nu strângeți prea mult șurubul.

Acum folosiți legăturile cu fermoar pentru a atașa un servo la un alt unghi drept. Unul dintre acestea va fi pan (de la stânga la dreapta), în timp ce celălalt va fi înclinat (în sus și în jos). Nu contează cine face ce, poate fi ajustat în cod.

În cele din urmă, atașați camera Web la unul dintre servoare. Ați putea folosi zip-uri pentru acest lucru, deși camera mea Web a venit cu un clip înșurubat în partea de jos - am scos acest lucru și a folosit șurubul pentru a ține-l la corn. Pentru stabilitate, poate doriți să montați ansamblul riglei într-un cutie sau cutie. O cutie de carton simplă face truc destul de frumos. Puteti taia o gaura pătrată și montați un servo la suprafață, totuși o cravată va fi suficientă.

Un cuvânt despre camere web

Nu toate camerele web USB sunt create în mod egal. Conectați camera web la portul USB al dispozitivului dvs. Pi și executați această comandă:

lsusb

Această comandă afișează informații despre toate dispozitivele USB conectate la dispozitivul Pi. Dacă camera web nu este listată aici, poate doriți să încercați un hub USB alimentat și să repetați comanda. Dacă camera web nu este încă recunoscută, este posibil să trebuiască să achiziționați o cameră Web compatibilă.

Servo Setup

În timp ce servoarele pot părea înfricoșătoare și complexe, ele sunt foarte simplu de conectat. Servo-urile funcționează pe modulul Pulse Width Modulation (Pulse Width Modulation - PWM), care este o modalitate prin care sistemele digitale pot imita semnalele analogice. Semnalele PWM sunt, în esență, un semnal ON-OFF rapid. Un semnal care este ON sau HIGH este descris folosind ciclul de sarcină. Ciclul de funcționare este exprimat în procente și descrie cât timp este activat semnalul. Un semnal PWM cu ciclu de funcționare de 25% va fi activat pentru 25% din timp și oprit pentru restul de 75%. Semnalul nu este pornit la pornire și apoi oprit pentru totdeauna, este pulsat regulat într-o perioadă foarte scurtă de timp.

Servos asculta aceste impulsuri și acționează în consecință. Folosind un ciclu de funcționare de 100% ar fi aceleași ca și “regulat” 5v și 0% ar fi aceleași ca și solul. Nu vă faceți griji dacă nu înțelegeți pe deplin modul în care funcționează PWM, puteți controla servo-urile (Extreme Electronics este un loc bun pentru a afla mai multe).

Există două modalități principale de a utiliza PWM - hardware sau software. PWM hardware-ul oferă adesea o latență mai mică (cât timp între servo primește comanda și mișcarea) decât software-ul PWM, totuși Pi are doar un pin hardware PWM capabil. Circuitele externe sunt disponibile pentru a furniza mai multe canale de hardware PWM, cu toate acestea un simplu Arduino se poate ocupa, de asemenea, sarcina, deoarece acestea au mai multe pini PWM hardware.

Iată circuitul:

Verificați dublu pinul pentru Pi, acestea variază ușor între modele. Trebuie să dai seama cum sunt conectate serverele tale. Servo-urile necesită trei fire pentru a le controla, totuși culorile variază ușor:

  • Roșul este pozitiv, conectați-l la Pi + 5v
  • Maro sau negru este negativ, conectați-l la GND pe Pi
  • Orange sau albul este semnal, conectați-l la pinii Arduino 9 și 10

Arduino Setup

Nou pentru Arduino? Începeți aici Început cu Arduino: Ghidul începătorului Introducere cu Arduino: Un ghid pentru începători Arduino este o platformă de prototipuri electronice cu sursă deschisă bazată pe hardware și software flexibile și ușor de folosit. Este destinat artiștilor, designerilor, pasionaților și tuturor celor interesați să creeze obiecte sau medii interactive. Citeste mai mult .

Odată ce serverele sunt conectate, deschideți ID-ul Arduino pe computer și încărcați acest cod de testare. Nu uitați să selectați placa și portul corect din Instrumente> Consiliul și Instrumente> Port meniuri

#include  // Import biblioteca Servo servoPan, servoTilt; // Crearea obiectelor servo int servoMin = 20, servoMax = 160; // Definirea limitelor servo void setup () // Setarea servo pe pini capabili de PWM servoPan.attach (9); servoTilt.attach (10);  void loop () pentru (int i = servoMin; i < servoMax; ++i)  1 // Move servos from minimum to maximum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms  for(int i = servoMax; i > servoMin; --i) // Mutare servoare de la maxim la servoPan.write (i) maxim; servoTilt.write (i); întârziere (100); // Așteptați 100ms

Totul fiind bine ar trebui să vedeți că ambii servori se mișcă încet înainte și înapoi. Observați cum “servoMin” și servoMax” sunt definite ca 20 și 160 grade (în loc de 0 și 180). Acest lucru se datorează parțial faptului că aceste servoare ieftine nu pot să deplaseze cu precizie 180 de grade și, de asemenea, din cauza dimensiunii fizice a camerei web, împiedică utilizarea întregii game. Este posibil să fie necesar să ajustați aceste setări.

Dacă nu funcționează deloc, verificați dacă circuitul este cablat corect. Plăcile de bord pot varia uneori și în ceea ce privește calitatea, deci luați în considerare investiția într-un multimetru pentru a verifica.

Servorii sunt aproape prea puternice pentru arduino la putere, deci vor fi alimentate de Pi. Rail-ul 5v pe Pi este limitat la 750mA furnizat întregii Pi, iar Pi atrage aproximativ 500mA, lăsând 250mA pentru servo. Aceste micro servoare extrag aproximativ 80mA, ceea ce înseamnă că Pi ar trebui să poată manipula două dintre ele. Dacă doriți să utilizați mai multe servoare sau modele mai mari, cu putere mai mare, este posibil să fie necesar să utilizați o sursă externă de alimentare.

Încărcați acum codul următor în Arduino. Aceasta va asculta datele de intrare seriale (serial ca în Universal Serial Bus sau USB). Pi va trimite aceste date pe USB către Arduino, spunându-le unde să se deplaseze serverele.

#include  // Import biblioteca Servo servoPan, servoTilt; // Crearea unui obiect servo String data = ""; // Stocați comenzile de intrare (tampon) void setup () // Setare servo pe pinii capabili PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Start serial la 9600 bps (viteză) void loop () în timp ce (Serial.available ()> 0) // Dacă există date char singleChar = Serial.read (); // Citiți fiecare caracter dacă (singleChar == 'P') // Mutare pan servo servoPan.write (data.toInt ()); date = ""; // Clear buffer altfel dacă (singleChar == 'T') // Mutare tilt servo servoTilt.write (data.toInt ()); date = ""; // Clear buffer altceva data + = singleChar; // Adăugați date noi

Puteți testa acest cod deschizând monitorul serial (sus sus> Monitor serial) și trimiterea unor date de testare:

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

Observați formatul comenzilor - o valoare și apoi o literă. Valoarea este poziția servo-ului, iar litera (în capace) specifică servo-ul pan sau tilt. Pe măsură ce aceste date sunt transmise de la serialele serial, fiecare personaj trece prin unul câte unul. Arduino trebuie să “magazin” acestea până când întreaga comandă a fost transmisă. Litera finală nu numai că specifică servo-ul, ci îi permite și lui Arduino să știe că nu mai există date în această comandă.

În cele din urmă, deconectați-vă arduino de la computer și conectați-o în rasina Pi prin conexiunea USB obișnuită.

Pornire instalare

Acum este momentul să configurați Pi. În primul rând, instalați un sistem de operare Cum să instalați un sistem de operare la zmeura dvs. Pi Cum să instalați un sistem de operare la zmeura dvs. Pi Iată cum să obțineți un nou sistem de operare instalat și care rulează pe dvs. Pi - și cum să clona dvs. de configurare perfectă pentru dezastru rapid recuperare. Citeste mai mult . Conectați camera web și arduino la portul USB.

Actualizați Pi:

sudo apt-get actualizare sudo apt-get upgrade

Instalați mișcarea:

sudo apt-get instalează mișcarea

Motion este un program de gestionare a streaming-ului webcam. Se ocupă de ridicarea grele și pot efectua chiar și detectarea înregistrării și a mișcării (încercați să construiți un sistem de captare a mișcării) Construiți un sistem de siguranță pentru captarea mișcării utilizând o zmeură Pi Creați un sistem de securitate pentru captarea mișcării utilizând o zmeură Pi Din multele proiecte pe care le puteți construiți împreună cu Raspberry Pi, unul dintre cele mai interesante și permanent utile este sistemul de securitate pentru capturarea mișcării. Deschideți fișierul de configurare Motion:

sudo nano /etc/motion/motion.conf

Acest fișier oferă o mulțime de opțiuni pentru a configura mișcarea. Configurați după cum urmează:

  • daemon on - Rulați programul
  • framerate: 100 - Câte cadre sau imagini / secundă în flux
  • stream_localhost off - Permite accesul în rețea
  • lățime 640 - Lățime de video, reglați pentru camera web
  • înălțime 320 - Înălțimea videoclipului, ajustați pentru camera web
  • stream_port 8081 - Portul de ieșire video către
  • output_picture off - Nu salvați nici o imagine

Acesta este un dosar destul de mare, deci vă recomandăm să îl utilizați CTRL + W pentru a căuta linii. După ce ați terminat, apăsați CTRL + X apoi confirmați salvarea și ieșirea.

Acum modificați încă un fișier:

sudo nano / etc / implicit / mișcare

A stabilit “start_motion_daemon = da”. Acest lucru este necesar pentru a asigura mișcarea.

Acum, aflați adresa IP:

ifconfig

Această comandă va afișa detaliile conexiunii la rețea pentru dispozitivul Pi. Uită-te la linia a doua, inet addr. Poate doriți să setați o adresă IP statică (ceea ce este o IP statică? Ce este o adresă IP statică, cum pot obține unul și avantajele / dezavantajele sale Ce este o adresă IP statică, cum pot obține una și avantajele / dezavantajele acesteia? În rețelele de domiciliu, adresele IP nu sunt de obicei fixate, dar acestea se încadrează în anumite intervale specifice. O adresă IP statică nu se schimbă, care sunt avantajele acesteia și de ce ați dori unul? notați acest număr.

Începeți mișcarea:

începerea mișcării serviciului sudo

Puteți opri sau reporni mișcarea prin schimbare “start” la “Stop” sau “repornire”.

Treceți la computer și navigați la Pi dintr-un browser web:

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

Unde xxx.xxx.x.xx este adresa IP Pi. Colonul urmat de un număr este portul care a fost configurat mai devreme. Toate fiind bine ar trebui să vedeți fluxul de la webcam-ul dvs.! Încercați să vă mișcați și să vedeți cum arată lucrurile. Este posibil să trebuiască să reglați setările de luminozitate și contrast în fișierul config. Este posibil să fie nevoie să focalizați camera web - unele modele au un inel de focalizare mic în jurul obiectivului. Rotiți acest lucru până când imaginea este cea mai clară.

Înapoi la Pi, creați un dosar și navigați în el:

mkdir de securitate-cam cd de securitate-cam /

Acum, instalați Twisted:

sudo apt-get instalează python-twisted

Twisted este un server web scris în Python, care va asculta comenzi și apoi va acționa corespunzător.

Odată instalat, creați un script Python pentru a executa comenzi (mutați serverele).

sudo nano servos.rpy

Observați cum este extensia de fișier “.rpy” in loc de “py”. Iată codul:

# Import fișierele necesare importă serial din importul de resurse twisted.web.resource Resursă # Setup Arduino la viteza corectă încercați: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) cu excepția: arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) class MoveServo (Resursă): isLeaf = True def render_GET (auto, cerere): try: # Trimite valoarea peste serial Arduino arduino.write (request.args [' value '] [0] 'excepție: returnează' Failure 'resource = MoveServo ()

Începeți acum serverul web:

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

Să-l descompunem - “-p 80” specifică portul (80). Acesta este portul implicit pentru paginile web. “-cale / home / pi / securitate-cam /” spune Twisted pentru a porni serverul în directorul specificat. Dacă modificați scripturile din interiorul “de securitate cu came” va trebui să reporniți serverul (CTRL + X pentru a închide, apoi rulați din nou comanda).

Acum creați pagina web:

sudo nano index.html

Iată codul paginii web:

   Faceți uz de camera de securitate DIY    

Schimbare “PI_IP_ADDRESS” (folosit de două ori) la adresa IP reală a lui Pi (raspberrypi.local ar trebui să funcționeze și dacă folosiți cel mai recent Raspian). Reporniți serverul web și apoi navigați la computerul de la Pi, fără a fi nevoie să specificați portul. Ar trebui să puteți naviga la stânga și la dreapta și să vedeți fluxul video:

Acolo îl aveți. Camera proprie Pan și Tilt. Dacă doriți să expuneți camera web la internet, amintiți-vă să luați în considerare pericolele 5 Pericolele care trebuie luate în considerare la indicarea camerelor de securitate de la domiciliu 5 Pericolele pe care trebuie să le aveți în vedere atunci când indicați camerele de securitate de la domiciliu Este important să examinați cu atenție unde vă poziționați aparatele foto și ce părți ale casei pe care le indicați. Păstrarea lucrurilor în siguranță este importantă, dar vă mențineți intimitatea. Citiți mai mult - apoi căutați în portul de expediere Ce este portul de expediere și cum mă poate ajuta? [Explicarea MakeUseOf] Ce este portul de expediere și cum mă poate ajuta? [MakeUseOf explică] Plângeți puțin înăuntru când cineva vă spune că există o problemă de expediere a portului și de aceea noua dvs. aplicație strălucitoare nu va funcționa? Xbox-ul dvs. nu vă va permite să jucați jocuri, descărcările de torrent refuză ... Citește mai mult, deci routerul știe unde să trimită cererile primite. Ați putea adăuga o sursă externă de alimentare Pi la Go? 3 moduri de a acționa o piersică Pi pentru proiecte portabile Pi to Go? 3 moduri de a utiliza o piersică Pi pentru proiecte portabile Doriți să vă scoateți zmeura Pi din casă și să vă implicați în unele proiecte mobile? Veți avea nevoie de o baterie de un fel - dar există mai multe opțiuni disponibile. Citiți mai multe și adaptorul Wi-Fi pentru o platformă cu adevărat portabilă.

Ai făcut ceva rău cu o cameră web și un Pi? Anunță-mă în comentariile, mi-ar plăcea să văd!

Explorați mai multe despre: Siguranța la domiciliu, Zmeura Pi, Webcam.