Inhoudsopgave:

Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi - Ajarnpa
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi - Ajarnpa

Video: Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi - Ajarnpa

Video: Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi - Ajarnpa
Video: Одна в городе_Рассказ_Слушать 2024, Juli-
Anonim
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi
Volledig uitgeruste buitenbeveiligingscamera op basis van Raspberry Pi

Als je teleurstellende ervaringen hebt gehad met goedkope webcams, hun slecht geschreven software en/of gebrekkige hardware, kun je eenvoudig een semi-professionele webcam bouwen met een Raspberry Pi en een paar andere elektronische componenten die gemakkelijk te vinden zijn waarop PiWebcam draait, een gratis en dummy -proof stukje software dat uw apparaat met slechts één klik verandert in een krachtige en volledig uitgeruste webcam.

Stap 1: Inspiratie

Inspiratie
Inspiratie

Na te hebben gevochten tegen de beperkte software van de meeste goedkope beveiligingscamera's op de markt (bijv. slecht nachtzicht, obscure app voor de configuratie, geen offline opname, onnauwkeurige bewegingsdetectie, enz.), besloot ik iets te bouwen door mezelf en Raspberry Pi leek mij het meest geschikte platform.

Zelfs als er al een groot aantal projecten zijn om een Raspberry Pi als webcam te gebruiken, vind ik ze persoonlijk te complex en over het algemeen meer ad-hocoplossingen voor geavanceerde gebruikers in plaats van eindige producten.

Desalniettemin richten de meeste van hen zich alleen op de software in plaats van op de hardware, wat even belangrijk is voor het gebruik van beveiligingscamera's.

Stap 2: Hardware

Hardware
Hardware

Voor het bouwen van een webcam voor binnenshuis zou een eenvoudige Raspberry Pi (elk model) en een aangesloten camera (elk model) met IR-LED's voor nachtzicht prima werken. Er zijn al genoeg kits beschikbaar met deze combinatie, dus als dit is wat je wilt bereiken, koop er dan een en ga naar stap 12.

Dezelfde hardware zou echter niet passen voor een buitencamera: de foto die met de IR-compatibele Raspberry-camera buiten je huis wordt gemaakt, zou er overwegend roze uitzien (vanwege het infraroodlicht dat door de camera wordt opgevangen) en met de kleine -box IR LED's zou je niets voorbij 3 voet / 1 meter kunnen zien.

Om het eerste probleem op te lossen, hebben we een mechanisch IR CUT-filter nodig dat je in feite de ware kleuren bij daglicht teruggeeft, maar toch de IR-lichten 's nachts kan vastleggen. De meeste apparaten op de markt hebben twee draden: een korte puls op de ene draad verplaatst het IR-filter voor de sensor (dagmodus), een korte puls op de andere draad verwijdert het filter (nachtmodus). Ze werken meestal tussen 3v en 9v en als ze zijn aangesloten op onze Raspberry, kunnen we volledige controle hebben over wanneer de nachtmodus moet worden ingeschakeld. Het IR Cut-filter kan echter niet rechtstreeks vanaf een pin van de Raspberry worden bestuurd, omdat het mechanische deel erin veel meer stroom vereist dan de Pi kan leveren. We zullen er omheen werken door een H-brug te gebruiken die wordt aangedreven door de Raspberry's 5v en wordt bestuurd door twee pinnen.

