- Τι είναι το Node.js;
- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος
- Ρύθμιση του Node.js Framework
- Εγκατάσταση βιβλιοθήκης Johnny-Five
- Αναβοσβήνει LED με Arduino και Node.js
- Έλεγχος φωτεινότητας LED χρησιμοποιώντας το Arduino και το Node.js Webserver
Έχουμε δει πολλά παραδείγματα αναβοσβήνει ένα LED χρησιμοποιώντας διαφορετικούς μικροελεγκτές και διαφορετικές γλώσσες προγραμματισμού. Σήμερα, θα χρησιμοποιήσουμε ένα πολύ δημοφιλές πλαίσιο JavaScript Node.js για να ελέγξουμε το LED που είναι συνδεδεμένο στο Arduino Uno. Θα χρησιμοποιήσουμε επίσης το Node.js για τον έλεγχο της φωτεινότητας των LED από μια ιστοσελίδα χρησιμοποιώντας το Arduino. Με λίγες τροποποιήσεις και χρησιμοποιώντας το ESP8266, αυτό μπορεί να μετατραπεί σε ένα έργο IoT όπου το LED μπορεί να ελεγχθεί από οπουδήποτε.
Τι είναι το Node.js;
Το Node.js είναι ένα ευρέως χρησιμοποιούμενο πλαίσιο βασισμένο σε JavaScript, το οποίο βασίζεται στη μηχανή JavaScript V8 του Google Chrome και εφαρμόζεται στην ανάπτυξη εφαρμογών Ιστού εντατικής εισόδου / εξόδου, όπως εφαρμογές μιας σελίδας, ιστότοποι ροής βίντεο κ.λπ.
Έχουμε κάνει ένα ενημερωτικό σεμινάριο στο παρελθόν για να ξεκινήσετε με το Node.js και το Raspberry Pi για τον έλεγχο ενός LED. Σε αυτό το σεμινάριο, θα ακολουθήσουμε την παρόμοια προσέγγιση, δηλαδή το LED θα ελέγχεται χρησιμοποιώντας δύο μεθόδους όπως:
- Το απλό LED αναβοσβήνει γράφοντας έναν κώδικα JavaScript στο πλαίσιο Node.js.
- Έλεγχος φωτεινότητας LED Χρησιμοποιώντας το πλαίσιο Node.js και μια διεπαφή ιστού από οποιοδήποτε πρόγραμμα περιήγησης: Το Arduino UNO θα λειτουργεί ως διακομιστής ιστού και η ιστοσελίδα HTML θα φιλοξενείται σε υπολογιστή ή φορητό υπολογιστή.
Απαιτούμενα στοιχεία
Σκεύη, εξαρτήματα:
- Διοικητικό Συμβούλιο Arduino UNO
- Οδηγημένος
- Αντίσταση
Λογισμικό:
- Arduino IDE: Για μεταφόρτωση σκίτσου στο Arduino UNO Board.
- Firmata: Είναι ένα πρωτόκολλο επικοινωνίας με διαφορετικούς μικροελεγκτές από λογισμικό σε υπολογιστή, smartphone κ.λπ. Το υλικολογισμικό Firmata μπορεί να φορτωθεί σε οποιαδήποτε πλακέτα μικροελεγκτή (όπως το Arduino, Teensy) και μπορεί να μιλήσει σε οποιονδήποτε φορητό υπολογιστή, υπολογιστή ή smartphone. Η βιβλιοθήκη Firmata διαθέτει το Arduino IDE, οπότε δεν χρειάζεται να κάνετε λήψη από οπουδήποτε. Έχουμε κάνει ένα σεμινάριο για τον έλεγχο του Arduino με το Raspberry Pi χρησιμοποιώντας το pyFirmata.
- Johnny-Five: Το Johnny-Five είναι η πλατφόρμα Robotics με βάση το JavaScript και η πλατφόρμα IoT που χρησιμοποιείται για τη σύνταξη κωδικών σε JavaScript και Χρησιμοποιείται για τη δημιουργία γέφυρας μεταξύ του Arduino Boards και του υπολογιστή. Το Johnny-Five έχει δοκιμαστεί με μια ποικιλία από συμβατές με Arduino Πίνακες, όπως Arduino UNO, NANO, Promini κ.λπ. Ο οδηγός εγκατάστασης θα εξηγηθεί αργότερα σε αυτό το σεμινάριο.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος είναι πολύ βασικό, απλώς πρέπει να συνδέσουμε ένα LED με το Arduino.Ρύθμιση του Node.js Framework
Πριν ξεκινήσετε την κωδικοποίηση και την ανάπτυξη, πρέπει να κατεβάσετε και να ρυθμίσετε το Node.js. Για λήψη του περιβάλλοντος Node.js απλώς ακολουθήστε απλά βήματα.
Βήμα 1: - Κατεβάστε το αρχείο.exe του Node.js από τον επίσημο ιστότοπό του.
Βήμα 2: - Εκτελέστε το.exe και ακολουθήστε τις οδηγίες στο πρόγραμμα εγκατάστασης.
Βήμα 3: - Επανεκκινήστε τον υπολογιστή σας όπως συνιστάται στο έγγραφο Node.js και επίσης να χρησιμοποιήσετε όλες τις δυνατότητες του Node.js
Βήμα 4: - Για να ελέγξετε εάν ο κόμβος έχει εγκατασταθεί, ανοίξτε τη Γραμμή εντολών και πληκτρολογήστε Node –v
Βήμα 5: - Θα εμφανιστεί η έκδοση Node.js που δείχνει ότι το Node.js είναι εγκατεστημένο.
Εγκατάσταση βιβλιοθήκης Johnny-Five
Τώρα μετά τη λήψη του Node.js, δημιουργήστε έναν νέο φάκελο με το όνομα "LED_Control" στα Έγγραφα για να διατηρήσετε όλα τα αρχεία έργου σε ένα μέρος. Κάθε αρχείο έργου θα διατηρείται στο φάκελο " LED_Control ". Τώρα κατεβάστε τη βιβλιοθήκη Johnny-Five στο φάκελο " LED_Control ". Για λήψη, ακολουθήστε τα παρακάτω βήματα:
Βήμα 1: - Ανοίξτε τη γραμμή εντολών
Βήμα 2: - Μεταβείτε στο φάκελο " LED_Control " ακολουθώντας την εντολή " cd ".
Βήμα 3: - Εκτελέστε την εντολή " npm install johnny-five"
Βήμα 4: - Αυτό θα εγκαταστήσει όλες τις εξαρτήσεις του Johnny-Five.
Βήμα 5: - Εγκαταστήστε επίσης τις απαραίτητες βιβλιοθήκες που χρησιμοποιούνται σε αυτό το σεμινάριο για τον έλεγχο της φωτεινότητας των LED. Υπάρχουν τρεις βιβλιοθήκες που χρησιμοποιούνται εδώ:
- express: Περιτύλιγμα διακομιστή
- socket.i o: Βιβλιοθήκη WebSockets
- serialpor t: Περιτύλιγμα σειριακής θύρας
Βήμα 5: - Εκτελέστε τις παρακάτω εντολές μία προς μία για να εγκαταστήσετε αυτές τις τρεις βιβλιοθήκες.
npm install express npm install socket.io npm install serialport
Όπως προαναφέρθηκε, το έργο χωρίζεται σε δύο μέρη:
- Πρώτον, το Arduino που αναβοσβήνει LED με το Node.js
- Δεύτερον, Έλεγχος φωτεινότητας LED από διεπαφή ιστού χρησιμοποιώντας Arduino και Node.js.
Αναβοσβήνει LED με Arduino και Node.js
Για να αναβοσβήνει η λυχνία LED, το Arduino πρέπει να ρυθμιστεί για επικοινωνία με τον υπολογιστή.
Ρύθμιση του Arduino UNO για LED που αναβοσβήνει:
Προκειμένου το Arduino UNO να αποδεχτεί την εντολή από το φορητό υπολογιστή στο LED ελέγχου, το υλικολογισμικό Firmata πρέπει να φορτωθεί στο Arduino UNO. Για να φορτώσετε το Firmata Firmware, απλώς ακολουθήστε αυτά τα απλά βήματα:
- Συνδέστε το Arduino UNO χρησιμοποιώντας καλώδιο USB
- Ανοίξτε το Arduino IDE και επιλέξτε Arduino UNO board (Εάν χρησιμοποιείτε άλλη πλακέτα, επιλέξτε αντίστοιχο) από το Tools.
- Επιλέξτε την αντίστοιχη θύρα COM του συνδεδεμένου Arduino UNO
- Τώρα βρείτε το Firmata Sketch χρησιμοποιώντας το Μενού -> Αρχείο -> Παραδείγματα -> Firmata -> StandardFirmata.
- Ανεβάστε το σκίτσο "StandardFirmata" μεταβαίνοντας στο Αρχείο -> Μεταφόρτωση.
Αυτό θα φορτώσει το Firmata Sketch στο Arduino UNO και τώρα το Arduino UNO είναι έτοιμο να δεχτεί οποιαδήποτε εντολή από τον υπολογιστή.
Γράφοντας το πρόγραμμα Node.js για LED που αναβοσβήνει:
Για να γράψετε ένα πρόγραμμα Node.js ανοίξτε οποιονδήποτε επεξεργαστή κειμένου (Σημειωματάριο, Σημειωματάριο ++ κ.λπ.) και επικολλήστε τον κώδικα «blink_led» που επισυνάπτεται στο τέλος αυτού του σεμιναρίου και αποθηκεύστε τον με μια επέκταση «.js» δηλ. (Blink_led.js) στο φάκελο "LED_Control" που δημιουργήθηκε προηγουμένως. Θα συζητήσουμε σημαντικά βήματα στο αρχείο κώδικα blink_led.js.
Αρχικά ορίστε το Pin του μικροελεγκτή όπου είναι συνδεδεμένο το led. Σε αυτό το παράδειγμα, το LED είναι συνδεδεμένο στο Pin 5 του Arduino UNO. Το «var» στο Node.js αντιπροσωπεύει μεταβλητή δήλωση.
var led_pin = 5;
Η ενότητα johnny-πέντε πρέπει να συμπεριληφθεί και η πλακέτα πρέπει να επιλεγεί. Οι ενότητες στο Node.js είναι βιβλιοθήκες. Η συνάρτηση « απαιτείται () » θα έχει πρόσβαση στη μονάδα.
var johnny_five = απαιτείται ("johnny-πέντε"); var arduino_board = νέο johnny_five.Board ();
Η δήλωση console.log είναι παρόμοια με τη δήλωση εκτύπωσης και θα εκτυπώσει μήνυμα. Και ο πείρος LED έχει ρυθμιστεί σε λειτουργία εξόδου και η καθορισμένη καθυστέρηση δίνεται στο LED που αναβοσβήνει.
console.log ("Το LED έχει αρχίσει να αναβοσβήνει!"); var led = νέο johnny_five.Led (led_pin); led.blink (100);
Τώρα για να εκτελέσετε το πρόγραμμα ακολουθήστε τα παρακάτω βήματα:
- Ανοίξτε τη γραμμή εντολών
- Εντοπίστε το φάκελο "LED_Control" ακολουθώντας την εντολή "cd"
- Εκτελέστε την εντολή 'Node led_blink.js'. Εάν εκτελεστεί επιτυχώς, θα δείξει "Το LED έχει αρχίσει να αναβοσβήνει!" όπως φαίνεται στην παρακάτω εικόνα .
- Το led θα αρχίσει να αναβοσβήνει στο Arduino UNO Pin 5.
- Και αυτό ολοκληρώνει το πρώτο μέρος του σεμιναρίου μας, δηλαδή το LED που αναβοσβήνει με το Node.js
Έλεγχος φωτεινότητας LED χρησιμοποιώντας το Arduino και το Node.js Webserver
Παρόμοια με την αναλαμπή ενός LED με το Node.js, αυτή η ενότητα θα έχει επίσης ορισμένα μέρη, π.χ. Ρύθμιση του Arduino UNO, Ρύθμιση διεπαφής Ιστού και Σύνταξη προγράμματος Node.js.
Ρύθμιση του Arduino UNO για έλεγχο της φωτεινότητας των LED:
Για να ρυθμίσετε το Arduino UNO, απλώς ανεβάστε το σκίτσο " arduino_control.ino " στον πίνακα Arduino UNO και αυτό είναι. Αυτό θα δημιουργήσει το Arduino Board. Μπορείτε να κατεβάσετε τον πλήρη κώδικα με αρχεία HTML από εδώ. Ο κωδικός “ arduino_control.ino” ακολουθεί σημαντικά βήματα.
Αρχικά ο ρυθμός baud ορίζεται στα 9600.
Serial.begin (9600);
Η σειριακή θύρα αναζητά πάντα εισερχόμενα byte και το byte γράφεται στο Pin 5 που είναι PWM Pin.
ενώ (! Serial.available ()); analogWrite (5, Serial.read ());
Αυτό είναι. Αυτό θα ρυθμίσει το Arduino να ασφαλίζει το byte σε PWM pin και θα αλλάξει τη φωτεινότητα των LED.
Ρύθμιση διεπαφής Ιστού:
Για τον έλεγχο της φωτεινότητας του led χρησιμοποιώντας διεπαφή ιστού, γράφεται ένα μικρό κομμάτι κώδικα HTML για να υπάρχει διεπαφή στο πρόγραμμα περιήγησης. Για να έχετε διεπαφή ακολουθήστε τα παρακάτω απλά βήματα:
- Δημιουργήστε ένα νέο φάκελο με το όνομα "δημόσιο" μέσα στο φάκελο "LED_Control" που δημιουργήθηκε προηγουμένως.
- Τώρα κατεβάστε τα αρχεία "index.html" και "style.css" και μετακινήστε και τα δύο αρχεία στο φάκελο "δημόσιο" που δημιουργήθηκε στο πρώτο βήμα παραπάνω. Μπορείτε να κατεβάσετε αρχεία από εδώ.
Αυτό θα δημιουργήσει ένα ρυθμιστικό στην ιστοσελίδα για τον έλεγχο της φωτεινότητας των LED χρησιμοποιώντας Node.js και Arduino.
Ο έλεγχος ενός LED από την ιστοσελίδα είναι ενδιαφέρον να μάθει και μπορεί να γίνει με άλλους μικροελεγκτές, δημιουργώντας έναν διακομιστή ιστού και φιλοξενώντας την ιστοσελίδα στον διακομιστή ιστού. Δείτε όλα τα έργα που σχετίζονται με τον διακομιστή ιστού εδώ.
Γράφοντας το πρόγραμμα Node.js για τον έλεγχο της φωτεινότητας των LED:
Το επόμενο βήμα θα ήταν να γράψετε το σκίτσο "brightness_control.js" χρησιμοποιώντας το Node.js και να εκτελέσετε τον κώδικα. Η εκτέλεση του κώδικα θα είναι λίγο παρόμοια με το LED που αναβοσβήνει με το Node.js.
Για να γράψετε ένα πρόγραμμα Node.js ανοίξετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου (Notepad, το Notepad ++, κλπ) και επικόλληση του «brightness_control» κώδικα που επισυνάπτεται στο τέλος του αυτό το σεμινάριο και να το αποθηκεύσετε με την επέκταση των ».js' δηλαδή (brightness_control.js) στο φάκελο "LED_Control" που δημιουργήθηκε προηγουμένως. Μπορείτε επίσης να κατεβάσετε τον κωδικό από εδώ.
Παρόμοια με το πρόγραμμα Blink Led Node.js, αυτή η ενότητα θα χρησιμοποιεί επίσης λειτουργικές μονάδες (βιβλιοθήκη). Συμπεριλάβετε τη μονάδα «express», «http» και «σειριακή θύρα».
var express = απαιτείται ('express'); app = express (); διακομιστής = απαιτείται ('http'). createServer (app); io = απαιτείται ('socket.io'). listen (διακομιστής); var SerialPort = απαιτείται ("serialport") //. SerialPort
Τώρα ρυθμίστε τη θύρα COM και το baudrate. Σημειώστε ότι στα παράθυρα, θα είναι πάντα COM με επέκταση του αριθμού (COM6, COM4, COM24 κ.λπ.), ορίστε παρακάτω όπως απαιτείται μετά το '/'. Ορίστε επίσης το buadrate.
var serialPort = νέο SerialPort ("/ COM4", {baudRate: 9600});
Ξεκινήστε να ακούτε τον διακομιστή στη θύρα 8080.
server.listen (8080);
Ρυθμίστε αρχικά τη φωτεινότητα στο 0. Στη συνέχεια, συνδέστε τα δεδομένα φωτεινότητας στο IO με την υποδοχή υποδοχής, η οποία είναι μια μονάδα websocket. Τα δεδομένα θα ληφθούν από το Web Interface χρησιμοποιώντας πρωτόκολλο υποδοχής.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (φωτεινότητα, 0)? serialPort.write (BUF)?
Τώρα εκπέμψτε την τιμή φωτεινότητας LED από πρίζα σε ακίδα LED
io.sockets.emit ('led', {value: brightness}); }); socket.emit ('led', {value: brightness}); });
Τώρα απλώς για εντοπισμό σφαλμάτων, προσθέστε μια δήλωση εκτύπωσης στο τέλος. Το Console.log είναι μια έντυπη δήλωση στο Node.js.
console.log ("Ξεκίνησε ο Διακομιστής Ιστού μεταβείτε στο 'http: // localhost: 8080' στο Πρόγραμμα περιήγησής σας.");
Τώρα για να εκτελέσετε το πρόγραμμα ακολουθώντας τα παρακάτω βήματα:
- Ανοίξτε τη γραμμή εντολών
- Εντοπίστε το φάκελο "LED_Control" ακολουθώντας την εντολή "cd"
- Εκτελέστε την εντολή 'Node brightness_control.js'. Εάν εκτελεστεί με επιτυχία, θα εμφανιστεί η ένδειξη "Ο διακομιστής Web ξεκίνησε μεταβείτε στο" http: // localhost: 8080 "στο πρόγραμμα περιήγησής σας." ακριβώς κάτω από την εντολή .
- Τώρα μεταβείτε στο πρόγραμμα περιήγησής σας και πληκτρολογήστε "localhost: 8080" στο url.
- Για να αλλάξετε τη φωτεινότητα, απλώς μετακινήστε το ρυθμιστικό από τις τιμές 0-255.
Ο πλήρης κωδικός και το βίντεο εργασίας και των δύο τμημάτων επισυνάπτονται παρακάτω. Επίσης, εάν έχετε οποιαδήποτε αμφιβολία ή πρόταση, μπορείτε να επικοινωνήσετε μαζί μας μέσω φόρουμ ή σχολίου παρακάτω. Μπορείτε να κατεβάσετε όλα τα αρχεία κώδικα από εδώ.