Raspberry Pi | Φτιάξε τις δικές σου κάμερες ασφαλείας με το motionEyeOS


Αυτό που κάνει το Raspberry Pi μία τόσο πολύτιμη συσκευή για να έχεις στην κατοχή σου, είναι η πλειάδα των σεναρίων στα οποία μπορείς να το χρησιμοποιήσεις. Ανάλογα δηλαδή με την ανάγκη που θα σου προκύψει, μπορείς να του εγκαταστήσεις την υπηρεσία που χρειάζεσαι και να το δουλέψεις. Αν λοιπόν έχεις ανάγκη αυτή την εποχή για ένα σύστημα ασφαλείας προσωπικού χώρου, το Raspberry Pi και το motionEyeOS είναι μία πολύ καλή λύση για να ξεκινήσεις.

Στον τίτλο χρησιμοποιούμε τη φράση "φτιάξε τις δικές σου κάμερες" και αυτό δεν είναι τυχαίο. Θα δημιουργήσουμε μία ολοκληρωμένη κάμερα ασφαλείας από το μηδέν, η οποία μπορεί να μας δίνει ζωντανή εικόνα, να αποθηκεύει φωτογραφίες και βίντεο, να στέλνει ειδοποιήσεις αν εντοπίσει κίνηση και όλα αυτά μέσα από το δικό της γραφικό περιβάλλον! 

Για αυτό το project μπορούμε να χρησιμοποιήσουμε οποιοδήποτε Pi θέλουμε, αλλά θα επιλέξουμε το Rapsberry Pi Zero W επειδή θέλουμε να μειώσουμε το κόστος αλλά και το μέγεθος. Θα προσθέσουμε επίσης μία CSI κάμερα για το Pi, αλλά μπορούμε μέσω USB να βάλουμε όποια κάμερα θέλουμε και αν και μπορούμε να φτιάξουμε μία βάση με τον 3D Printer, θα τα στήσουμε όλα αυτά σε ένα μεταλλικό κλιπ εγγράφων που θα βρούμε σε κάθε γραφείο! 


Το όλο project κοστίζει περίπου 35 ευρώ και είναι ακριβούτσικο, καθώς μπορείς να βρεις κάμερες ασφαλείας στο εμπόριο με 20 μόνο ευρώ αλλά:

  • σου προσφέρει αυτονομία καθώς μπορεί να λειτουργήσει ακόμη και με μπαταρίες,
  • έχει επεκτασιμότητα αν θέλεις να προσθέσεις κι άλλες κάμερες για παρακολούθηση περισσότερων χώρων,
  • σέβεται τα προσωπικά δεδομένα καθώς δεν τα στέλνει σε server κάποιας εταιρίας, ενώ
  • αν το βαρεθείς μπορείς να χρησιμοποιήσεις το Pi για άλλο σκοπό (π.χ. για να φτιάξεις μία παιχνιδομηχανή ή έναν cloud server).


Διαφήμιση

Εγκατάσταση του motionEyeOS


Θα χρησιμοποιήσουμε λοιπόν το motionEyeOS, μία εξαιρετική περίπτωση λογισμικού ανοιχτού κώδικα, η οποία μας δίνει πληθώρα ρυθμίσεων για τις κάμερές μας. Το motionEyeOS είναι ένα λειτουργικό σύστημα βασισμένο στο BuildRoot, το οποίο τρέχει απλά την υπηρεσία motionEye. Αν δηλαδή έχουμε ήδη έναν server με Linux, μπορούμε να του εγκαταστήσουμε κατ' ευθείαν το MotionEye μέσω Docker για παράδειγμα.

Το δικό μας Raspberry Pi Zero W θα τρέχει αποκλειστικά το motionEye (δεν μπορεί να κάνει και περισσότερα πράγματα εδώ που τα λέμε), οπότε επιλέγουμε τη λύση του motionEyeOS. Το κατεβάζουμε στον υπολογιστή μας από την επίσημη σελίδα του και το αποσυμπιέζουμε για να πάρουμε το αρχείο με κατάληξη "img" (π.χ. motioneyeos-raspberrypi-########.img).

Εγκαθιστούμε στη συνέχεια το αρχείο μας στη microSD κάρτα του Pi με τη βοήθεια του Etcher και μόλις τελειώσει η διαδικασία δίνουμε τις πληροφορίες του Wi-Fi δικτύου μας ως εξής: 

  • Μπαίνουμε στο "boot" partition της κάρτας (αυτό με μέγεθος 30MB περίπου) και δημιουργούμε το αρχείο "wpa_supplicant.conf".
  • Το ανοίγουμε και προσθέτουμε τις ακόλουθες πληροφορίες, συμπληρώνοντας στο πεδίο "ssid" το όνομα του δικτύου μας και στο "psk" τον κωδικό πρόσβασης:

country=GR
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
 scan_ssid=1
 ssid="XXXXXXXXXXXXXXXXXX"
 psk="XXXXXXXXXXXXXXXXXX"
}

  • Αποθηκεύουμε και κλείνουμε το αρχείο.
  • Αφαιρούμε την κάρτα από τον υπολογιστή μας και τη βάζουμε στο Raspberry Pi.
  • Βάζουμε το Raspberry Pi στην πρίζα και είμαστε έτοιμοι.