Om het tweede probleem aan te pakken, zouden we een krachtiger IR-leds-bord nodig hebben om een fatsoenlijk nachtzicht te bereiken. Borden met minder maar grotere leds hebben de voorkeur boven borden met veel kleine leds. De meeste borden op de markt hebben ook een LDR (Light Dependent Resistor) bevestigd die wordt gebruikt om te bepalen wanneer de LED's moeten worden ingeschakeld als het donker is. Ze werken meestal op 12v en hebben een kleine stekker (met het label "IRC") die kan worden gebruikt om een IR-filter aan te sluiten. Er wordt echter geen puls rechtstreeks via deze stekker verzonden, maar 's nachts (LED's aan) ontstaat er een (meestal) 5v spanningsval tussen zowel de draden als de aarde. Als we een van de draden op onze Raspberry aansluiten en het signaal van de pin bewaken, kunnen we bepalen of we de nachtmodus binnengaan of verlaten (wat precies is wat PiWebcam doet)

Een laatste ding om te overwegen met betrekking tot de hardware is hoe de Raspberry Pi van stroom wordt voorzien. Aangezien we een 12v-voeding hebben en we 5v nodig hebben om de Pi te voeden, is een spanningsregelaar nodig.

Stap 3: Software

Software
Software

Het idee achter PiWebcam was om een krachtig beeldvormingsplatform te bieden voor iedereen, ongeacht zijn/haar voorkennis. Een installatiescript zorgt voor een volledige configuratie van het systeem met redelijke standaardinstellingen, waardoor de gebruiker via een schone en mobielvriendelijke webinterface slechts een zeer beperkt aantal relevante parameters kan aanpassen. Desalniettemin kan PiWebcam, dankzij de krachtige bewegingsdetectiefunctie, aangevuld met objectherkenningsmogelijkheden die worden aangedreven door een artificieel intelligentiemodel, de gebruiker op de hoogte stellen van elke gedetecteerde beweging door een snapshot naar een e-mailontvanger te sturen of door deze op het favoriete Slack-kanaal van de gebruiker te plaatsen.

  • Projectpagina:
  • Gebruikershandleiding:

Stap 4: Stuklijst

Stuklijst
Stuklijst
Stuklijst
Stuklijst
Stuklijst
Stuklijst

De volgende stuklijst is voor de buitenwebcam die in deze zelfstudie is gebouwd:

  • Raspberry Pi Zero W
  • Raspberry Pi-camera (elk model, deze bevat een IR-filter)
  • Raspberry Pi Zero camerakabel
  • Waterdichte camerabehuizing (elk model waarin de framboos zou passen)
  • SD-kaart (16 GB aanbevolen)
  • IR Led Board (elk bord dat in de camerabehuizing zou passen)
  • IR Cut-filter (alleen als deze nog niet in de camera is ingebouwd)
  • 12v - 5v-regelaar (zorg ervoor dat het een buck-regelaar is die ten minste 1A kan leveren)
  • Micro-USB-stekker
  • 12v vrouwelijke stekker
  • 12v 3A voeding
  • H-brug
  • Vrouw-vrouwelijke Dupont-cales

Stap 5: De componenten voorbereiden

De componenten voorbereiden
De componenten voorbereiden
De componenten voorbereiden
De componenten voorbereiden
De componenten voorbereiden
De componenten voorbereiden

De buck-converter (spanningsregelaar) is verantwoordelijk voor het omzetten van de 12v-voeding naar de 5v die de Raspberry Pi nodig heeft. De meeste componenten op de markt zijn instelbaar (u kunt bijvoorbeeld de uitgangsspanning wijzigen door aan een schroef te draaien). Aangezien de schroef aan de binnenkant van de webcam per ongeluk kan worden verplaatst, plaatst u, om een vaste en constante 5v-uitgang te garanderen, wat tin in de 5v-sleuf om de twee randen aan elkaar te solderen en snijdt u de draad op de PCB door (met een mes) die in "ADJ" gaat (linksboven op de foto)

Omdat we volledige controle willen hebben over het IR Cut-filter via de Raspberry (of het filter nu wel of niet is ingebed in de camera zoals op de afbeelding), moeten we de kleine connector verwijderen. Knip de twee draden door en sluit voor elke draad een vrouwelijke dupont-kabel aan. Gooi de kleine stekker niet weg, omdat we deze moeten gebruiken om de status van de LDR op het IR-ledbord te ontvangen. Sluit een andere vrouwelijke dupont-kabel aan op een van de twee draden (maakt niet uit welke).

Stap 6: Verbind met IR Led Board met de voeding

Sluit aan op IR Led Board op de voeding
Sluit aan op IR Led Board op de voeding
Sluit aan op IR Led Board op de voeding
Sluit aan op IR Led Board op de voeding
Sluit aan op IR Led Board op de voeding
Sluit aan op IR Led Board op de voeding

Laten we beginnen met het aansluiten van de 12v-voedingsingang die onze kale camerabehuizing binnenkomt op de componenten.

Sluit het volgende aan op de negatieve (zwarte) draad:

  • Negatieve draad van het IR Led-bord
  • Negatieve draad van de buck-converter
  • Negatieve draad naar de mannelijke USB-connector

Sluit het volgende aan op de positieve (rode) draad:

  • De positieve (12v) draad van het IR Led-bord
  • De Vin-draad van de buck-converter

Stap 7: Schakel de Raspberry Pi. in

Zet de Raspberry Pi aan
Zet de Raspberry Pi aan
Zet de Raspberry Pi aan
Zet de Raspberry Pi aan

Sluit de Vout-draad van de buck-converter aan op de USB-stekker die de Raspberry van stroom voorziet.

Nadat je alle draden hebt aangesloten, soldeer je ze aan elkaar of maak je ze gewoon vast met wat isolatietape.

Stap 8: Sluit het IR Cut-filter aan

Sluit het IR-cutfilter aan
Sluit het IR-cutfilter aan
Sluit het IR-cutfilter aan
Sluit het IR-cutfilter aan
Sluit het IR-cutfilter aan
Sluit het IR-cutfilter aan

Omdat het IR Cut-filter niet rechtstreeks vanaf een pin van de Raspberry kan worden bestuurd, gebruiken we een H-Bridge die wordt aangedreven door de 5v-pin van de Raspberry en wordt bestuurd door twee pinnen.

  • Sluit pin 4 (5v) van de framboos aan op "+" van de H-Bridge
  • Sluit pin 5 (GND) van de framboos aan op "-" van de H-brug
  • Sluit pin 39 (BCM 20) van de framboos aan op INT1 van de H-Bridge
  • Sluit pin 36 (BCM 16) van de framboos aan op INT2 van de H-Bridge
  • Sluit de twee draden van het IR Cut Filter aan op MOTOR1 en MOTOR2 of de H-Bridge

Op deze manier, wanneer een puls wordt verzonden door b.v. pin 39, 5v wordt geleverd aan MOTOR1 waardoor het filter wordt omgeschakeld.

Stap 9: Sluit de IR Led Board aan op de Raspberry

Sluit de IR Led Board aan op de Raspberry
Sluit de IR Led Board aan op de Raspberry

Om te weten wanneer het donker wordt, maken we gebruik van de LDR die op het IR-leds-bord is gemonteerd. Gebruik de kleine stekker die in de vorige stappen uit het IR-filter is gesneden, sluit de ene kant aan op de connector met het label "IRC" van de IR-leds-kaart en de andere op pin 40 (BCM 21) van de Raspberry.

Stap 10: Monteer de camera op het IR-ledbord

Monteer de camera op het IR-ledbord
Monteer de camera op het IR-ledbord
Monteer de camera op het IR-ledbord
Monteer de camera op het IR-ledbord

Bevestig de camera op de daarvoor bestemde sleuf van de IR-leds-kaart met een isolatietape of op een andere manier. Zaken om in deze fase rekening mee te houden:

  • Het IR-leds-bord wordt erg heet wanneer het is ingeschakeld, dus bescherm de camera dienovereenkomstig;
  • Zorg ervoor dat er geen IR-licht in de sleuf kan komen waar de camera zich bevindt; IR-lichtreflectie is een van de meest voorkomende redenen waarom het nachtzicht slecht is (wazig);
  • Zorg ervoor dat er wat ruimte over is tussen de lens en het glas van de camerabehuizing, anders kan er reflectie of beeldvervorming optreden;

Sluit de camerabehuizing nog NIET:-)

