- Απαιτούμενα υλικά
- Εγκατάσταση του Node.js στο Raspberry Pi
- Αναβοσβήνει ένα LED χρησιμοποιώντας το Node.js
- Node.js LED Blink script και Επεξήγηση
- Διάγραμμα κυκλώματος για να αναβοσβήνει ένα LED χρησιμοποιώντας το Node.js
- Raspberry Pi
Σε προηγούμενα μαθήματα Raspberry Pi, χρησιμοποιήσαμε πολλές διαφορετικές γλώσσες προγραμματισμού και λογισμικά για τον έλεγχο του Raspberry Pi συμπεριλαμβανομένων Python, ενσωματωμένου C, Flask κ.λπ. Για να επεκτείνουμε τον ορίζοντα του ισχυρού πίνακα Raspberry Pi, σήμερα θα χρησιμοποιήσουμε ένα πολύ δημοφιλές περιβάλλον βασισμένο σε JavaScript.js) για τον έλεγχο του Raspberry Pi GPIOs τοπικά, αλλά και παγκοσμίως, ορίζοντάς τον ως διακομιστή ιστού. Αρχικά, το Node.js αναπτύχθηκε για το Google Chrome, αλλά αργότερα προήλθε από την Google.
Σε αυτό το σεμινάριο, θα ελέγξουμε ένα LED, συνδεδεμένο στο Raspberry Pi, χρησιμοποιώντας δύο μεθόδους
- Πρώτα θα γράψουμε απλά έναν κώδικα JavaScript χρησιμοποιώντας το Node.js για να αναβοσβήνει το LED
- Στη δεύτερη μέθοδο, θα δημιουργήσουμε μια σελίδα HTML με δύο κουμπιά για να ενεργοποιήσετε και να σβήσετε το LED. Αυτή η ιστοσελίδα HTML θα φιλοξενείται σε βατόμουρο pi και μπορεί να ανοίξει σε οποιοδήποτε πρόγραμμα περιήγησης στο Web. Έτσι, εδώ το Raspberry Pi θα λειτουργεί ως διακομιστής ιστού
Απαιτούμενα υλικά
- Raspberry pi board με Raspbian εγκατεστημένο σε αυτό
- LED
Σε αυτό το σεμινάριο χρησιμοποιώ το External Monitor χρησιμοποιώντας καλώδιο HDMI για να συνδεθώ με το Raspberry Pi. Εάν δεν έχετε οθόνη, μπορείτε να χρησιμοποιήσετε διακομιστή SSH (Putty) ή διακομιστή VNC για σύνδεση στο Raspberry pi χρησιμοποιώντας φορητό υπολογιστή ή υπολογιστή. Εάν βρείτε οποιαδήποτε δυσκολία, ακολουθήστε τον Οδηγό μας για να κοιτάξετε με το Raspberry Pi.
Εγκατάσταση του Node.js στο Raspberry Pi
Θα εγκαταστήσουμε το Node.js στον πίνακα μας χρησιμοποιώντας τις ακόλουθες εντολές.
Βήμα 1: - Πρώτα ελέγξτε για την έκδοση βραχίονα του πίνακα βατόμουρου pi χρησιμοποιώντας αυτήν την εντολή.
άγνωστο -μ
Στην περίπτωσή μου, η έκδοση είναι 7.
Βήμα 2: - Κατεβάστε το πρόγραμμα εγκατάστασης αντιγράφοντας αυτόν τον σύνδεσμο στο τερματικό. Μην ξεχάσετε να αλλάξετε την έκδοση στον παρακάτω σύνδεσμο.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Βήμα 3: - Εξαγάγετε τα αρχεία χρησιμοποιώντας την παρακάτω εντολή
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Βήμα 4: - Τέλος, εκτελέστε αυτές τις εντολές για να προσθέσετε επίσης τα σημαντικά αρχεία στους τοπικούς καταλόγους.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Το Node.js είναι εγκατεστημένο τώρα στο Raspberry Pi. Ελέγξτε την έκδοση του κόμβου για επιβεβαίωση χρησιμοποιώντας αυτήν την εντολή.
κόμβος –μετατροπή
Πριν πάμε να δημιουργήσουμε έναν διακομιστή Node.js, πρώτα θα δούμε πώς να γράφουμε ένα σενάριο για να αναβοσβήνει ένα LED χρησιμοποιώντας το node.js (πακέτο onpm onpm).
Αναβοσβήνει ένα LED χρησιμοποιώντας το Node.js
Για τον έλεγχο του GPIO στο Raspberry Pi χρησιμοποιώντας το Node.js, θα χρησιμοποιήσουμε το onoff module.
Θα χρησιμοποιήσουμε τον διαχειριστή πακέτων npm για να εγκαταστήσουμε το onoff module χρησιμοποιώντας την παρακάτω εντολή
npm εγκατάσταση onoff
Τώρα, θα γράψουμε ένα σενάριο για να αναβοσβήνει το led. Ανοίξτε το nano editor και δώστε το όνομα στο αρχείο χρησιμοποιώντας την εντολή
nano blink_led.js
Εάν είστε αρχάριος στο Node.js και είναι πακέτα, μπορείτε να τεκμηριώσετε το npm για καλύτερη κατανόηση του σεναρίου.
Node.js LED Blink script και Επεξήγηση
Αρχικά, δηλώστε τις μεταβλητές για led, delay και GPIO. Χρησιμοποιώ το Raspberry Pi GPIO 4 για να συνδέσω το LED.
var Gpio = απαιτείται ('onoff'). var LED = νέο Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Τώρα, θα κάνουμε μια λειτουργία για να ξεκινήσουμε την αναλαμπή.
συνάρτηση blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // ορίστε την έξοδο σε 1, δηλαδή ενεργοποιήστε την ένδειξη} άλλο {LED.writeSync (0); // ορίστε την έξοδο σε 0, δηλ. απενεργοποιήστε την ένδειξη }}
Ομοίως, κάντε μια λειτουργία για να σταματήσετε να αναβοσβήνει
συνάρτηση endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Αποεξαγωγή GPIO σε δωρεάν πόρους} setTimeout (endBlink, 10000);
Ο πλήρης κωδικός Node.js για το Blinking LED δίνεται στο τέλος αυτού του σεμιναρίου. Αντιγράψτε και επικολλήστε λοιπόν τον κώδικα στο αρχείο led_blink.js , το οποίο έχουμε δημιουργήσει προηγουμένως χρησιμοποιώντας εντολή nano , αποθηκεύστε το αρχείο χρησιμοποιώντας Ctrl + x και, στη συνέχεια, πατήστε Y και πατήστε enter.
Για να εκτελέσετε το σενάριο, ανοίξτε το τερματικό και πληκτρολογήστε την παρακάτω εντολή:
κόμβος blink_led.js
Θα δείτε ότι το LED θα αναβοσβήνει για 10 δευτερόλεπτα και μετά θα σταματήσει να αναβοσβήνει. Ελέγξτε την πλήρη εργασία στο βίντεο που παρέχεται στο τέλος αυτού του σεμιναρίου.
Διάγραμμα κυκλώματος για να αναβοσβήνει ένα LED χρησιμοποιώντας το Node.js
Raspberry Pi
Τώρα, έλα στο ενδιαφέρον μέρος, εδώ θα φτιάξουμε τον δικό μας διακομιστή ιστού από τον οποίο μπορούμε να ελέγξουμε το GPIO του Raspberry pi χρησιμοποιώντας μια ιστοσελίδα.
Για αυτό, πρώτα πρέπει να φτιάξουμε μια σελίδα HTML και να γράψουμε ένα σενάριο για να εκτελέσουμε εργασία back-end, δηλαδή για να ελέγξουμε το RPi GPIO.
Βήμα 1: - Δημιουργήστε έναν κατάλογο για να αποθηκεύσετε όλα τα αρχεία σε ένα μέρος.
mkdir nodejs_server
Βήμα 2: - Μέσα στο φάκελο nodejs_server δημιουργήστε έναν ακόμη φάκελο για την αποθήκευση του αρχείου HTML.
cd nodejs_server mkdir προβολές
Βήμα 3: - Εάν θέλετε να προσθέσετε εικόνες στη σελίδα σας html, τότε θα πρέπει να κάνετε έναν άλλο φάκελο με το όνομα δημόσιο μέσα στον κύριο κατάλογο, δηλαδή στον φάκελο nodejs_server . Στον δημόσιο φάκελο, δημιουργήστε φάκελο εικόνας και αποθηκεύστε όλες τις εικόνες σε αυτόν το φάκελο.
Βήμα 4: - Τώρα, θα φτιάξουμε σελίδα HTML. Για αυτό, μεταβείτε στον κατάλογο προβολών και ανοίξτε το πρόγραμμα επεξεργασίας κειμένου nano με όνομα αρχείου index.ejs
Δεν υπάρχει τίποτα φανταχτερό στο σενάριο. Είναι απλώς ένα αρχείο HTML για να κάνετε το κουμπί On και Off.
Αντιγράψτε επικολλήστε τον παρακάτω κώδικα HTML στο πρόγραμμα επεξεργασίας κειμένου nano και αποθηκεύστε τον.
Καλώς ορίσατε στον διακομιστή Nodejs
Κατάσταση οδηγήσεων: <% = κατάσταση%>Βήμα 5: - Τώρα, πρέπει να γράψουμε κώδικα JavaScript. Χρησιμοποιούμε το node express framework για να ανταποκριθούμε σε αιτήματα http που εκτελούνται από τον χρήστη.
Μπορείτε να ακολουθήσετε τον σύνδεσμο για να μάθετε περισσότερα σχετικά με το Node Express.
Ανοίξτε το τερματικό και ανοίξτε το πρόγραμμα επεξεργασίας κειμένου nano με όνομα αρχείου index.js στο φάκελο nodejs_server και , στη συνέχεια, αντιγράψτε και επικολλήστε τον παρακάτω κώδικα java script και αυτό το αρχείο.
var express = απαιτείται ('express'); var app = express (); var path = απαιτείται ('path'); var gpio = απαιτείται ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('μηχανή προβολής', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('ευρετήριο',{κατάσταση: "Το Led είναι ενεργοποιημένο"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) ρίξτε err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Ο διακομιστής ξεκίνησε στη θύρα: 3000!') })
Βήμα 6: - Μέσα στον κατάλογο nodejs_server , πρέπει να εκτελέσουμε την ακόλουθη εντολή για να εγκαταστήσουμε βιβλιοθήκες του node.js
εγκατάσταση npm
Βήμα 7: - Τώρα, ο διακομιστής σας είναι έτοιμος να λειτουργήσει. Για να ξεκινήσετε τον τοπικό διακομιστή, εκτελέστε την ακόλουθη εντολή στον κατάλογο nodejs_server
κόμβος index.js
θα δείτε ένα μήνυμα στο τερματικό ότι ο διακομιστής σας έχει ξεκινήσει στην καθορισμένη θύρα.
Βήμα 8: - Τώρα ανοίξτε το πρόγραμμα περιήγησής σας και ανοίξτε το Raspberry Pi URL με αριθμό θύρας, δηλαδή raspberrypi: 3000
Βεβαιωθείτε ότι το βατόμουρο pi και ο φορητός υπολογιστής στους οποίους ανοίγετε το πρόγραμμα περιήγησης είναι συνδεδεμένοι με το ίδιο δίκτυο.
Θα δείτε την ακόλουθη σελίδα στο πρόγραμμα περιήγησης.
Τώρα, πατήστε το κουμπί LED On για να ανάψετε το LED και το κουμπί Off για να σβήσετε το LED.