Ρύθμιση του motionEye


Την κάμερά μας μπορούμε να τη δούμε πλέον και να τη διαχειριστούμε μέσω μίας τοπικής διεύθυνσης IP (π.χ. http://192.168.1.14). Αυτό σημαίνει ότι δε χρειαζόμαστε κάποια έξτρα εφαρμογή, ενώ μπορούμε να έχουμε πρόσβαση από οποιαδήποτε συσκευή διαθέτει browser, ασχέτως λειτουργικού συστήματος. Θα χρειαστεί λοιπόν να εντοπίσουμε την IP της συσκευής μας είτε μπαίνοντας στο router μας, είτε χρησιμοποιώντας μια εφαρμογή σαν το Angry IP Scanner


Ανοίγουμε λοιπόν τον browser στο κινητό μας τηλέφωνο, πληκτρολογούμε την IP και αν όλα έχουν πάει καλά, θα δούμε το γραφικό περιβάλλον του motionEye και τη ζωντανή ροή του βίντεο. Αν μας ζητήσει να κάνουμε "login" το username είναι "admin", ενώ στο password δε γράφουμε τίποτα.


Στο αριστερό μενού του MotionEye κρύβονται οι ρυθμίσεις της κάμερας οι οποίες είναι πραγματικά άπειρες! Ενδεικτικά:

  • Στο "General Settings" μπορούμε να αλλάξουμε τον κωδικό πρόσβασης του "admin" και να δημιουργήσουμε έναν λογαριασμό χρήστη με τον οποίο θα μπορούμε να δούμε απλά την κάμερα χωρίς να έχουμε πρόσβαση στις ρυθμίσεις της (Surveillance). Μπορούμε επίσης να τσεκάρουμε για αναβαθμίσεις της υπηρεσίας, καθώς και να πάρουμε backup των ρυθμίσεών της.

  • Στο "Video Device" μπορούμε να ρυθμίσουμε την ποιότητα της εικόνας της κάμερας, μέσω της ανάλυσης και του frame rate. Οι τιμές που θα βάλουμε εδώ εξαρτώνται από την κάμερα που χρησιμοποιούμε, δηλαδή δεν μπορεί να έχουμε μία κάμερα ανάλυσης 640x480 και να τη ρυθμίσουμε στα 1080p.

  • Στο "File Storage" μπορούμε να δώσουμε το φάκελο στον οποίο θέλουμε να αποθηκεύονται οι φωτογραφίες και τα βίντεο που λαμβάνει η κάμερα, ενώ ενεργοποιώντας το "Upload Media Files" έχουμε τη δυνατότητα να τα στέλνουμε σε κάποιον τρίτο server (FTP, Google, Dropbox).


  • Στο "Video Streaming" ρυθμίζουμε την ποιότητα της ζωντανής ροής στο motionEye. Εδώ μπορούμε για παράδειγμα να μειώσουμε την ποιότητα στο 50% για να μην "τεντώνουμε" τον επεξεργαστή του Raspberry Pi, κάθε φορά που μπαίνουμε για να δούμε τι συμβαίνει στο χώρο. Αυτό όμως δεν επηρεάζει την ποιότητα των βίντεο και των φωτογραφιών που καταγράφονται.

  • Στο "Still Images" ρυθμίζουμε το motionEye να αποθηκεύει φωτογραφίες όταν αντιλαμβάνεται ότι υπάρχει κίνηση στο χώρο ή ανά τακτά χρονικά διαστήματα.

  • Στο "Movies" μπορούμε να κάνουμε το ίδιο πράγμα με βίντεο. Εδώ μπορούμε να επιλέξουμε τη μέγιστη διάρκεια των εγγραφόμενων βίντεο καθώς και το format τους (προτιμάμε τα "mp4").

  • Στο "Motion Detection" ενεργοποιούμε τον αισθητήρα κίνησης, με βάση τον οποίο θα λαμβάνονται οι φωτογραφίες και τα βίντεό μας.

  • Τέλος το "Motion Notifications" μας δίνει τη δυνατότητα να λαμβάνουμε ειδοποιήσεις με email κάθε φορά η κάμερά μας αντιλαμβάνεται κίνηση.


Αν φύγουμε τώρα από το πλαϊνό μενού και επιστρέψουμε στη ζωντανή ροή της κάμερας, μπορούμε να πατήσουμε επάνω της και θα εμφανιστεί ένα μενού εικονιδίων. Το ένα από αυτά είναι η συλλογή φωτογραφιών και το άλλο η συλλογή βίντεο τα οποία είναι αποθηκευμένα στη μνήμη του Pi. 


Εδώ μπορούμε να δούμε όλα όσα έχει καταγράψει η κάμερά μας, να τα κατεβάσουμε στον υπολογιστή μας, να τα διαγράψουμε ή να φτιάξουμε "timelapse" βίντεο με όλες τις φωτογραφίες!

Διαφήμιση

Ένα tip για το Raspberry Pi Zero


Αν χρησιμοποιήσουμε κάποιο από τα νεότερα Raspberry Pi δε θα έχουμε κανένα πρόβλημα με το motionEye, το Pi Zero όμως που επιλέξαμε έχει κάποιους περιορισμούς και αξίζει να μιλήσουμε λίγο για αυτούς.

Ο μονοπύρηνος επεξεργαστής του και τα 512MB RAM δε βοηθάνε ιδιαίτερα και έτσι θα δούμε ότι το ζωντανό βίντεό μας ενδέχεται να μην ξεπερνάει το 3FPS αν έχουμε όλες τις επιλογές ενεργοποιημένες. Μας δίνει δηλαδή τρεις εικόνες ανά δευτερόλεπτο αντί για ένα κανονικό βίντεο. Αυτός ο περιορισμός δημιουργεί επίσης πρόβλημα και στην εγγραφή βίντεο (Movies) τα οποία πάσχουν από την ίδια ασθένεια.

Αν θέλουμε λοιπόν να έχουμε ζωντανή εικόνα βίντεο σε πολύ καλό επίπεδο, μπορούμε να ενεργοποιήσουμε το "Fast Network Camera" στις ρυθμίσεις της κάμερας. Αυτό βελτιώνει τρομερά την κατάσταση αλλά απενεργοποιεί χρήσιμες ρυθμίσεις όπως το "Motion Detection".


Προσθήκη στο Home Assistant


Αν έχουμε πάνω από μία κάμερες σε διαφορετικά Raspberry Pi, είμαστε αναγκασμένοι να μπαίνουμε σε άλλη ιστοσελίδα για να βλέπουμε την κάθε μία από αυτές; Ευτυχώς όχι! Μπορούμε όπως είπαμε να στήσουμε το motionEye σε έναν κεντρικό υπολογιστή και να τις προσθέσουμε εκεί. Μπορούμε επίσης να τις βάλουμε και στο Home Assistant!

Επιλέγουμε το "Supervisor" από το πλαϊνό μενού, πηγαίνουμε στο "Add-on store" και αναζητούμε το motionEye. Το ενεργοποιούμε και πηγαίνουμε στο μενού του πατώντας "OPEN WEB UI".


Στη συνέχεια από το πλαϊνό μενού επιλέγουμε "add camera..." και στο "Camera Type" ρυθμίζουμε τον τύπο της κάμερας που θέλουμε να συνδέσουμε. Αν είναι ένα άλλο Raspberry Pi με motionEyeOS, τότε επιλέγουμε "Remote motionEye camera". Δίνουμε τέλος τη διεύθυνση IP, το όνομα χρήστη και τον κωδικό πρόσβασης και είμαστε έτοιμοι.


Εν κατακλείδι


Με το motionEyeOS μπορούμε λοιπόν να φτιάξουμε αυτόνομες κάμερες ασφαλείας με τα παλιότερα Raspberry Pi που έχουμε στο συρτάρι ή να προσθέσουμε μία κάμερα στον υπάρχων Raspberry Pi server μας. Η πληθώρα των ρυθμίσεών του καθώς και το γεγονός ότι είναι ένα λογισμικό ανοιχτού κώδικα το κάνουν τρομερά ενδιαφέρον, ενώ η απλότητα στη χρήση μαζί με την επεκτασιμότητά του μας δείχνουν ότι μπορεί να χρησιμοποιηθεί σε μικρά project στο σπίτι ή και σε μεγαλύτερα σε κάποια εταιρία ή γραφείο.


Σχόλια

Δείτε επίσης...

Android Basics | Τι είναι το ADB, πώς το χρησιμοποιώ και ποιες είναι οι βασικές εντολές του

Android Basics | Τι είναι το Fastboot και πώς χρησιμοποιούμε τις εντολές του;

Docker | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Μάθε παιδί μου Linux | Το σύστημα αρχείων του Linux με απλά λόγια

Android | Χρήσιμα tip για να βγάζουμε εξαιρετικές φωτογραφίες με το κινητό μας

Home Assistant | Πώς δημιουργούμε αυτοματισμούς στο smart home server μας

Raspberry Pi | Φτιάχνουμε το δικό μας smart home server και ενώνουμε όλες τις έξυπνες συσκευές μας σε μία εφαρμογή!

Android | Παίξε τα παιχνίδια του PlayStation στο Android smartphone ή tablet σου με το PS4 Remote Play!

Μάθε παιδί μου Linux | Πώς εγκαθιστούμε εφαρμογές στο Linux