Stap 11: Optie 1 - Flash een vooraf geconfigureerde PiWebcam-afbeelding (aanbevolen)

Optie 1 - Flash een vooraf geconfigureerde PiWebcam-afbeelding (aanbevolen)
Optie 1 - Flash een vooraf geconfigureerde PiWebcam-afbeelding (aanbevolen)
  • Download de nieuwste PiWebcam-afbeelding (PiWebcam_vX. X.img.zip) van
  • Pak het bestand uit Schrijf de afbeelding naar een SD-kaart (https://www.raspberrypi.org/documentation/installation/installing-images/)
  • Sluit de SD-kaart aan op je Raspberry Pi en zet hem aan
  • Het apparaat zal gaan fungeren als een toegangspunt
  • Ga verder met de taken na de installatie

Stap 12: Optie 2 - Bouw een PiWebcam-afbeelding

Optie 2 - Bouw een PiWebcam-afbeelding
Optie 2 - Bouw een PiWebcam-afbeelding

Het bouwen van een PiWebcam-image vereist een nieuwe installatie van Raspbian en een SD-kaart. Gebruik een bestaande installatie niet opnieuw, maar begin helemaal opnieuw:

  • Raspbian Stretch Lite-besturingssysteem downloaden
  • Schrijf de afbeelding naar een SD-kaart (bijvoorbeeld met Win32 Disk Imager)

Stap 13: Optie 2 - Kopieer PiWebcam naar de SD-kaart

Optie 2 - Kopieer PiWebcam naar de SD-kaart
Optie 2 - Kopieer PiWebcam naar de SD-kaart
Optie 2 - Kopieer PiWebcam naar de SD-kaart
Optie 2 - Kopieer PiWebcam naar de SD-kaart
Optie 2 - Kopieer PiWebcam naar de SD-kaart
Optie 2 - Kopieer PiWebcam naar de SD-kaart

Download de nieuwste versie van PiWebcam (PiWebcam_vX. X.zip), pak de map "PiWebcam" uit en kopieer deze naar de opstartpartitie.

Voor een headless setup plaats je in de bootpartitie ook een leeg bestand genaamd "ssh" en een "wpa_supplicant.conf" met je netwerkconfiguratie. Op deze manier zal de Raspberry bij het opstarten verbinding maken met uw WiFi-netwerk en heeft u de HDMI-kabel helemaal niet nodig, maar kunt u er rechtstreeks via SSH op aansluiten.

Stap 14: Optie 2 - Schakel de Raspberry in en maak er verbinding mee

Optie 2 - Schakel de Raspberry in en maak er verbinding mee
Optie 2 - Schakel de Raspberry in en maak er verbinding mee
Optie 2 - Schakel de Raspberry in en maak er verbinding mee
Optie 2 - Schakel de Raspberry in en maak er verbinding mee

Sluit de SD-kaart aan op je Raspberry Pi, zet hem aan en maak er met een SSH-client (of PuTTY op Windows) verbinding mee:

  • Hostnaam: raspberrypi.local
  • Gebruikersnaam: pi
  • Wachtwoord: framboos

Stap 15: Optie 2 - Configureer het systeem voor PiWebcam

Optie 2 - Configureer het systeem voor PiWebcam
Optie 2 - Configureer het systeem voor PiWebcam
Optie 2 - Configureer het systeem voor PiWebcam
Optie 2 - Configureer het systeem voor PiWebcam

Nadat u zeker weet dat de Raspberry is verbonden met internet, voert u de volgende opdracht uit:

sudo /boot/PiWebcam/PiWebcam.sh install

Hiermee wordt het systeem volledig geconfigureerd en worden de vereiste afhankelijkheden geïnstalleerd.

Aan het einde van de installatie wordt u gevraagd het apparaat opnieuw op te starten om de wijzigingen volledig van kracht te laten worden. Alle inloggegevens worden op het scherm samengevat.

Let op: de laatste 6 tekens zijn willekeurig (bijv. PiWebcam-e533fe) en variëren van apparaat tot apparaat.

Stap 16: Taken na de installatie - Maak verbinding met het WiFi-toegangspunt van PiWebcam

Taken na de installatie - Maak verbinding met het WiFi-toegangspunt van PiWebcam
Taken na de installatie - Maak verbinding met het WiFi-toegangspunt van PiWebcam
Taken na de installatie - Maak verbinding met het WiFi-toegangspunt van PiWebcam
Taken na de installatie - Maak verbinding met het WiFi-toegangspunt van PiWebcam

Eenmaal ingeschakeld, zal het apparaat gaan fungeren als een toegangspunt.

Maak verbinding met het wifi-netwerk dat door het apparaat is gemaakt. De wachtwoordzin van het netwerk en het wachtwoord van de admin-gebruiker (voor zowel de webinterface als SSH) is hetzelfde als de SSID (bijv. PiWebcam-XXXXX). Richt uw browser naar https://PiWebcam.local en geauthenticeerd met gebruikersnaam "admin" en met hetzelfde wachtwoord als de naam van het netwerk.

Stap 17: Verbind de webcam met uw wifi-netwerk

Verbind de webcam met uw wifi-netwerk
Verbind de webcam met uw wifi-netwerk
Verbind de webcam met uw wifi-netwerk
Verbind de webcam met uw wifi-netwerk

Als je de webcam wilt verbinden met een bestaand wifi-netwerk, ga dan naar Apparaat / Netwerk, selecteer "WiFi Client" en vul je "WiFi Network" en "Passphrase" in.

Wacht 1-2 minuten, maak opnieuw verbinding met uw netwerk en richt uw browser op https://camera_name.your_network (bijv.

Stap 18: Sluit de webcambehuizing

Sluit de webcambehuizing
Sluit de webcambehuizing
Sluit de webcambehuizing
Sluit de webcambehuizing

Nadat is getest of de webcam via het netwerk kan worden bereikt en de basisconfiguratie is uitgevoerd die in de vorige stap is gepresenteerd, is het nu tijd om de behuizing te sluiten.

Stap 19: Aan de slag met PiWebcam

Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam
Aan de slag met PiWebcam

PiWebcam wordt al geleverd met redelijke standaardinstellingen. Eenmaal geïnstalleerd, is er geen extra configuratie vereist; PiWebcam begint snapshots te maken en video's op te nemen, ongeacht of deze op het netwerk is aangesloten of niet.

De volledige apparaatconfiguratie (camera-, netwerk-, meldings- en systeeminstellingen) kan via de webinterface worden uitgevoerd. Het configuratiebestand kan eenvoudig worden geëxporteerd en geïmporteerd onder Apparaat / Systeem.

Wanneer een beweging wordt gedetecteerd, zal PiWebcam beginnen met het opnemen van een video (die vervolgens beschikbaar wordt gesteld via het menu "Afspelen" van de webinterface). Zodra er geen beweging meer is, wordt een foto met een rood vak gemarkeerd en wordt de gedetecteerde beweging ook opgeslagen. Als de objectdetectiefunctie is ingeschakeld, wordt elke beweging die het geconfigureerde object niet bevat, genegeerd om valse positieven te verminderen (bijv. als een beweging wordt gedetecteerd maar er geen persoon wordt geïdentificeerd).

Wanneer meldingen zijn ingeschakeld, wordt de momentopname naar het e-mailadres van de gebruiker gestuurd en/of op het geconfigureerde Slack-kanaal geplaatst. Als er geen internetverbinding beschikbaar is, wordt de melding in de wachtrij geplaatst en vrijgegeven wanneer de verbinding de volgende keer wordt hersteld.

Een gedetailleerd overzicht van alle beschikbare instellingen wordt gerapporteerd op de projectpagina.

Stap 20: Internettoegang op afstand

Internettoegang op afstand
Internettoegang op afstand

Optioneel is de webinterface bereikbaar vanaf internet zonder extra configuratie in uw netwerk of thuisrouter. Om deze functionaliteit in te schakelen, vinkt u het juiste vakje aan onder Apparaat / Netwerk.

Als externe internettoegang is ingeschakeld, initieert het apparaat een SSH-tunnel via servero.net, zonder dat u NAT of UPnP in uw router hoeft te configureren. De apparaatnaam wordt gebruikt als hostnaam en zowel de web- als ssh-services zijn zichtbaar.

Stap 21: Technische details

Alle PiWebcam-bestanden bevinden zich op de opstartpartitie van de SD-kaart, in een map met de naam PiWebcam. Dit omvat een enkel bash-bestand, PiWebcam.sh en de PHP-pagina's voor het beheerdersdashboard.

Tijdens het installatieproces wordt een zeer eenvoudige systeemconfiguratie uitgevoerd, wordt een initramfs-image gemaakt en wordt het PiWebcam.sh-script toegevoegd aan /etc/rc.local om bij het opstarten te worden uitgevoerd met de parameter "configure".

Bij de eerste keer opnieuw opstarten, zal de initramfs-afbeelding de rootpartitie verkleinen (eerder uitgebreid om de hele SD-kaart te vullen door het Raspbian-installatieprogramma) en direct daarna een gegevenspartitie maken.

Zowel het opstart- als het rootbestandssysteem zijn alleen-lezen aangekoppeld en er wordt een overlaybestandssysteem gecreëerd door de initram-image op het rootbestandssysteem, zodat elke wijziging aan het systeem alleen in het geheugen wordt opgeslagen en verloren gaat bij de volgende herstart. Op deze manier is het apparaat robuuster tegen verkeerde configuraties, kan het gemakkelijk worden hersteld naar de fabrieksinstellingen en kan het elke stroomstoring overleven, aangezien er tijdens normale bewerkingen nooit een systeembestand naar de SD-kaart wordt geschreven. Het gegevensbestandssysteem is in plaats daarvan geformatteerd met F2FS (Flash-Friendly File System), dat rekening houdt met de kenmerken van op flashgeheugen gebaseerde opslagapparaten.

Tijdens het opstarten leest PiWebcam het configuratiebestand dat is opgeslagen op /boot/PiWebcam/PiWebcam.conf, configureert het systeem, de camera, het netwerk en de meldingen op basis van de instellingen die daar worden gevonden en implementeert de webinterface vanuit /boot/PiWebcam/web in de webroot-locatie.

Zowel films als films worden opgeslagen in het gegevensbestandssysteem en gegroepeerd in mappen op jaar/maand/dag/uur, zodat ze gemakkelijker toegankelijk zijn. Alle opnames kunnen worden bekeken via de webinterface met h5ai, een moderne bestandsindexer waarmee bestanden en mappen op een aantrekkelijke manier kunnen worden weergegeven en foto- en videovoorbeelden kunnen worden weergegeven zonder dat de inhoud vooraf hoeft te worden gedownload.

Wanneer een beweging wordt gedetecteerd, wordt PiWebcam.sh aangeroepen met de parameter "notify" via de gebeurtenis on_picture_save/on_movie_end. Als objectdetectie is ingeschakeld voor verdere analyse van de afbeelding, wordt de afbeelding naar Clarifai gestuurd om alle objecten in de afbeelding te herkennen. Dit zou geweldig werken om valse positieven te verminderen, b.v. als u geïnteresseerd bent om te weten of er iemand in uw huis steelt en niet alleen een plotselinge lichtverandering.

Daarna controleert PiWebcam of er een internetverbinding beschikbaar is en verstuurt de melding. Naast traditionele e-mailmeldingen, verzonden met ssmtp, met de gedetecteerde film als bijlage, kan PiWebcam dezelfde foto ook uploaden naar een Slack-kanaal. Als je Slack niet kent, kijk dan eens (); het is een geweldige samenwerkingstool, maar kan ook worden gebruikt om een groep voor uw gezin te creëren, toegang te verlenen aan uw gezinsleden, met hen te chatten en PiWebcam of Home Automation-hulpprogramma's (zoals bijvoorbeeld eGeoffrey) toe te staan om daar updates te plaatsen. Als er geen internetverbinding is, gaat de melding niet verloren, maar wordt deze in de wachtrij geplaatst en verzonden wanneer de verbinding is hersteld.

Een upgrade-functionaliteit wordt ook geboden via de webinterface.

Aanbevolen: