Πίνακας περιεχομένων:
- Βήμα 1: Η κατάσταση των εμπορικών καμερών IP
- Βήμα 2: Σχέδια του Αστέρα του Θανάτου
- Βήμα 3: Λογισμικό Arduino
- Βήμα 4: Λογισμικό Raspberry PI
- Βήμα 5: Ζητήματα και λίστα εργασιών
Βίντεο: Raspberry PI Camera and Light Control Death Star: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Όπως πάντα, ψάχνω να κατασκευάσω συσκευές που είναι χρήσιμες, λειτουργούν γερά και συχνά είναι ακόμη βελτιώσεις σε σύγκριση με τις τρέχουσες λύσεις από το ράφι.
Ακολουθεί ένα ακόμη σπουδαίο έργο, που ονομάστηκε αρχικά Shadow 0f Phoenix, μια ασπίδα Raspberry PI σε συνδυασμό με την ανίχνευση κίνησης και τα χειριστήρια φωτός που βασίζονται σε Arduino.
Βήμα 1: Η κατάσταση των εμπορικών καμερών IP
Εκτός από το ότι η δημιουργία της δικής σας κάμερας/συστήματος επιτήρησης είναι πιο ωραία, ας δούμε γιατί είναι μια βελτίωση από μια λύση στο ράφι.
Θα το συγκρίνω με τη σειρά ασύρματης IP κάμερας NEO COOLCAM Full HD 1080P αφού έχω πολλά από αυτά τα διάφορα μοντέλα φωτογραφικών μηχανών neo coolcams (ONVIF). Έρχονται σε διαφορετικά σχήματα και μεγέθη, σε εξωτερικούς και εσωτερικούς χώρους, τα περισσότερα από αυτά έχουν ενσωματωμένη υποστήριξη wifi, αλλά ας δούμε τις επιφυλάξεις τους:
- Οι Κινέζοι κατασκευαστές που πωλούν αυτές τις κάμερες λένε σχεδόν πάντα την ενσωματωμένη ανάλυση αισθητήρα εικόνας, όταν αγοράζετε μια κάμερα 5MP/8MP στο Ebay μπορεί να καταλήξετε με μια φθηνή κάμερα 2MP με κακή εικόνα (λειτουργεί, αλλά η ποιότητα είναι σκουπίδια). Όταν αγοράζετε την κάμερα Raspberry PI v2 8MP από τον αρχικό πωλητή λιανικής, θα λάβετε αυτό που πληρώσατε και πραγματικό αισθητήρα 8MP με ανάλυση 3280 × 2464 pixel =>
- Από την άποψη της ασφάλειας, αυτές οι κάμερες (ακόμη και τα πιο ακριβά Dlink και άλλα μοντέλα) είναι φοβερά, χρησιμοποιούν προεπιλεγμένους κωδικούς πρόσβασης όπως το 123456 ή ενσωματωμένους σε χρήστες όπως διαχειριστή/διαχειριστή/χειριστή, κάτι που δεν θα μπορείτε καν να αλλάξετε ή η αλλαγή έχει φύγει μετά από επανεκκίνηση. Συμπληρώστε με πολλές από αυτές τις τηλεφωνικές κάμερες στο σπίτι (συνδεθείτε με τους διακομιστές τους στην Κίνα, ορισμένες μεταδίδουν βίντεο/εικόνες χωρίς να σας ζητήσουν απλώς για να το κάνετε ευκολότερο σε περίπτωση που αποφασίσετε να εγκαταστήσετε την εφαρμογή Android/Iphone τους μια μέρα για να ελέγξετε Σπίτι). Ακόμα κι αν τοποθετήσετε αυτές τις συσκευές πίσω από ένα δρομολογητή, δεν είναι αρκετά καλό, το καλύτερο είναι αν δεν ορίσετε μια προεπιλεγμένη πύλη σε αυτές, να τις απενεργοποιήσετε ή να τις τοποθετήσετε σε ένα VLAN, ώστε να είναι αδύνατο να βγουν το Διαδίκτυο ή ακόμα καλύτερα: μην τα χρησιμοποιείτε καθόλου.
- Είναι πιο αξιόπιστα; Όχι, πολλά από αυτά ακόμη και τα πιο ακριβά DLINK έχουν την επιλογή να επανεκκινήσουν την κάμερα καθημερινά/εβδομαδιαίως κλπ. Αυτή η επιλογή υπάρχει για κάποιο λόγο, επειδή μετά από X ημέρες συχνά χάνουν τη σύνδεση Wifi ή κακή συμπεριφορά με άλλους τρόπους. Απλά σκεφτείτε τα ως καλά παλιά κουτιά Win95 που χρειάζονταν επανεκκίνηση συχνότερα από ό, τι όχι:) Δεν λέω ότι το υλικό που βασίζεται στο Raspi είναι τόσο σταθερό ώστε να μπορείτε να τα ενσωματώσετε σε πυρηνικούς σταθμούς ελέγχου αλλά με κατάλληλο υλικό/λογισμικό διαμόρφωση, ψύκτρες ψύξης, αυτόματοι ανεμιστήρες ψύξης και ελαχιστοποίηση της λειτουργίας RW στην κάρτα SDCARD μπορούν εύκολα να χτυπήσουν αυτό το χρόνο λειτουργίας 100+ ημερών χωρίς πρόβλημα. Τη στιγμή που γράφω το DeathStar λειτουργεί από 34 ημέρες, ήταν πάνω από 100, αλλά μερικές φορές έκανα χακάρισμα στη ροή της πηγής ενέργειας που τροφοδοτεί κάποια άλλα κυκλώματά μου, οπότε έπρεπε να το κλείσω:(
- Στοχευμένο υλικό: είναι κατασκευασμένα για 1 συγκεκριμένο σκοπό, συχνά συνοδεύονται από μια μικρή περιοχή nvram και busybox, αλλά ορισμένα μοντέλα καθιστούν αδύνατη την πρόσβαση σε αυτό το κέλυφος, οπότε το μόνο που μπορείτε να τα χρησιμοποιήσετε είναι αυτό για το οποίο προορίζονταν να χρησιμοποιηθούν όσο μπορείτε χρησιμοποιήστε την κάμερα που βασίζεται σε Raspi για οποιαδήποτε άλλη εργασία: διακομιστής αρχείων, διακομιστής tftp/dhcp, διακομιστής ιστού, διακομιστής σεισμών … οι επιλογές είναι απεριόριστες.
- Χώρος αποθήκευσης: είτε δεν έχουν καμία είτε χρησιμοποιούν κάρτες microsd με σύστημα αρχείων FAT32 VS στο βατόμουρο, μπορείτε ακόμη και να επισυνάψετε έναν σκληρό δίσκο 2 TB, αν θέλετε.
- Φώτα ελέγχου: ορισμένα έχουν έξοδο ALARM όπου μπορεί να μπορείτε να συνδέσετε ένα μικρό ρελέ για να ενεργοποιηθούν τα φώτα. Όπως θα σας δείξω σε αυτό το σεμινάριο, η χρήση υπερύθρων καμερών είναι πλήρης χάσιμο χρόνου, καθώς δεν θα μπορείτε να αναγνωρίσετε κανέναν στις εικόνες IR λόγω της κακής ποιότητας. Εάν πρέπει να εγγράψετε ένα βίντεο στο σκοτάδι, ο καλύτερος τρόπος για να το κάνετε είναι να ανάψετε λίγο φως και στη συνέχεια να εγγράψετε το βίντεο.
Mightσως αναρωτηθείτε ότι υπάρχουν επαγγελματίες που χρησιμοποιούν κάμερα εκτός ραφιού; Ναι για επιχειρήσεις όπου οι ώρες εργασίας για τη ρύθμιση του θα ήταν πιο ακριβές από το να ασχολείσαι με το Raspberry pis (όχι για μένα έτσι κι αλλιώς:)) και ναι υπάρχουν κορυφαίες κάμερες (500 $+ με καλύτερη ανάλυση από την κάμερα pi του σειρά μαθημάτων). Ως άλλο πλεονέκτημα θα μπορούσα να πω ότι οι κάμερες που ακολουθούν το πρότυπο ONVIF διευκόλυναν την κεντρική παροχή. Αυτό παρέχει μια τυπική διεπαφή που μπορεί να χρησιμοποιηθεί για την αποστολή εντολών στην κάμερα για να ρυθμίσετε την IP/μάσκα δικτύου/Gateway και άλλα πράγματα. Για αυτό, μπορείτε να κατεβάσετε τη διαχείριση συσκευών Onvif από το Sourceforge. Πολλές από αυτές τις συσκευές συνοδεύονται από άθλια σπασμένα προσόψεις ιστού όπου, για παράδειγμα, δεν σας επιτρέπεται να ορίσετε σωστά το ip ή τη μάσκα δικτύου, επειδή η javascript που επικυρώνει αυτά τα πεδία δυσλειτουργεί και ο μόνος τρόπος για να ρυθμίσετε σωστά αυτές τις παραμέτρους είναι μέσω του ONVIF.
Βήμα 2: Σχέδια του Αστέρα του Θανάτου
Μπορείτε να δημιουργήσετε αυτήν τη συσκευή με οποιοδήποτε από τα Raspberry PIs ξεκινώντας από 1 έως 3B+. Ακόμα και το μηδέν έχει θύρες κάμερας, αλλά δεδομένου ότι υπάρχουν τόσα πολλά διαφορετικά μεταχειρισμένα raspis στην αγορά, ίσως αναρωτιέστε ποιο είναι το ιδανικότερο για αυτήν την κατασκευή.
Η απάντηση εξαρτάται από το πού θέλετε να επεξεργαστείτε τη ροή βίντεο.
Υπάρχουν δύο επιλογές:
1, Επεξεργαστείτε τα βίντεο τοπικά με κίνηση και προωθήστε μια ροή βίντεο όταν εντοπιστεί κίνηση (σημείωση: η κίνηση προωθεί μια αργή σταθερή ροή στον διακομιστή ό, τι και να γίνει, αυτό μπορεί να εξαρτάται από την ανάλυση και τους ρυθμούς καρέ που χρησιμοποιείτε από δύο εκατό megabytes έως πολλά gigabytes την ημέρα, απλώς μια υπενθύμιση εάν θέλετε να κάνετε μια ρύθμιση σε μια μετρημένη σύνδεση). Εδώ η CPU έχει σημασία και δυστυχώς η κίνηση (τη στιγμή της γραφής) δεν εκμεταλλεύεται πολλαπλούς πυρήνες, ωστόσο το λειτουργικό σύστημα θα προσπαθήσει να ισορροπήσει ελαφρώς το φορτίο. Θα έχετε πάντα έναν από τους πυρήνες σε 100% χρήση.
2, Επεξεργαστείτε τα βίντεο σε έναν κεντρικό διακομιστή: εδώ απλά προωθείτε την ακατέργαστη ροή βίντεο από την κάμερα σε εξωτερικό διακομιστή ροής (όπως το iSpy που εκτελείται σε υπολογιστή x86 ή το MotionEyeOS που εκτελείται σε άλλο ειδικό μικροϋπολογιστή). Δεδομένου ότι δεν υπάρχει τοπική επεξεργασία το μοντέλο του PI που χρησιμοποιείτε δεν έχει σημασία, ένα PI1 θα στείλει την ίδια ροή με ένα PI3B+.
Σε αυτό το σεμινάριο θα πάω με την πρώτη επιλογή.
Ο βασικός κανόνας εδώ είναι ότι όσο πιο γρήγορη CPU ρίχνετε σε κίνηση τόσο καλύτερα αποτελέσματα θα έχετε. Για παράδειγμα, η κάμερα με βάση το Raspi 2 που κοιτούσε έναν διάδρομο μερικές φορές δεν την έπαιρνε όταν κάποιος περνούσε γρήγορα και όταν ηχογραφούσε η εγγραφή ήταν υποτονική, έριχνε πολλά καρέ σε σύγκριση με το μοντέλο 3. Το μοντέλο 3 διαθέτει επίσης το 802.11 abgn wifi που είναι βολικό για να μπορείτε να μεταδίδετε βίντεο υψηλότερης ποιότητας, λειτουργεί εκτός κιβωτίου και είναι αρκετά αξιόπιστο. Κατά τη στιγμή που γράφω ότι το μοντέλο 3B+ είναι εκτός, θα συνιστούσα να το πάρετε με επεξεργαστή 1.4 Ghz Quad Core.
Κατάλογος υλικών
- 30 εκατοστά πλαστικό DeathStar:)
- Raspberry Pi 3 B+
- PiCam v2 (8MP)
- Arduino Pro Micro 5.5v
- 2x ρελέ διακοπτών καλαμιών SIP-1A05
- 1x PCS HC-SR501 IR Πυροηλεκτρική υπέρυθρη υπέρυθρη υπέρυθρη μονάδα ανιχνευτή κίνησης αισθητήρα
- 1x αντίσταση 10kohm για LDR
- 1x LDR
- Προσαρμογέας DC 1x12V 4A
- Λάμπα 1xWarm White LED 5050 SMD Ευέλικτη λωρίδα φωτισμού 12V DC
- 1xBuck ρυθμιστής τάσης
Όπως μπορείτε να δείτε στα σχηματικά, αυτό το έργο σχεδιάστηκε αρχικά για τον έλεγχο ενός μόνο φωτός με ένα ρελέ, επειδή δεν σχεδίαζα να προσθέσω εσωτερικό φωτισμό (που είναι αρκετά δροσερό), οπότε απλώς συνδέσα ένα δεύτερο ρελέ στο Arduino. Το υπέροχο με το SIP-1A05 είναι ότι έχει εσωτερική δίοδο flyback και η κατανάλωση σε mA είναι πολύ κάτω από τον περιορισμό ισχύος του Arduino ανά pin.
Ο λόγος για τον οποίο το PIR βρίσκεται στην ασπίδα στις εικόνες επειδή στην αρχή το S0P σχεδιάστηκε να τοποθετηθεί σε ένα απλό πλαστικό κουτί IP αντί για ένα DeathStar. Όπως μαντέψατε, η κάμερα βρίσκεται ακριβώς στο πιστόλι λέιζερ, το PIR και το LDR χρειάστηκαν άλλες τρύπες και είναι κολλημένες, καθώς δεν σκοπεύω να τις αφαιρέσω.
Μια τρύπα άνοιξε στο κάτω μέρος του DeathStar όπου κόλλησα σε ένα μεγάλο μπουλόνι με μια ισχυρή κόλλα 2 συστατικών. Αυτό μπορεί να βιδωθεί στην αρχική βάση Neo Coolcams (ήταν καλό για κάτι τελικά:)). Για πρόσθετη υποστήριξη χρησιμοποιώ καλώδια από σκληρό χαλκό για να κρατήσω στην κορυφή του αστεριού.
Σημαντική σημείωση σχετικά με το τροφοδοτικό: δεδομένου ότι η ίδια τροφοδοσία θα τροφοδοτεί τόσο το PI, το Arduino όσο και τη λωρίδα LED, πρέπει να είναι αρκετά σκληρό για να μπορεί να τα χειριστεί όλα, έτσι θα βασίζεται στη λωρίδα LED που θα επιλέξετε για το έργο. Μια εμπορική λωρίδα LED 5050 12v 3 μέτρων αποστραγγίζεται γύρω στα 2Α, αυτό είναι πολύ. Για το PI και το Arduino πρέπει να υπολογίσετε στο +2A (αν και αυτό είναι υπερμεγέθη δεν θα βλάψει). Η χρήση λωρίδας LED πάνω από τυπικούς λαμπτήρες αλογόνου, νέον ή άλλο φωτισμό υψηλής ισχύος είναι ότι μπορείτε να βάλετε ολόκληρο αυτό το κύκλωμα σε μια ωραία μπαταρία μολύβδου 12V@10Ah ως εφεδρική, ώστε να λειτουργεί ακόμη και σε περίπτωση διακοπής ρεύματος.
Το buck θα μειώσει την τάση από 12-> 5V για την τροφοδοσία του Arduino και του PI ενώ η απευθείας τροφοδοσία 12V είναι συνδεδεμένη στο ρελέ για να ανάψει η λωρίδα LED.
Βήμα 3: Λογισμικό Arduino
Μπορείτε να βρείτε τον πλήρη πηγαίο κώδικα παρακάτω, ο οποίος σχολιάζεται καλά, αλλά εδώ είναι μια σύντομη εξήγηση για το πώς λειτουργεί: Στην αρχή κάθε βρόχου καλείται η συνήθης λειτουργία xcomm () για να διαπιστωθεί εάν υπάρχει εντολή που προέρχεται από το Raspberry PI το οποίο μπορεί να είναι LIGHT_ON/OFF για να ανάψετε τα φώτα του διαδρόμου ή DS_ON/OFF για να ενεργοποιήσετε/απενεργοποιήσετε τον οπίσθιο φωτισμό DeathStar, τα έχω εφαρμόσει μόνο για λόγους υπέρβασης της τελειότητας, καθώς αν κάποιος περάσει από το PIR θα πρέπει να το σηκώσει και να το ανάψει τα φώτα αλλά ίσως θέλετε να κοιτάξετε το μέρος για κάποιο λόγο ακόμα και όταν δεν υπάρχει κανείς εκεί.
Μετά από αυτό, η τιμή του φωτοκύτταρου διαβάζεται και ο πείρος κίνησης ελέγχεται για κίνηση. Εάν υπάρχει κίνηση, ο κωδικός ελέγχει εάν είναι αρκετά σκοτεινός, ελέγχει εάν δεν είμαστε σε αναμονή. Εάν περάσουν όλα αυτά, τότε απλώς ανάβει το φως του διαδρόμου και στέλνει πίσω PHOENIX_MOTION_DETECTED στο Raspberry PI, εάν δεν είναι αρκετά σκοτεινό, εξακολουθεί να δίνει σήματα στον υπολογιστή, αλλά δεν ανάβει το φως. Μόλις εντοπιστεί μια κίνηση, ξεκινά ένα χρονόμετρο κράτησης 5 λεπτών.
Αμέσως μετά, η επόμενη ενότητα κώδικα θα ελέγξει για να διαπιστωθεί εάν είμαστε σε αναμονή (κάτι που πρέπει να συμβαίνει εάν υπήρχε μόνο ένα συμβάν κίνησης, οπότε ας υποθέσουμε ότι έχουν περάσει τα 5 λεπτά για να επιβεβαιωθεί αυτός ο έλεγχος). Ο κωδικός ελέγχει αν υπάρχει ξανά κίνηση, αν όχι, τότε σβήστε τα φώτα. Όπως μπορείτε να δείτε εάν δεν υπάρχει κίνηση, αυτή η λειτουργία θα επαναλαμβάνεται ξανά και ξανά συνεχίζοντας να προσπαθείτε να σβήσετε τα φώτα, ώστε να μην υπάρχει ανατροφοδότηση στον υπολογιστή.
Έχουμε έναν άλλο χρονοδιακόπτη για τον εσωτερικό φωτισμό του DeathStar, ο οποίος εξαρτάται καθαρά από το photocellReading <dark_limit.
Παρόλο που οι δύο ρουτίνες δεν γνωρίζουν ο ένας τον άλλον, θα λειτουργούν τέλεια μαζί, αφού όταν ανάψει το φως του διαδρόμου παρέχει τόσο πολύ φως που το LDR θα νομίζει ότι είναι και πάλι μέρα και απενεργοποιεί τον εσωτερικό φωτισμό. Ωστόσο, υπήρξαν κάποιες προειδοποιήσεις σχετικά με αυτήν τη διαδικασία, η οποία εξηγείται στον κώδικα αν σας ενδιαφέρει, αν όχι, τότε πάρτε την απάντηση της Nvidia ότι "απλά λειτουργεί!".
Βήμα 4: Λογισμικό Raspberry PI
Τα πιο πρόσφατα Raspbian λειτουργούν για μένα:
Raspbian GNU/Linux 9.4 (stretch)
Linux Phoenix 4.9.35-v7+ #1014 SMP Παρ 30 Ιουνίου 14:47:43 BST 2017 armv7l GNU/Linux ii motion 4.0-1 armhf V4L πρόγραμμα λήψης που υποστηρίζει ανίχνευση κίνησης
Ενώ μπορείτε να χρησιμοποιήσετε άλλες διανομές, εάν αντιμετωπίσετε προβλήματα με την κάμερα, θα λάβετε υποστήριξη από την ομάδα μόνο εάν χρησιμοποιείτε το επίσημο λειτουργικό σύστημα. Συνιστάται επίσης ιδιαίτερα η αφαίρεση ανεπιθύμητων bloatware όπως το systemd.
Η κίνηση μπορεί επίσης να δημιουργηθεί από την πηγή εύκολα:
apt-get -y install autoconf automake pkgconf libtool libjpeg8-dev build-essential libzip-dev apt-get install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev
apt-get -y install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev apt-get -y install git git clone https://github.com/Motion-Project/motion cd motion/autoreconf -fiv. /configure --prefix =/usr/motion make && make install/usr/motion/bin/motion -v
Προτείνω το iSpy ως διακομιστή εγγραφής βίντεο/συλλέκτη. Δυστυχώς κατά τη στιγμή της σύνταξης δεν υπάρχουν καλές εναλλακτικές λύσεις για το Linux. Η κάμερα μπορεί να προστεθεί με url MJPEG https:// CAMERA_IP: 8081 την προεπιλεγμένη θύρα.
Η επεξεργασία κίνησης μπορεί να είναι χρήσιμη, για παράδειγμα δεν χρειάζεται να συνεχίσετε να κοιτάτε τον διακομιστή iSpy όλη μέρα, μπορείτε να λαμβάνετε ένα email σε περίπτωση κίνησης. Παρόλο που το iSpy έχει αυτήν τη λειτουργικότητα για ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε περίπτωση κίνησης, ενεργοποιεί την εγγραφή κατά καιρούς για διάφορα γεγονότα όπως κάποιο φως που αντανακλάται στην περιοχή. Με την ανίχνευση κίνησης PIR δεν είχα ποτέ έναν ψευδή συναγερμό. Οι ειδοποιήσεις μπορούν να υποβληθούν σε επεξεργασία τοπικά:
Ανιχνεύθηκε συμβάν κίνησης Pir στον αισθητήρα> Ειδοποίηση Arduino> Το Raspberry pi λαμβάνει στην κονσόλα> Πρόγραμμα επεξεργασίας C> Εφαρμογή εξωτερικής αλληλογραφίας
Ωστόσο, προτιμώ να επεξεργάζομαι τόσο τα αρχεία καταγραφής όσο και τα βίντεο από απόσταση, οπότε σε αυτήν την περίπτωση έχω προσθέσει μια ενότητα στο πρόγραμμα ελέγχου C, ενώ καταγράφει τα αρχεία καταγραφής τοπικά σε ένα απλό αρχείο κειμένου, επίσης το καταγράφει στο syslog και προωθείται σε ένα SIEM για περαιτέρω επεξεργασία.
void logger (char *text) {
ΑΡΧΕΙΟ *f = fopen ("phoenix.log", "a"); if (f == NULL) {printf ("Σφάλμα κατά το άνοιγμα του αρχείου καταγραφής! / n"); ΕΠΙΣΤΡΟΦΗ; } fprintf (f, " %s => %s / n", cur_time (0), κείμενο); fclose (f); #ifdef SYSLOG char loggy [500]; sprintf (loggy, " %s => %s / n", cur_time (0), κείμενο); μάσκα setlogmas (LOG_UPTO (LOG_NOTICE)); openlog ("DeathStar", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_USER); // syslog (LOG_NOTICE, "Έναρξη προγράμματος από τον χρήστη %d", getuid ()); syslog (LOG_NOTICE, loggy); closelog (); #endif επιστροφή? }
Στο άκρο λήψης, το syslog-ng μπορεί να αποσυνδέσει αυτά τα συμβάντα από την κύρια ροή καταγραφής:
φίλτρο f_phx {
αγώνα ("DeathStar")? }; προορισμός d_phx {αρχείο ("/var/log/phoenix/deathstar.log"); }; log {source (s_net); φίλτρο (f_phx); προορισμός (d_phx); };
και μπορεί να περάσει σε άλλο εργαλείο (motion.php δείτε συνημμένο) για ανάλυση και ειδοποίηση.
Σε αυτό το σενάριο μπορείτε απλά να ορίσετε τη συνηθισμένη ώρα κατά τη διάρκεια της εβδομάδας όταν δεν είστε στο σπίτι:
$ opt ['alert_after'] = '09:00:00'; // Πρωινά $ opt ['alert_before'] = '17:00:00'; // Βράδυ
Το πρόγραμμα php χρησιμοποιεί το εξαιρετικό βοηθητικό πρόγραμμα logtail για την ανάλυση των αρχείων καταγραφής.
$ cmd = "logtail -o". $ offsetfile. ' '. $ logfile.'> '. $ logfile2;
Το Logtail παρακολουθεί τη θέση σε ένα αρχείο μετατόπισης, οπότε το κύριο πρόγραμμα δεν χρειάζεται να γνωρίζει από πότε θα αρχίσει να εξετάζει τα αρχεία καταγραφής, θα του παρέχονται τα πιο πρόσφατα ανεπεξέργαστα δεδομένα.
Το Motion.php μπορεί να εκτελεστεί από το crontab με ένα μικρό κόλπο για τα Σαββατοκύριακα, όταν θα περάσει από τα αρχεία καταγραφής, αλλά μην κάνετε περαιτέρω επεξεργασία.
*/5 * * * 1-5/usr/local/bin/php ~/motion.php &>/dev/null */5 * * * 6-7/usr/local/bin/php ~/motion.php Σαββατοκύριακο &>/dev/null
Βήμα 5: Ζητήματα και λίστα εργασιών
Εάν χρησιμοποιείτε Raspberry pi 3 ή νεότερη έκδοση, μπορείτε να παραλείψετε αυτήν την ενότητα, πιθανότατα δεν θα αντιμετωπίσετε αυτά τα προβλήματα πια.
Κατά τη διάρκεια των ετών είχα κάποια προβλήματα με τους πίνακες που βασίζονταν στο Raspberry pi 2, οι οποίοι θα μπορούσαν να τρέχουν την ίδια στοίβα λογισμικού, αλλά αγοράστηκαν σε διαφορετικούς χρόνους από διαφορετικά μέρη. Μετά από ένα ορισμένο χρονικό διάστημα που θα μπορούσε να είναι 2 ημέρες ή 20 ημέρες όταν η σύνδεση SSH στη συσκευή, το SSH θα κρεμάσει, έτσι τόσο ο δαίμονας κίνησης όσο και ο τοπικός κωδικός C που συνομιλούσε με το Arduino φορτώθηκαν στο ram, επομένως η συσκευή λειτουργούσε αλλά ήταν αδύνατο να κάνουμε κάτι άλλο πια σε αυτήν την κατάσταση.
Μετά από πολλά προβλήματα αντιμετώπισης προβλημάτων, βρήκα μια λύση:
homesync.sh
#!/bin/sh -e
### ΕΚΚΙΝΗΣΗ ΠΛΗΡΟΦΟΡΙΩΝ # Παρέχει: homesync # Required-Start: mountkernfs $ local_fs # Required-Stop: camera phoenix # Default-Start: S # Default-Stop: 0 6 # Short-Description: Home synchronizer # Περιγραφή: Home synchronizer από NLD ### END INIT INFO NAME = home DESC = "Ramdisk Home Synchronizer" RAM = "/home/" DISK = "/realhome/" set -e case "$ 1" in start | 4th) echo -n "Starting $ DESC: "rsync -az --numeric -ids -διαγραφή $ DISK $ RAM &> /dev /null echo" $ NAME. ";; stop | back) echo -n "Διακοπή $ DESC:" rsync -az --numeric -ids -διαγραφή $ RAM $ DISK &> /dev /null echo "$ NAME.";; *) echo "Usage: $ 0 {start | stop}" exit 1;; έξοδος esac 0
Το σενάριο συνδυάζεται με μια τροποποίηση fstab:
tmpfs /home tmpfs rw, μέγεθος = 80%, nosuid, nodev 0 0
Το διαμέρισμα του σπιτιού είναι τοποθετημένο ως ramdisk, το οποίο θα παράγει περίπου 600 MB ελεύθερο χώρο στο Raspberry pi 2, το οποίο είναι περισσότερο από αρκετό για την αποθήκευση δυαδικών και μικρών αρχείων καταγραφής:
tmpfs 690M 8,6M 682M 2% /σπίτι
Αποδείχθηκε ότι το PI hang αποδόθηκε στις λειτουργίες εγγραφής στην κάρτα SD, αν και έχω δοκιμάσει διαφορετικές κάρτες (Samsung EVO, Sandisk) οι οποίες έχουν σαρωθεί για σφάλματα πολλές φορές πριν και μετά και δεν είχαν κανένα πρόβλημα σε άλλους φορητούς υπολογιστές. στη συνέχεια. Δεν είχα το ίδιο πρόβλημα (ακόμα) με το Raspberry PI 3s και το υψηλότερο υλικό, γι 'αυτό επίσης τους προτείνω σε αυτό το σεμινάριο.
Αν και η τρέχουσα κίνηση σε ένα Raspberry PI 3 είναι αρκετά καλή για μένα, εδώ είναι μερικές ιδέες που αξίζει να εξερευνήσετε:
- Μην χρησιμοποιείτε κίνηση, αλλά χρησιμοποιήστε μια ευρεία ροή μέσω του δικτύου και αφήστε έναν ισχυρό διακομιστή να κάνει την ανίχνευση κίνησης και την κωδικοποίηση βίντεο (π.χ. iSpy). -> Πρόβλημα: σταθερό άνοιγμα εύρους ζώνης δικτύου.
- Χρησιμοποιήστε κίνηση και αφήστε το ffmpeg να κάνει την κωδικοποίηση βίντεο. -> Πρόβλημα: Η CPU δεν μπορεί να χειριστεί τις υψηλότερες αναλύσεις
- Χρησιμοποιήστε κίνηση, καταγράψτε ακατέργαστο βίντεο και αφήστε έναν ισχυρό διακομιστή να κάνει την κωδικοποίηση. -> Η χρήση της CPU στο RPi είναι χαμηλή και το εύρος ζώνης δικτύου περιορίζεται όταν υπάρχει πραγματική κίνηση. Για αυτό το σενάριο, θα μπορούσαμε να γράψουμε σε μια κάρτα SD/ramdisk για μέγιστη απόδοση και στη συνέχεια να διαγράψουμε το αντίγραφο του βίντεο σε άλλο διακομιστή.
Θα ήθελα επίσης να σημειώσω ότι η κατασκευή αυτού του έργου είναι δυνατή κατασκευή χωρίς Arduino. Όλα τα εξαρτήματα (ρελέ, LDR, PIR) θα μπορούσαν να συνδεθούν με το raspberry pi με κάποιο τρόπο, αλλά προτιμώ τους μικροελεγκτές σε πραγματικό χρόνο να αλληλεπιδρούν με αισθητήρες και συσκευές εξόδου. Στις περιπτώσεις όπου το raspberry pi μου κρεμόταν για παράδειγμα ή έπεσε, ο έλεγχος φωτός που εκτελείται από το Arduino λειτούργησε μια χαρά.
Αν σας άρεσε αυτό το διδακτικό έμεινε συντονισμένο καθώς θα συνεχίσω τη σειρά με την εξωτερική μου κάμερα 360 βαθμού βατόμουρου pi zero το επόμενο έτος.
Συνιστάται:
Να γνωρίζετε το ATLAS - STAR WARS - Death Star II: 7 βήματα (με εικόνες)
Να είστε ενήμεροι για το ATLAS - STAR WARS - Death Star II: Build από το πλαστικό μοντέλο Bandai Death Star II. Τα κυριότερα χαρακτηριστικά περιλαμβάνουν: ✅Φως φωτισμού και ήχου✅MP3 Player✅InfraRED τηλεχειριστήριο✅Αισθητήρας θερμοκρασίας✅ χρονόμετρο 3 λεπτώνBlog: https://kwluk717.blogspot.com/2020/12/be-aware-of-atlas-star-wars- άστρο θανάτου
Blinds Control With ESP8266, Google Home and Openhab Integration and Webcontrol: 5 βήματα (με εικόνες)
Blinds Control Με ESP8266, Google Home και Openhab Integration και Webcontrol: Σε αυτό το Instructable σας δείχνω πώς πρόσθεσα την αυτοματοποίηση στις περσίδες μου. Wantedθελα να μπορώ να προσθέσω και να αφαιρέσω τον αυτοματισμό, οπότε όλη η εγκατάσταση είναι συνδεδεμένη. Τα κύρια μέρη είναι: Βηματικό μοτέρ Stepper control bij bij ESP-01 Gear and mounting
Star Track - Arduino Powered Star Pointer and Tracker: 11 βήματα (με εικόνες)
Star Track - Arduino Powered Star Pointer and Tracker: Star track είναι ένα σύστημα παρακολούθησης αστεριών που βασίζεται στο Arduino, GoTo -mount. Μπορεί να κατευθύνει και να παρακολουθεί οποιοδήποτε αντικείμενο στον ουρανό (οι ουράνιες συντεταγμένες δίνονται ως είσοδο) με 2 Arduinos, γυροσκόπιο, μονάδα RTC, δύο βηματικά μοτέρ χαμηλού κόστους και δομή τρισδιάστατης εκτύπωσης
Alexa-Enabled Death Star Lamp: 17 βήματα (με εικόνες)
Alexa-Enabled Death Star Lamp: Φέρτε ένα απόσπασμα από τη σκοτεινή πλευρά στο σαλόνι σας με αυτόν τον μοναδικό λαμπτήρα με φωνητική ενεργοποίηση. Ένα λειτουργικό έργο τέχνης που είναι χρήσιμο και ευχάριστο να το κοιτάξεις. Ενεργοποίηση ή απενεργοποίηση; Όλες οι λάμπες το κάνουν! Αλλαγή φωτεινότητας; Πολύ κοινό! Μπορεί όμως το δικό σας
Light Up Bow From Saran Wrap and Hot Glue and LED Throwie: 6 βήματα (με εικόνες)
Light Up Bow From Saran Wrap and Hot Glue and LED Throwie: Δημιουργήστε ένα χαριτωμένο, φωτεινό, φωτισμένο τόξο με περιτύλιγμα σαράν, ζεστή κόλλα και μερικές τροποποιημένα πέταλα LED. Ναι, με άκουσες … περιτύλιγμα σαράν και ζεστή κόλλα. Είναι η τέλεια χειροτεχνία διακοπών για τη μαμά και τις κόρες να κάνουν μαζί, χωρίς διάλειμμα