- Εγκατάσταση και διαμόρφωση του "Motion" για λήψη ροής βίντεο:
- Ρύθμιση φιάλης στο Raspberry Pi για έλεγχο ρομπότ μέσω ιστοσελίδας:
- Κωδικός HTML για ιστοσελίδα:
- Ρομπότ επιτήρησης
- Διάγραμμα κυκλώματος και ρύθμιση:
- Τρόπος λειτουργίας:
Σε αυτήν τη συνεδρία DIY κατασκευάζουμε ένα ρομποτικό αυτοκίνητο επιτήρησης με έλεγχο ιστού χρησιμοποιώντας βατόμουρο pi και κάμερα web. Αυτό θα μπορούσε να είναι ένα χρήσιμο και φθηνό εργαλείο ασφάλειας και κατασκοπείας, το οποίο έχει πολλές διαμορφώσιμες επιλογές και μπορεί να κατασκευαστεί σε λίγες ώρες. Σε αυτό το έργο IoT, χρησιμοποιούμε κυρίως Raspberry Pi, κάμερα web USB και δύο κινητήρες DC με πλαίσιο Robot για την κατασκευή αυτού του ρομποτικού αυτοκινήτου.
Έχει μια κάμερα web τοποθετημένη πάνω της, μέσω της οποίας θα λαμβάνουμε ζωντανή ροή βίντεο και το ενδιαφέρον μέρος εδώ είναι ότι μπορούμε να ελέγξουμε και να μετακινήσουμε αυτό το ρομπότ από ένα πρόγραμμα περιήγησης στο Διαδίκτυο. Καθώς μπορεί να ελεγχθεί χρησιμοποιώντας ιστοσελίδα, σημαίνει ότι μπορεί επίσης να ελεγχθεί χρησιμοποιώντας ιστοσελίδα σε Κινητό. Δημιουργήσαμε μια ιστοσελίδα σε HTML που έχει συνδέσμους Αριστερά, Δεξιά, Εμπρός, Πίσω, κάνοντας κλικ στην οποία μπορούμε να μετακινήσουμε το ρομπότ προς οποιαδήποτε κατεύθυνση. Εδώ χρησιμοποιήσαμε το "Motion" για λήψη ζωντανής ροής βίντεο από κάμερα USB και χρησιμοποιήσαμε το "Flask" για την αποστολή εντολών από την ιστοσελίδα στο Raspberry Pi χρησιμοποιώντας pythonγια να μετακινήσετε το ρομπότ, το οποίο εξηγείται λεπτομερώς στο επόμενο μέρος αυτού του σεμιναρίου. Έχουμε εγκαταστήσει το Raspbian Jessie OS στον πίνακα Raspberry Pi. Μπορείτε να δείτε αυτό το άρθρο για να εγκαταστήσετε το Raspbian OS και να ξεκινήσετε με το Raspberry Pi.
Εγκατάσταση και διαμόρφωση του "Motion" για λήψη ροής βίντεο:
Το Motion (Λογισμικό επιτήρησης) είναι δωρεάν, λογισμικό CCTV ανιχνευτή κίνησης ανοιχτού κώδικα, που αναπτύχθηκε για Linux. Ανιχνεύει την κίνηση και ξεκινά την εγγραφή βίντεο. Με το "Motion" εγκατεστημένο στο Raspberry Pi, μπορείτε μαγικά να μετατρέψετε το Raspberry Pi σε κάμερα ασφαλείας. Χρησιμοποιείται για τη λήψη ζωντανής ροής βίντεο, τη δημιουργία βίντεο χρονομέτρησης και τη λήψη στιγμιότυπων σε κανονικό διάστημα. Καταγράφει και αποθηκεύει το βίντεο κάθε φορά που ανιχνεύει κίνηση ή οποιαδήποτε διαταραχή στην περιοχή προβολής. Μπορείτε να παρακολουθήσετε ζωντανή ροή βίντεο στο πρόγραμμα περιήγησης στο Web εισάγοντας τη διεύθυνση IP του Pi μαζί με τη θύρα.
Έχουμε δημιουργήσει ένα αναλυτικό σεμινάριο για τη χρήση του Motion με το Raspberry Pi και τη φωτογραφική μηχανή USB, εδώ εξηγούμε εν συντομία την εγκατάστασή του στο Raspberry pi για το ρομπότ μας για την αποστολή ζωντανής ροής βίντεο στην ιστοσελίδα.
Εδώ πρέπει να εκτελέσετε λίγες μόνο εντολές για να ξεκινήσετε να λαμβάνετε την πρώτη ροή βίντεο μέσω του δικτύου. Πριν από αυτό, ελέγξτε σωστά ότι το Raspberry Pi σας είναι συνδεδεμένο στο Διαδίκτυο, χρησιμοποιώντας LAN ή Wi-Fi και, στη συνέχεια, ακολουθήστε τα παρακάτω βήματα:
Βήμα 1: Εκτελέστε πρώτα την παρακάτω εντολή για να ενημερώσετε το Raspbian OS στο Raspberry Pi:
sudo apt-get ενημέρωση
Βήμα 2: Στη συνέχεια, εγκαταστήστε τη βιβλιοθήκη «Motion» χρησιμοποιώντας την παρακάτω εντολή:
sudo apt-get εγκατάσταση κίνησης
Βήμα 3: Τώρα ορίστε το Motion daemon σε ναι επεξεργάζοντας το αρχείο: / etc / default / motion έτσι ώστε να τρέχει πάντα. Επεξεργαστείτε αυτό το αρχείο χρησιμοποιώντας το πρόγραμμα επεξεργασίας «nano» με το «sudo» όπως δίνεται παρακάτω:
sudo nano / etc / default / motion
Στη συνέχεια, αποθηκεύστε το αρχείο πατώντας "CTRL + X", στη συνέχεια "Y" και το Enter.
Βήμα 4: Τώρα πρέπει να ορίσουμε την άδεια για το Target Directory (/ var / lib / motion /), στο οποίο το Motion αποθηκεύει όλες τις εγγραφές βίντεο και τα αρχεία εικόνων. Πρέπει να ορίσουμε το "Motion" ως κάτοχο αυτού του καταλόγου εκδίδοντας την παρακάτω εντολή:
sudo chown motion: κίνηση / var / lib / κίνηση /
Αυτή η άδεια είναι απαραίτητη, διαφορετικά θα εμφανιστεί σφάλμα, όταν ελέγχετε την Κατάσταση υπηρεσίας κίνησης.
Μπορείτε να ελέγξετε την κατάσταση υπηρεσίας χρησιμοποιώντας αυτήν την εντολή: κατάσταση κίνησης υπηρεσίας sudo
Βήμα 5: Τώρα έχουμε σχεδόν τελειώσει, μόνο πρέπει να αλλάξουμε μια επιλογή διαμόρφωσης στο αρχείο ρυθμίσεων Motion (/etc/motion/motion.conf ) που είναι απενεργοποιημένο το stream_localhost Πρέπει να απενεργοποιήσουμε αυτήν την τοπική ροή κεντρικού υπολογιστή, αλλιώς δεν θα έχουμε πρόσβαση στη ροή βίντεο στο δίκτυό μας και θα είναι προσβάσιμη μόνο από το ίδιο το Raspberry Pi. Για να το κάνετε αυτό, επεξεργαστείτε το αρχείο Motion Configuration με το πρόγραμμα επεξεργασίας "nano" και απενεργοποιήστε το, όπως φαίνεται παρακάτω:
sudo nano /etc/motion/motion.conf
Τώρα τελειώσαμε και είμαστε έτοιμοι να συνδέσουμε τη ζωντανή ροή μας από την κάμερα web USB στο Pi. Απλώς ξεκινήστε (ή επανεκκινήστε) την υπηρεσία Motion χρησιμοποιώντας την παρακάτω εντολή και ανοίξτε το IP του Raspberry Pi, με θύρα 8081, στο πρόγραμμα περιήγησής σας (όπως 192.168.43.199:8081). Σε αυτό το έργο έχουμε ενσωματώσει αυτήν την IP στον κώδικα HTML μας στην ετικέτα img src .
sudo /etc/init.d/motion επανεκκίνηση
Και θα δείτε τη ζωντανή ροή από την κάμερα web. Εδώ έχουμε χρησιμοποιήσει μια κάμερα web USB χαμηλού κόστους που λειτούργησε ομαλά με το Raspberry Pi, αλλά μπορείτε περαιτέρω να χρησιμοποιήσετε μια κάμερα καλής ποιότητας για καλύτερη ανάλυση. Όπως θα εμφανίζεται στο πρόγραμμα περιήγησης, μπορείτε να χρησιμοποιήσετε οποιαδήποτε συσκευή, για να παρακολουθήσετε τη ροή, η οποία υποστηρίζει πρόγραμμα περιήγησης ιστού όπως για κινητά, tablet κ.λπ.
Δοκιμάστε να επανεκκινήσετε το Raspberry Pi ως βήμα αντιμετώπισης προβλημάτων όταν είναι απαραίτητο:
επανεκκίνηση sudo
Αυτό αφορά τη χρήση του Motion for Surveillance Robot, εκτός από αυτό, έχει πολλές επιλογές διαμόρφωσης που έχουμε ήδη συζητήσει στο προηγούμενο σεμινάριό μας.
Σημείωση: Εάν είστε μοντέλο Raspberry Pi κάτω από την έκδοση 3, τότε ίσως χρειαστείτε ένα dongle Wi-Fi για ασύρματη σύνδεση του raspberry Pi με το δρομολογητή.
Ρύθμιση φιάλης στο Raspberry Pi για έλεγχο ρομπότ μέσω ιστοσελίδας:
Εδώ, δημιουργήσαμε έναν διακομιστή ιστού χρησιμοποιώντας το Flask, ο οποίος παρέχει έναν τρόπο αποστολής των εντολών από την ιστοσελίδα στο Raspberry Pi για τον έλεγχο του ρομπότ μέσω του δικτύου. Το Flask μας επιτρέπει να εκτελέσουμε τα σενάρια python μέσω μιας ιστοσελίδας και μπορούμε να στείλουμε και να λάβουμε δεδομένα από το Raspberry Pi στο πρόγραμμα περιήγησης ιστού και το αντίστροφο. Η φιάλη είναι ένα μικροπλαίσιο για την Python. Αυτό το εργαλείο βασίζεται σε Unicode με ενσωματωμένο διακομιστή ανάπτυξης και εντοπισμό σφαλμάτων, ενσωματωμένη υποστήριξη δοκιμών μονάδων, υποστήριξη για ασφαλή cookie και εύκολο στη χρήση του, αυτά τα πράγματα το καθιστούν χρήσιμο για τον χομπίστα.
Εγκαταστήστε ένα πακέτο υποστήριξης φιάλης στο Raspberry Pi χρησιμοποιώντας τη δεδομένη εντολή:
$ pip εγκαταστήστε το Flask
Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε τη φιάλη εισάγοντας απλώς στο πρόγραμμά μας, όπως έχουμε εισαγάγει τα ακόλουθα πακέτα φιάλης για αυτό το έργο:
από φιάλη εισαγωγής Φιάλη από φιάλη εισαγωγής Φιάλη, render_template, αίτημα
Μπορείτε να μάθετε περισσότερα σχετικά με τον προγραμματισμό χρησιμοποιώντας το Flask εδώ, επίσης να ελέγξετε τα προηγούμενα έργα μας όπου χρησιμοποιήσαμε το Flask για να στείλουμε το μήνυμα από την ιστοσελίδα στο Raspberry Pi και να στείλουμε αξία βάρους στο Raspberry Pi στο Smart Container.
Κωδικός HTML για ιστοσελίδα:
Δημιουργήσαμε μια ιστοσελίδα χρησιμοποιώντας γλώσσα HTML για την εμφάνιση συνδέσμων ελέγχου (Αριστερά, Δεξιά, Εμπρός, πίσω) για να μετακινήσουμε το Ρομπότ από το πρόγραμμα περιήγησης στο Web Χρησιμοποιήσαμε το σενάριο jQuery για να καλέσουμε τις συναρτήσεις στο Πρόγραμμα Python. Υπάρχουν πέντε λειτουργίες στον κώδικα Python για να μετακινήσετε το ρομπότ αριστερά, δεξιά, εμπρός, πίσω και να το σταματήσετε. Ο πλήρης κώδικας Python έχει δοθεί στο τέλος. Αυτές οι λειτουργίες θα εκτελεστούν κάνοντας κλικ στους συνδέσμους ελέγχου στην ιστοσελίδα και οι κινητήρες θα μετακινηθούν ανάλογα με τον σύνδεσμο στον οποίο κάνετε κλικ. Εδώ έχουμε γράψει τον κώδικα με τέτοιο τρόπο ώστε το Ρομπότ να κινείται προς συγκεκριμένη κατεύθυνση, κάνοντας κλικ και κρατώντας το σύνδεσμο, και μόλις απελευθερώσουμε το κουμπί του ποντικιού, το ρομπότ θα σταματήσει. Ακολουθεί ο κώδικας HTML για την ιστοσελίδα, συμπεριλαμβανομένου του jQuery:
Εδώ μπορείτε να δείτε ότι έχουμε ενσωματώσει τη διεύθυνση IP, στην οποία μεταδίδεται το βίντεο, στην ιστοσελίδα χρησιμοποιώντας την ετικέτα img src . Αλλάξτε τη διεύθυνση IP σύμφωνα με το Raspberry Pi, αλλά διατηρήστε τη θύρα ίδια.
Ο χρήστης πρέπει να αντιγράψει-επικολλήσει τον παραπάνω κώδικα HTML σε κάποιο πρόγραμμα επεξεργασίας κειμένου (σημειωματάριο) και να αποθηκεύσει το αρχείο με επέκταση.HTML (robot.html). Στη συνέχεια, τοποθετήστε αυτό το αρχείο HTML στο φάκελο / templates σε σχέση με τη θέση του σεναρίου python. Σημαίνει ότι πρέπει να δημιουργήσετε ένα φάκελο με όνομα templates, όπου έχετε τοποθετήσει το αρχείο Python Code για αυτό το Raspberry Surveillance Robot και, στη συνέχεια, τοποθετήστε το αρχείο robot.html σε αυτόν τον φάκελο templates. Αυτό το βήμα είναι σημαντικό, διαφορετικά το έργο μας δεν θα λειτουργήσει. Μπορείτε να ανοίξετε απευθείας το αρχείο robot.html κάνοντας διπλό κλικ πάνω του για να δείτε πώς θα φαίνονται οι σύνδεσμοι ελέγχου. Περαιτέρω ελέγξτε ολόκληρη τη διαδικασία στο Demonstration Video στο τέλος. Αφού ολοκληρώσουμε τον προγραμματισμό και όλα, μπορούμε απλώς να εκτελέσουμε τον κώδικα Python στο Raspberry Pi και να ανοίξουμε το IP_address_of_your_Pi: 5010 στο πρόγραμμα περιήγησης ιστού (όπως
Μπορείτε να ελέγξετε τη διεύθυνση IP του Raspberry Pi χρησιμοποιώντας την εντολή ifconfig :
ifconfig
Διάγραμμα κυκλώματος και ρύθμιση:
Αφού δοκιμάσουμε τη ζωντανή ροή βίντεο και τον κώδικα HTML, πρέπει να φτιάξουμε ένα ρομπότ χρησιμοποιώντας χειροποίητα ή έτοιμα ρομπότ σασί, τροχούς και παξιμάδια. Στη συνέχεια, τοποθετήστε το Power bank πάνω του για να τροφοδοτήσετε το Raspberry pi και, στη συνέχεια, τοποθετήστε το Raspberry Pi και την κάμερα web πάνω από την τράπεζα τροφοδοσίας και διορθώστε τη ρύθμιση χρησιμοποιώντας ταινία Cello ή λαστιχένιες ταινίες, συνδέστε την κάμερα USB με το Raspberry Pi
Σε αυτό το έργο IoT, δεν χρειάζεται να κάνουμε πολλές συνδέσεις, χρειάζεται μόνο να συνδέσουμε μερικά καλώδια για το Motor Driver IC L293D και το DC Motors. Οι συνδέσεις εμφανίζονται στο διάγραμμα κυκλώματος παρακάτω. Εδώ χρησιμοποιήσαμε ένα PCB γενικού σκοπού για την τοποθέτηση L293D IC για τη μείωση του χώρου, αλλά μπορείτε επίσης να χρησιμοποιήσετε μικρό Breadboard για σύνδεση κινητήρων DC με L293D.
Τρόπος λειτουργίας:
Η λειτουργία και η λειτουργία αυτού του ρομπότ παρακολούθησης είναι πολύ εύκολη. Δημιουργήστε ένα αρχείο python (επέκταση.py) και αντιγράψτε τον παρακάτω κώδικα και, στη συνέχεια, αποθηκεύστε το στο Raspberry Pi. Στη συνέχεια, τοποθετήστε το αρχείο HTML στο φάκελο προτύπων όπως εξηγείται παραπάνω. Μην ξεχάσετε να αλλάξετε τη διεύθυνση IP σε αρχείο HTML.
Στη συνέχεια, εκτελέστε τον κώδικα Python εισάγοντας την παρακάτω εντολή:
python name_of_file.py
Στη συνέχεια, ανοίξτε τη διεύθυνση IP του Raspberry Pi με τη θύρα 5010, όπως http://192.168.43.199:5010 (αντικαταστήστε ξανά τη διεύθυνση IP με τη διεύθυνσή σας). Τώρα θα δείτε την ιστοσελίδα με τέσσερις συνδέσμους ελέγχου ρομπότ και ζωντανή ροή βίντεο. Ο χρήστης μπορεί να ελέγξει το ρομπότ κάνοντας κλικ και κρατώντας τους συνδέσμους. Εάν ο χρήστης κάνει κλικ και κρατήσει τους συνδέσμους, τότε το ρομπότ θα μετακινηθεί σύμφωνα με τον σύνδεσμο που έχει κάνει κλικ και πότε ο χρήστης θα αποδεσμεύσει τον σύνδεσμο, τότε το ρομπότ θα σταματήσει αυτόματα.
Ο πλήρης κώδικας Python δίνεται παρακάτω, όπου έχουμε γράψει διάφορες λειτουργίες για τον έλεγχο του ρομπότ κάνοντας κλικ στους συνδέσμους στην ιστοσελίδα. Μπορείτε να τα καταλάβετε εύκολα ή αν είστε αρχάριος, ελέγξτε τα προηγούμενα μαθήματα Raspberry Pi. Επισκεφτείτε επίσης την ενότητα Ρομποτική για πιο ενδιαφέροντα και εύχρηστα ρομπότ.