Πίνακας περιεχομένων:
- Βήμα 1: BOM
- Βήμα 2: Προδιαγραφές κύριων εξαρτημάτων
- Βήμα 3: ΚΑΛΩΔΙΩΣΗ
- Βήμα 4: ΠΡΟΕΤΟΙΜΑΣΙΑ RASPBERRY O.S
- Βήμα 5: ΠΩΣ ΝΑ ΕΛΕΓΧΟΥΜΕ ΤΟ ΔΕΞΑΜΕΝΟ WIFI ΜΑΣ ΜΕ NODE.JS ΚΑΙ WEBSOCKET.IO
- Βήμα 6: ΠΡΟΣΘΗΚΗ ΔΥΝΑΤΟΤΗΤΑΣ STREAMING VIDEO
- Βήμα 7: ΔΕΞΑΜΕΝΙΚΟ ΠΡΟΓΡΑΜΜΑ
- Βήμα 8: ΕΚΚΙΝΗΣΗ ΕΛΕΓΧΟΥ ΣΕΡΒΕΡ Διασύνδεσης και ροής
Βίντεο: Raspberry Tank With Web Interface και Video Streaming: 8 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Θα δούμε πώς συνειδητοποίησα μια μικρή δεξαμενή WiFi, ικανή για απομακρυσμένο έλεγχο Web και ροή βίντεο.
Αυτό προορίζεται να είναι σεμινάριο που απαιτεί βασικές γνώσεις ηλεκτρονικού προγραμματισμού και λογισμικού. Για το λόγο αυτό επέλεξα ένα κιτ πλαισίου Tank (αντί να το εκτυπώσω χρησιμοποιώντας τρισδιάστατο εκτυπωτή, μπορεί να είναι μια μεταγενέστερη αναβάθμιση) και συνολικά 6 εξαρτήματα συμπεριλαμβανομένων των μπαταριών. Από την πλευρά του λογισμικού μπορείτε να ακολουθήσετε βήμα προς βήμα τη διαδικασία εγκατάστασης και τον προγραμματισμό που διατηρείται στο ελάχιστο, μια βασική γνώση των πραγμάτων του Raspberry μπορεί να βοηθήσει.
Έχω υπολογίσει 12 ώρες εργασίας από το 0 έως το έτοιμο για λειτουργία δεξαμενής. Συνολικό κόστος 70 € για όλα τα εξαρτήματα.
Βήμα 1: BOM
1 - DIY RC Robot Chassis Tank - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Διπλό κανάλι L298N DC Motor Driver Board - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Raspberry Pi Zero W Starter Kit - 26 (€)
amzn.eu/1ugAaMP
Κάρτα SD 1 - 16 GB - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Κάμερα κάμερας Raspberry Pi 5MP για Model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
Μπαταρία 1 - 9v
Μικτή σύνδεση καλωδίων Breadboard Dupont
Ποντίκι, πληκτρολόγιο, οθόνη ή τηλεόραση για ρύθμιση Raspberry (προαιρετικά, για να διευκολυνθεί η πρώτη ρύθμιση)
Βήμα 2: Προδιαγραφές κύριων εξαρτημάτων
Μοτέρ
Κινητήρας ταχυτήτων JGA25-370 DC
Αυτός ο κινητήρας διαθέτει άξονα εξόδου σχήματος D.
Προδιαγραφές
· Τάση λειτουργίας: μεταξύ 6 V και 18 V
· Ονομαστική τάση: 12 V
· Ταχύτητα ελεύθερης λειτουργίας 12 V: 399 RPM
· Ρεύμα ελεύθερης λειτουργίας στα 12 V: 50 mA
· Ρεύμα διακοπής λειτουργίας στα 12V: 1200 mA
· Ροπή στάσης στα 12V: 2,2 kg.cm
· Αναλογία ταχυτήτων: 1:21
· Μέγεθος μειωτήρα: 19 mm
· Βάρος: 84 g
Πίνακας οδηγών διπλού καναλιού L298N DC Motor Motor
Διπλός οδηγός μοτέρ H-γέφυρας, μπορεί να οδηγήσει δύο κινητήρες DC ή 4-σύρμα διφασικούς βηματικούς κινητήρες. Ενσωματωμένο TSD, για προστασία από στάση κινητήρα.
Προδιαγραφές
· Τάση τροφοδοσίας μονάδας: DC 2V-10V
· Τάση εισόδου σήματος: DC 1,8-7V
· Ενιαίο ρεύμα λειτουργίας: 1.5A
· Μέγιστο ρεύμα έως 2,5Α
· Χαμηλό ρεύμα αναμονής (λιγότερο από 0.1uA)
· Ενσωματωμένο κοινό κύκλωμα αγωγιμότητας, ο ακροδέκτης εισόδου κενός, ο κινητήρας δεν λειτουργεί
· Μέγεθος: 24,7 x 21 x 7mm
Βήμα 3: ΚΑΛΩΔΙΩΣΗ
Αυτή θα είναι η τελική καλωδίωση, αλλά περιμένετε, πριν χρειαστεί να εγκαταστήσουμε κάποια
λογισμικό και είναι καλή ιδέα να το δοκιμάσετε με απλούστερη καλωδίωση, όταν είστε έτοιμοι, επιστρέψτε εδώ.
Χρειαζόμαστε δύο διαφορετικές πηγές ενέργειας, μία για τον κινητήρα και μία για το Raspberry.
Ο οδηγός κινητήρα Dual Channel L298N DC Motor Driver Board (μέγιστη τάση εισόδου DC 2V-10V) τροφοδοτείται με τη χρήση της μπαταρίας 9V και το Raspberry Pi χρησιμοποιεί τον πρότυπο συσσωρευτή USB 5V.
Ο πείρος GND του οδηγού κινητήρα θα συνδεθεί με τη μπαταρία μείον και το Raspberry Pi (GND). Οι ακίδες GPIO του Raspberry Pi συνδέονται με τον οδηγό του κινητήρα ως πίνακα.
Βήμα 4: ΠΡΟΕΤΟΙΜΑΣΙΑ RASPBERRY O. S
Αυτή είναι μια τυπική εγκατάσταση για το λειτουργικό σύστημα Raspbian, μπορείτε να βρείτε
πολλά λεπτομερή μαθήματα αναζήτησης στον ιστό, βασικά τα βήματα είναι:
1. Κατεβάστε το iso RASPBIAN STRETCH WESKTOP από τη διεύθυνση
2. Διαμορφώστε μια κάρτα SD 16 GB, έχω χρησιμοποιήσει τη μορφή SD
3. Εγγραφή αρχείου. IMG, έχω χρησιμοποιήσει το Win32DiskImager
Τώρα το βατόμουρό σας είναι έτοιμο για εκκίνηση, συνδέστε το σε μια πηγή τροφοδοσίας USB (5V, 2A) και προετοιμαστείτε για την πρώτη εγκατάσταση εκκίνησης. Μπορείτε να το κάνετε με δύο τρόπους, χρησιμοποιώντας εξωτερικές συσκευές όπως ποντίκι, πληκτρολόγιο και οθόνη ή χρησιμοποιώντας τον υπολογιστή σας και μια απομακρυσμένη σύνδεση με το Raspberry. Υπάρχουν πολλά μαθήματα για αυτό, ένα είναι:
Βήμα 5: ΠΩΣ ΝΑ ΕΛΕΓΧΟΥΜΕ ΤΟ ΔΕΞΑΜΕΝΟ WIFI ΜΑΣ ΜΕ NODE. JS ΚΑΙ WEBSOCKET. IO
Τώρα έχουμε μια νέα εγκατάσταση του Raspberry micro PC μας έτοιμο να εκτελέσει τη δουλειά μας, οπότε … τι χρησιμοποιούμε για την έκδοση εντολών στη δεξαμενή;
Η Python είναι μια πολύ εύχρηστη γλώσσα που χρησιμοποιείται συνήθως για την εκτέλεση του έργου Rapsberry sand μπορεί να χρησιμοποιηθεί εύκολα και για αλληλεπίδραση με καρφίτσες εισόδου και εξόδου Rapsberry (GPIO)
Αλλά, ο στόχος μου ήταν να συνδέσω το wi-fi του tank μου από οποιαδήποτε συσκευή (υπολογιστή, κινητό τηλέφωνο, tablet…) χρησιμοποιώντας ένα κοινό πρόγραμμα περιήγησης ιστού και επίσης να μεταδώσω βίντεο από αυτό. Έτσι, ξεχάστε την Python προς το παρόν και αφήστε να προχωρήσουμε στο NODE. JS και το SOCKET. IO.
NODE.js
Το Node.js (https://github.com/nodejs/node/wiki) είναι μια εργασία πλαισίου διακομιστή ανοιχτού κώδικα που βασίζεται στη γλώσσα js. Δεδομένου ότι χρησιμοποιώ το Raspberry Pi Zero (ARMv6 CPU), δεν μπορούμε να χρησιμοποιήσουμε τη διαδικασία αυτόματης εγκατάστασης (προορίζεται για επεξεργαστή ARMv7) και πρέπει να το κάνουμε χειροκίνητα:
Κατεβάστε το Nodejs τοπικά, (έχω χρησιμοποιήσει την έκδοση 7.7.2 για ARMv6, ελέγξτε άλλες εκδόσεις εδώ
pi@raspberry: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Μόλις τελειώσετε, εξαγάγετε το συμπιεσμένο αρχείο:
pi@raspberry: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Αντιγράψτε και εγκαταστήστε τα αρχεία στο /user /local
pi@raspberry: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Προσθέστε τη θέση στην οποία εγκαθιστούμε τα nodejs στη διαδρομή, επεξεργαστείτε το αρχείο ".profile":
pi@raspberry: ~ $ nano ~/.προφίλ
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου, αποθηκεύστε και βγείτε
PATH = $ PATH:/usr/local/bin
Καταργήστε το ληφθέν αρχείο:.
pi@raspberry: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Πληκτρολογήστε τις ακόλουθες εντολές για να ελέγξετε την εγκατάσταση του nodejs:
pi@raspberry: n $ node -v
pi@raspberry: ~ $ npm -v
Θα πρέπει να διαβάσετε v7.7.2 και v4.1.2 ως απάντηση.
Εάν όλα πήγαν καλά, δημιουργήστε έναν νέο φάκελο για να φιλοξενήσετε τα αρχεία nodejs:
pi@raspberry: m $ mkdir nodehome
Μετακίνηση μέσα σε νέο φάκελο:
pi@raspberry: ode $ cd nodehome
Εγκαταστήστε πρόσθετη ενότητα που απαιτείται για τη διαχείριση του GPIO με τον πιο βασικό τρόπο, ON και OFF:
pi@raspberry: n $ npm εγκατάσταση onoff
Τώρα ήρθε η ώρα να δοκιμάσουμε το πρώτο μας έργο "Blink.js", το αποτέλεσμα θα είναι … ένα LED που αναβοσβήνει
pi@raspberry: n $ nano blink.js
Επικολλήστε τον ακόλουθο κώδικα, αποθηκεύστε και βγείτε:
var Gpio = απαιτούν ("onoff"). Gpio; // περιλαμβάνει onoff
var LED = νέο Gpio (3, 'out'); // χρησιμοποιήστε το GPIO 3
var blinkInterval = setInterval (αναβοσβήνειLED, 250);
// αναβοσβήνει LED κάθε 250ms
λειτουργία blinkLED () {// λειτουργία για να αρχίσει να αναβοσβήνει
αν
(LED.readSync () === 0) {// ελέγξτε την κατάσταση καρφίτσας, εάν η κατάσταση είναι 0 (ή απενεργοποιημένη)
LED.writeSync (1);
// ορίστε την κατάσταση καρφίτσας σε 1 (ενεργοποιήστε το LED)
} αλλο {
LED.writeSync (0);
// ορίστε την κατάσταση καρφίτσας στο 0 (απενεργοποιήστε το LED)
}
}
συνάρτηση endBlink () {// λειτουργία για να σταματήσει να αναβοσβήνει
clearInterval (blinkInterval)? // Σταματήστε τα διαστήματα αναβοσβήματος
LED.writeSync (0); // Απενεργοποιήστε το LED
LED.unexport (); // Κατάργηση εξαγωγής GPIO σε δωρεάν πόρους
}
setTimeout (endBlink, 5000); // σταματήστε να αναβοσβήνετε μετά από 5 δευτερόλεπτα
Συνδέστε ένα LED, μια αντίσταση (200ohms) όπως φαίνεται στο σχήμα και εκτελέστε το έργο:
pi@raspberry: n $ node blink.js
Ο κόμβος είναι έτοιμος.
SOCKET. IO
Το WebSocket είναι ένα πρωτόκολλο επικοινωνίας υπολογιστή, βασισμένο στη σύνδεση TCP, παρέχει στον προγραμματιστή τη δημιουργία διακομιστή και πελάτη. Ο πελάτης συνδέεται με τον διακομιστή και εκπέμπει και λαμβάνει μηνύματα από και προς τον διακομιστή. Η εφαρμογή WebSocket για το Node.js ονομάζεται Socket.io (https://socket.io/).
Εγκατάσταση socket.io:
pi@raspberry: ~ $ npm install socket.io --save
Μετακινηθείτε μέσα στο nodejs home, που δημιουργήθηκε προηγουμένως:
pi@raspberry: ode $ cd nodehome
Και δημιουργήστε έναν νέο φάκελο "δημόσιος":
pi@raspberry: m $ mkdir δημόσια
Δημιουργήστε νέο δείγμα διακομιστή ιστού, ονομάστε τον "webserver.js"
pi@raspberry: ~ $ nano webserver.js
Επικολλήστε τον ακόλουθο κώδικα, αποθηκεύστε και βγείτε:
var http = απαιτεί ('http'). createServer (χειριστής); // απαιτείται διακομιστής http και δημιουργία διακομιστή με χειριστή λειτουργιών ()
var fs = απαιτούν ('fs'); // απαιτούν μονάδα συστήματος αρχείων
http.listen (8080); // ακούστε τη θύρα 8080
χειριστής συναρτήσεων (req, res) {// δημιουργία διακομιστή
fs.readFile (_ dirname + '/public/index.html', λειτουργία (λάθος, δεδομένα) {// ανάγνωση
αρχείο index.html σε δημόσιο φάκελο
αν (λάθος) {
res.writeHead (404, {'Content-Type': 'text/html'}); // εμφάνιση 404 σε σφάλμα
επιστροφή res.end ( 404 Όχι
Βρέθηκαν );
}
res.writeHead (200, {'Content-Type': 'text/html'}); // εγγραφή HTML
res.write (δεδομένα); // εγγραφή δεδομένων
από index.html
επιστροφή res.end ();
});
}
Αυτός ο διακομιστής ιστού θα ακούσει τη θύρα Raspberry 8080 και θα παρέχει αρχεία σε οποιοδήποτε πρόγραμμα -πελάτη ιστού που το συνδέει. Τώρα πρέπει να δημιουργήσουμε κάτι για να φιλοξενήσουμε και να προσφέρουμε στους πελάτες μας: Μετακινηθείτε μέσα στον φάκελο "δημόσιος": pi@raspberry: ~ $ cd public
Δημιουργήστε νέο αρχείο html "index.html":
pi@raspberry: ~ $ nano index.html
Επικολλήστε τον κωδικό από το συνημμένο "HelloWorld.txt", αποθηκεύστε και βγείτε.
Μετακίνηση στο φάκελο nodejs "nodehome":
pi@raspberry: ode $ cd nodehome
Εκκίνηση διακομιστή ιστού
pi@raspberry: er $ node webserver.js
Ανοίξτε τον ιστότοπο σε ένα πρόγραμμα περιήγησης χρησιμοποιώντας https:// Raspberry_IP: 8080/(αντικαταστήστε το Raspberry_IP με την IP σας)
Βήμα 6: ΠΡΟΣΘΗΚΗ ΔΥΝΑΤΟΤΗΤΑΣ STREAMING VIDEO
Υπάρχουν διαφορετικοί τρόποι υλοποίησης ροής βίντεο σε ένα Raspberry, ο ευκολότερος
με τον τρόπο που έχω διαπιστώσει μέχρι τώρα, ότι ως εξαιρετική απόδοση και μπορεί να ενσωματωθεί σε μια διεπαφή ιστού βασίζεται στο έργο του Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Ευχαριστώ Miguel! Από το ιστολόγιό του αυτά είναι τα βήματα:
Εγκαταστήστε τα στοιχεία libjpeg8 και cmake:
pi@raspberry: su $ sudo apt-get install libjpeg8
pi@raspberry: su $ sudo apt-get install libjpeg8-dev
pi@raspberry: su $ sudo apt-get install cmake
Λήψη mjpg-streamer με πρόσθετο raspicam:
pi@raspberry: ~ $ git κλώνος
github.com/jacksonliam/mjpg-streamer.git/mjpg-streamer
Αλλαγή καταλόγου:
pi@raspberry: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Συντάσσω:
pi@raspberry: ~ $ καθαρίστε τα όλα
Αντικατάσταση παλιού mjpg-streamer:
pi@raspberry: su $ sudo rm -rf /opt /-j.webp
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental
/opt/mjpg-streamer
pi@raspberry: ~ $ sudo rm -rf ~/mjpg -streamer
Δημιουργήστε ένα νέο αρχείο "start_stream.sh", αντιγράψτε και επικολλήστε από το συνημμένο αρχείο "start_stream.txt".
Κάντε το εκτελέσιμο (δημιουργήστε σενάρια κελύφους):
pi@raspberry: ~ $ chmod +x start_stream.sh
Έναρξη διακομιστή ροής:
pi@raspberry: ~ $./start_stream.sh
Ανοίξτε τον ιστότοπο σε ένα πρόγραμμα περιήγησης χρησιμοποιώντας https:// Raspberry_IP: 9000 (αντικαταστήστε το Raspberry_IP με την IP σας)
Βήμα 7: ΔΕΞΑΜΕΝΙΚΟ ΠΡΟΓΡΑΜΜΑ
Όλα είναι έτοιμα, τώρα πρέπει να δημιουργήσουμε την ιστοσελίδα μας για να ελέγξουμε τη δεξαμενή (index.html) και τον διακομιστή ιστού μας για να ακούσουμε τις εντολές μας (webserver.js). Έτσι, απλώς αντικαταστήστε τα αρχεία που έχετε δει μέχρι τώρα (μόνο παραδείγματα για τον έλεγχο του συστήματος) με τα συνημμένα webserver.txt και index.txt.
Βήμα 8: ΕΚΚΙΝΗΣΗ ΕΛΕΓΧΟΥ ΣΕΡΒΕΡ Διασύνδεσης και ροής
Για να ξεκινήσετε τις υπηρεσίες, ανοίξτε δύο παράθυρα τερματικού και εκτελέστε αυτές τις εντολές:
nodehome/webserver.js
./nodehome/start_stream.sh
Ανοίξτε τον ιστότοπο σε ένα πρόγραμμα περιήγησης χρησιμοποιώντας https:// Raspberry_IP: 8080 (αντικαταστήστε το Raspberry_IP με την IP σας)
Συνιστάται:
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: 11 βήματα
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: Είχατε ποτέ πολλά δεδομένα με τα οποία εργάζεστε και σκεφτήκατε τον εαυτό σας … " πώς μπορώ να κάνω όλα αυτά τα δεδομένα φαίνονται καλύτερα και είναι πιο εύκολα κατανοητά; " Αν ναι, τότε η απάντησή σας μπορεί να είναι ένας πίνακας στο Microsoft Office Word 2007
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Connecting Processing and Arduino and Make 7 Segment and Servo GUI Controller: Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών σε σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη και δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor bu
Raspberry Pi Web Stream Kit - Μέρος 2 (Pi Video Streaming): 6 βήματα
Raspberry Pi Web Stream Kit - Μέρος 2 (Pi Video Streaming): Εντάξει, δεν πίστευα ότι αυτό χρειαζόταν φωτογραφίες, αλλά στον ιστότοπο αρέσουν οι φωτογραφίες. Αυτές είναι ως επί το πλείστον μια σειρά εντολών και βημάτων για εσάς. Υπάρχουν διάφοροι άλλοι ιστότοποι που μπορούν να αντιμετωπίσουν οποιεσδήποτε ιδιαιτερότητες. Αυτό λειτούργησε για μένα. Αυτό συνδυάζει άλλα
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Ένδειξη θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: 13 βήματα (με εικόνες)
Εμφάνιση θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: Εισαγωγή: Πρόκειται για ένα έργο που χρησιμοποιεί έναν πίνακα Arduino, έναν αισθητήρα (DHT11), έναν υπολογιστή Windows και ένα πρόγραμμα επεξεργασίας (δωρεάν λήψη) για την εμφάνιση δεδομένων θερμοκρασίας, υγρασίας σε ψηφιακή και φόρμα γραφήματος, εμφάνιση ώρας και ημερομηνίας και εκτέλεση χρόνου αντίστροφης μέτρησης