Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Κατανοήστε το σύστημα
- Βήμα 2: Γράψιμο του WebSocketServer
- Βήμα 3: Δημιουργήστε ένα πρωτόκολλο σειριακών εντολών
Βίντεο: Αναψε με! a Realtime Cross-platformed LED Strip Control: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Αναψε με! είναι ένα σύστημα που εφηύρα για τον έλεγχο ενός RGB LED-Strip σε πραγματικό χρόνο, διατηρώντας παράλληλα το κόστος χαμηλό και την απόδοση υψηλή.
Ο διακομιστής είναι γραμμένος στο Node.js και ως εκ τούτου διασταυρώσιμος.
Στο παράδειγμά μου, χρησιμοποιώ ένα Raspberry Pi 3B για μακροχρόνια χρήση, αλλά τον υπολογιστή με Windows για λόγους επίδειξης και εντοπισμού σφαλμάτων.
Η ταινία 4 πείρων ελέγχεται από έναν πίνακα τύπου Arduino Nano, ο οποίος εκτελεί σειριακές εντολές για την αποστολή σημάτων PWM σε τρία τρανζίστορ που αλλάζουν το +12VDC στον αντίστοιχο χρωματικό πείρο της ταινίας.
Το LightMeUp! Το σύστημα ελέγχει επίσης τη θερμοκρασία του, όταν είναι πάνω από 60 ° C (140 ° F) ενεργοποιεί δύο ανεμιστήρες υπολογιστών 12VDC ενσωματωμένους στο περίβλημα, προκειμένου να κρυώσει για να βελτιώσει τη διάρκεια ζωής του κυκλώματος.
Ένα άλλο χαρακτηριστικό του LightMeUp! είναι να φωτίσετε ένα μπουκάλι Bombay-Sapphire Gin, αλλά αυτό δεν είναι το επίκεντρο αυτού του Instructable.
Απολαύστε την ανάγνωση:)
Προμήθειες
- Arduino Nano (ή οποιοσδήποτε άλλος μικροελεγκτής ATmega328 / υψηλότερης βάσης)
- Raspberry Pi 3 Model B με εγκατεστημένο το Node.js (ή οποιονδήποτε άλλο υπολογιστή)
- 12V RGB 4-pin ταινία LED
- Τροφοδοσία 12V 3A
- Καλώδια βραχυκυκλωτήρων (αρσενικό-αρσενικό εάν χρησιμοποιείτε ένα breadboard, φυσικά)
- Breadboard (προαιρετικό)
- 2 ανεμιστήρες υπολογιστή 12V DC (προαιρετικά)
- 3x TIP120 Darlington Transistor με ψύκτρα (4 αν θέλετε να συμπεριλάβετε ανεμιστήρες ψύξης)
- 2 LED κατάστασης κόκκινο και πράσινο (προαιρετικό)
- 6, 7K NTC αντίσταση με βάση τη θερμοκρασία + 6, αντίσταση 7K (προαιρετικά)
- Καλώδιο δεδομένων USB-Mini σε USB 2.0 (για την επικοινωνία του Raspberry Pi με το Arduino)
- USB-Hub με εξωτερική τροφοδοσία (προαιρετικό, μόνο για Raspberry Pi)
Βήμα 1: Κατανοήστε το σύστημα
Αναψε με! βασίζεται σε πολύ απλά ηλεκτρονικά κυκλώματα.
Έχουμε κάποιο είδος υπολογιστή (στην προκειμένη περίπτωση Raspberry Pi) ο οποίος επικοινωνεί σειριακά με την πλακέτα μικροελεγκτή μας. Στη συνέχεια, αυτός ο πίνακας εκτελεί συγκεκριμένες σειριακές εντολές όπως "RGB (255, 255, 255)", οι οποίες θα κάνουν το LED-Strip μας λευκό.
Μόλις λάβουμε τις τρεις τιμές μας για το RED, GREEN και BLUE που είναι απαραίτητες για το 4-pin LED-Strip, εκτελούμε το analogWrite (pin, value) για να τροφοδοτήσουμε το τρανζίστορ TIP120 με σήμα PWM.
Αυτό το σήμα PWM επιτρέπει στο τρανζίστορ να αλλάξει τον αντίστοιχο χρωματικό πείρο στον οποίο είναι συνδεδεμένος ο συλλέκτης στη γείωση, σε συγκεκριμένο βαθμό ή εντελώς ενεργοποιημένο / απενεργοποιημένο. Ναι, πολλά "προς":)
Αναμειγνύοντας τις τρεις εξόδους τρανζίστορ στις χρωματικές καρφίτσες των λωρίδων LED, μπορούμε να δημιουργήσουμε ουσιαστικά όποιο χρώμα θέλουμε!
Τώρα με αυτήν την κατανόηση, μπορούμε να επιτεθούμε στη μεγαλύτερη πρόκληση αυτού του έργου, τον διακομιστή ιστού και τη σειριακή του σύνδεση με το Arduino μας.
Βήμα 2: Γράψιμο του WebSocketServer
Τώρα, πρέπει να δημιουργήσουμε ένα συγκεκριμένο είδος διακομιστή ιστού, που μας επιτρέπει να μεταφέρουμε δεδομένα μπρος -πίσω χωρίς ανανέωση μία φορά, προκειμένου να επιτύχουμε έναν έλεγχο λωρίδας LED σε πραγματικό χρόνο.
Λάβετε υπόψη, ότι η επικοινωνία σε πραγματικό χρόνο είναι φυσικά αδύνατη, θα υπάρχουν πάντα τουλάχιστον μερικά χιλιοστά του δευτερολέπτου καθυστέρησης, αλλά για το ανθρώπινο μάτι είναι σημαντική ως πραγματικού χρόνου.
Αυτό μπορεί εύκολα να επιτευχθεί χρησιμοποιώντας τη βιβλιοθήκη socket.io εάν χρησιμοποιείτε το Node.js όπως εγώ. Ωστόσο, μπορείτε πάντα να μείνετε στην αγαπημένη σας γλώσσα προγραμματισμού, φυσικά.
Θα ασχοληθούμε με μια σύνδεση δικτύου που μας επιτρέπει να μεταφέρουμε δεδομένα εισόδου, όπως το χρώμα στο οποίο θέλετε να ρυθμίσετε τη λωρίδα LED ή δεδομένα κατάστασης όπως το "LED ON" αμφίδρομα χωρίς ανανέωση.
Ένα άλλο πολύ σημαντικό χαρακτηριστικό που πρέπει να έχει ο διακομιστής αλλά δεν χρειάζεται είναι μια απλή σύνδεση. Βάσα τη σύνδεσή μου από ένα απλό πεδίο ονόματος χρήστη και κωδικού πρόσβασης. Αυτά τα κομμάτια πληροφοριών δημοσιεύονται στη συνέχεια στη διαδρομή /login του διακομιστή, ο οποίος στη συνέχεια συγκρίνει το όνομα χρήστη με μια λίστα χρηστών (αρχείο.txt) και τον αντίστοιχο κωδικό πρόσβασης σε κρυπτογραφημένη μορφή SHA256. Δεν θέλετε οι γείτονές σας να μπερδεύονται με τη λωρίδα LED ενώ απολαμβάνετε το αγαπημένο σας ποτό στο πιο άνετο κάθισμά σας, σωστά;
Τώρα έρχεται η καρδιά του διακομιστή, η σειριακή επικοινωνία.
Ο διακομιστής σας πρέπει να είναι σε θέση να επικοινωνεί σειριακά - στο Node.js αυτό μπορεί να επιτευχθεί ανοίγοντας μια θύρα χρησιμοποιώντας τη βιβλιοθήκη "serialport". Αλλά πρώτα καθορίστε το όνομα της θύρας arduino στον υπολογιστή σας που φιλοξενεί τον διακομιστή. Ανάλογα με το λειτουργικό σας σύστημα, οι θύρες θα έχουν διαφορετικά ονόματα, π.χ. στα Windows αυτές οι θύρες ονομάζονται θύρες "COMx", ενώ στο linux ονομάζονται "/dev/ttyUSBx", όπου x είναι ο αριθμός της θύρας USB.
Βήμα 3: Δημιουργήστε ένα πρωτόκολλο σειριακών εντολών
Στην παραπάνω εικόνα, βλέπετε τον πραγματικό κωδικό Arduino IDE που είναι υπεύθυνος για τον έλεγχο RGB. Στόχος αυτού του βήματος είναι να κάνετε τον αυτο-γραμμένο διακομιστή και τον πίνακα Arduino να μιλούν ο ένας στον άλλο με επιτυχία.
Μόλις ανοίξετε τη σειριακή θύρα σας με επιτυχία, πρέπει να είστε σε θέση να στείλετε εντολές στον πίνακα που φροντίζει τις επιθυμίες σας. Για παράδειγμα, αν τραβήξουμε ένα δάχτυλο πάνω από το εργαλείο επιλογής χρώματος στην ιστοσελίδα HTML, ο κωδικός RGB πρέπει να σταλεί στον διακομιστή ο οποίος στη συνέχεια τον στέλνει στο Arduino σας, ώστε να επεξεργαστεί τις τιμές που έχουν οριστεί.
Χρησιμοποίησα jscolor, έχουν εξαιρετική εφαρμογή ενός στοιχείου επιλογής χρώματος υψηλής ποιότητας, το οποίο διαθέτει ένα συμβάν που ονομάζεται "onFineChange", το οποίο επιτρέπει στα δεδομένα επεξεργασίας σας από το εργαλείο επιλογής χρώματος μόλις αλλάξουν οι τιμές του.
Συνιστάται:
Digitalηφιακό Επίπεδο με Laser Cross-Line: 15 Βήματα (με Εικόνες)
Digitalηφιακό επίπεδο με λέιζερ Cross-Line: Γεια σε όλους, σήμερα θα σας δείξω πώς να φτιάξετε ένα ψηφιακό επίπεδο με προαιρετικό ενσωματωμένο λέιζερ διασταυρούμενων γραμμών. Πριν από περίπου ένα χρόνο δημιούργησα ένα ψηφιακό πολυεργαλείο. Ενώ αυτό το εργαλείο διαθέτει πολλές διαφορετικές λειτουργίες, για μένα, το πιο κοινό και χρήσιμο
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: 6 βήματα (με εικόνες)
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: Αυτό το έργο χρησιμοποιεί arduino για τον έλεγχο μιας λωρίδας led RGB με το τηλέφωνό σας μέσω bluetooth. Μπορείτε να αλλάξετε χρώμα, να κάνετε τα φώτα να συγχρονιστούν με τη μουσική ή να τα ρυθμίσετε αυτόματα για τον φωτισμό περιβάλλοντος
ESP8266 RGB LED STRIP WIFI Έλεγχος - NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi - Έλεγχος Smartphone RGB LED STRIP: 4 βήματα
ESP8266 RGB LED STRIP WIFI Έλεγχος | NODEMCU Ως τηλεχειριστήριο IR για Led Strip που ελέγχεται μέσω Wifi | RGB LED STRIP Smartphone Control: Γεια σας παιδιά σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε το nodemcu ή το esp8266 ως τηλεχειριστήριο IR για τον έλεγχο μιας λωρίδας LED RGB και το Nodemcu θα ελέγχεται από smartphone μέσω wifi. Έτσι, βασικά μπορείτε να ελέγξετε το RGB LED STRIP με το smartphone σας
Realtime MPU-6050/A0 Καταγραφή δεδομένων με Arduino και Android: 7 βήματα (με εικόνες)
Realtime MPU-6050/A0 Καταγραφή δεδομένων με Arduino και Android: Με ενδιέφερε να χρησιμοποιήσω το Arduino για μηχανική μάθηση. Ως πρώτο βήμα, θέλω να δημιουργήσω μια οθόνη δεδομένων σε πραγματικό χρόνο (ή πολύ κοντά σε αυτήν) και να καταγράψω με μια συσκευή Android. Θέλω να καταγράψω δεδομένα επιταχυνσιόμετρου από το MPU-6050, ώστε να σχεδιάσω
Cross Cross IR Beam Camera/Flash Trigger: 5 βήματα (με εικόνες)
Cross Cross IR Beam Camera/Flash Trigger: Αυτή η συσκευή θα ενεργοποιήσει μια κάμερα ή μια μονάδα φλας για να τραβήξει αυτόματα μια φωτογραφία όταν ένα αντικείμενο (στόχος) εισέλθει σε μια συγκεκριμένη τοποθεσία. Χρησιμοποιεί δύο, διασταυρωμένες υπέρυθρες δέσμες φωτός για να ανιχνεύσει την παρουσία του στόχου και να κλείσει ένα ρελέ που ταξιδεύει στο ερχόμενο