Πύργοι για επιτραπέζιους υπολογιστές έχουν προχωρήσει πολύ από τις ημέρες των γκρίζων πλαστικών πύργων που είναι κρυμμένοι κάτω από τα γραφεία. Παράλληλα με τις περιπτώσεις που εκπληρώνουν διαφορετικές λειτουργίες, οι θήκες για PC έχουν εξελιχθεί σε μια αισθητική, με τα γυάλινα πάνελ να παρουσιάζουν με υπερηφάνεια συστατικά και τα ισχυρά φουτουριστικά σχέδια να παίρνουν το επίκεντρο σε οποιοδήποτε γραφείο υπερήφανου geek.
Οι εγκαταστάσεις LED γίνονται ολοένα και συχνότερες. Μια απλή ταινία 12GB RGB μπορεί να αγοραστεί για μόλις $ 1 ανά μέτρο και θα ανάψει το εσωτερικό μιας θήκης (μαζί με σχεδόν οτιδήποτε άλλο) τέλεια.
Ωστόσο, θέλουμε να κάνουμε κάτι λίγο πιο ξεχωριστό από αυτό! Σήμερα θα χρησιμοποιήσουμε LEDs Pixel για να δημιουργήσουμε φωτισμό με δυνατότητα ελέγχου Wi-Fi, με τις προσαρμοσμένες ειδοποιήσεις IFTTT. Το όλο σύστημα τροφοδοτείται με τη χρήση ενός εφεδρικού συνδετήρα Molex μέσα στον πύργο, καθιστώντας τον απόλυτα αυτόνομο. Το καλύτερο από όλα, όλο αυτό το έργο κοστίζει κάτω από $ 10 για να κάνει.
Αυτό το σεμινάριο είναι διαθέσιμο σε μορφή βίντεο παρακάτω, ή συνεχίστε να διαβάζετε για τη γραπτή έκδοση.
Φώτα με εγκέφαλο
Θα χρησιμοποιούμε ατομικά διευθυνσιοδοτούμενα LED για αυτό το έργο. Μερικές φορές γνωστές ως Neopixels, υπάρχουν διάφορα μοντέλα για να διαλέξετε. Τα LED που χρησιμοποιούνται εδώ είναι από μια ταινία WS2812B, διαθέσιμη για περίπου $ 4 ανά μέτρο.
Θα χρησιμοποιήσουμε την πλακέτα NodeMCU για να τις ελέγξουμε. Παρόλο που θα μπορούσατε να χρησιμοποιήσετε οποιαδήποτε κάρτα Arduino συμβατή με Wi-Fi, το NodeMCU είναι ένα από τα αγαπημένα μας ως Killer Arduino Γνωρίστε τον Killer Arduino: ESP8266 Γνωρίστε τον Kildeur του Arduino: ESP8266 Τι θα λέγατε αν σας έλεγα ότι υπάρχει ένα συμβούλιο Dev ενσωματωμένο Wi-Fi για λιγότερο από $ 10; Λοιπόν, υπάρχει. Διαβάστε περισσότερα .
Ο, τι χρειάζεσαι
- Λωρίδα LED 1 x 5v Pixel, Neopixel / WS2811 / 12 / 12B
- 1 x NodeMCU ($ 3 στο AliExpress)
- 1 x 220-500 Ohm αντίσταση
- 1 x 100-1000 πυκνωτής microFarad
- 1 x Διακόπτης εναλλαγής ή διακόπτης κυκλώματος
- 1 x θηλυκή υποδοχή Molex
- 1 x Breadboard
- 1 x 5 V τροφοδοτικό (για δοκιμή)
- 1 x Πλαίσιο και καλώδιο (για την εγκατάσταση του κυκλώματος)
- Διάφορα σύρματα σύνδεσης
- Κόλληση και συγκόλληση
Το μόνο πράγμα που υπάρχει σε αυτόν τον κατάλογο, το οποίο είναι εκτός συνηθισμένου, είναι ο σύνδεσμος Molex . Πολλοί ιδιοκτήτες προσωπικών υπολογιστών αυτές τις μέρες δεν χρησιμοποιούν μια μονάδα CD καθόλου στις κατασκευές τους, αν και τα τροφοδοτικά εξακολουθούν να έρχονται με μια σύνδεση γι 'αυτούς. Μπορούμε να χρησιμοποιήσουμε αυτές τις γραμμές ανταλλακτικών προς όφελός μας. Σώσαμε τη θηλυκή σύνδεσή μου από μια παλιά μονάδα δίσκου, αν και είναι διαθέσιμες για μόλις 0, 30 $.
Κατασκευάστε το κύκλωμά σας
Για να αποφύγουμε την περιττή σκασίματα στην περίπτωσή μας, θα ελέγξουμε τη ρύθμισή μας χρησιμοποιώντας μια εξωτερική παροχή ρεύματος. Ρυθμίστε το πιάτο σας σαν αυτό.
Εάν αυτή η πρώτη φορά που ρυθμίζετε αυτά τα LEDs, θα ήθελα να σας συμβουλεύσω να κοιτάξουμε τον οδηγό μας σε βάθος για τη χρήση αυτών των λωρίδων με το Arduino πρώτα.
Ο διακόπτης απλά σπάει το NodeMCU από το κύκλωμα. Σε αυτή την κατασκευή θα χρησιμοποιήσω έναν απλό διακόπτη στη θέση του διακόπτη. Η λειτουργία του είναι να μας επιτρέψει να απομονώσουμε τον πύργο VIN της πλακέτας ενώ είναι συνδεδεμένος μέσω USB. Ενώ η ποσότητα ισχύος που τα LED μας θα σχεδιάσει είναι σχετικά μικρή, είναι μια καλή πρακτική να αποφύγετε το τράβηγμα υπερβολικής ισχύος μέσω USB.
Μόλις ρυθμιστεί το breadboard σας, θα πρέπει να φαίνεται κάτι τέτοιο:
Στο παράδειγμά μου, ο πυκνωτής και η αντίσταση είναι ήδη στο πρωτόκολλο καθώς σώθηκε από ένα παλαιότερο έργο, αν και το κύκλωμα είναι ακριβώς το ίδιο.
Τώρα που έχουμε δημιουργήσει το υλικό, ας δημιουργήσουμε τον κώδικα μας.
Οι εγκέφαλοι της επιχείρησης
Θα κωδικοποιείτε το NodeMCU χρησιμοποιώντας το IDE του Arduino. Για αυτό το παράδειγμα, θα ρυθμίσουμε δύο τρόπους λειτουργίας, έναν κύριο διακόπτη ενεργοποίησης / απενεργοποίησης και ένα σήμα ειδοποίησης όταν λαμβάνεται ένα μήνυμα ηλεκτρονικού ταχυδρομείου. Θα χρησιμοποιήσουμε τη Blynk, μια υπηρεσία ιστού για συσκευές Διαδικτύου των Πράξεων, για να επικοινωνήσουμε με το συμβούλιο μας.
Βεβαιωθείτε ότι έχετε δει το εισαγωγικό άρθρο μας για το Blynk Ξεκινώντας με το Blynk: Απλές συσκευές DIY Διασύνδεση Ξεκινώντας με το Blynk: Απλές συσκευές DIY IoT Το Blynk είναι μια υπηρεσία Internet of Things (IoT) σχεδιασμένη για να κάνει απομακρυσμένο έλεγχο και ανάγνωση δεδομένων αισθητήρων από τις συσκευές σας γρήγορη και εύκολη. Διαβάστε περισσότερα εάν δεν το έχετε χρησιμοποιήσει ποτέ πριν.
Στην εφαρμογή Blynk, ορίστε ένα νέο έργο και επιλέξτε το NodeMCU ως το συμβούλιο σας. Θα γίνει αποστολή ενός κωδικού εξουσιοδότησης στη διεύθυνση ηλεκτρονικού ταχυδρομείου που έχετε δηλώσει στο Blynk. Προσθέστε 3 κουμπιά και 3 ρυθμιστικά .
Αυτά τα κουμπιά και τα ρυθμιστικά πρέπει να ρυθμιστούν ώστε να στέλνουν τιμές στις εικονικές ακίδες V0-V5. Το κουμπί "Test" θα δοκιμάσει τώρα την ειδοποίησή μας μέσω ηλεκτρονικού ταχυδρομείου. Ετικέτα τα άλλα δύο κουμπιά Ισχύς και Αυτόματο / Χειροκίνητο ή κάτι παρόμοιο και τα τρία ρυθμιστικά είναι για Κόκκινο, Πράσινο και Μπλε .
Τώρα ανοίξτε το IDE του Arduino. Θα χρειαστείτε τις βιβλιοθήκες Blynk και FastLED για αυτό το έργο, οπότε βεβαιωθείτε ότι έχετε εγκαταστήσει και οι δύο. Αν ξεκινάτε απλά με το IDE του Arduino, ελέγξτε τον οδηγό του αρχαίου Arduino Ξεκινώντας με τον Arduino: Οδηγός για αρχάριους Ξεκινώντας με το Arduino: Οδηγός για αρχάριους Το Arduino είναι μια πλατφόρμα πρωτοτύπου ηλεκτρονικών ανοικτών πηγών που βασίζεται σε ευέλικτες και εύχρηστες υλικό και λογισμικό. Πρόκειται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα .
Θα σπάσουμε τον κώδικα σε κομμάτια εδώ, αν και θα προτιμούσατε απλά να κάνετε λήψη του πλήρους κώδικα, μπορείτε να το βρείτε στο GitHub.
Εάν αποφασίσετε να το κάνετε αυτό, βεβαιωθείτε ότι έχετε προσθέσει τα δικά σας στοιχεία Wi-Fi, τον κωδικό εξουσιοδότησης και τον αντίστοιχο ακροδέκτη NodeMCU και τον αριθμό των LED στο σενάριο. Αν μόλις αρχίσετε να μαθαίνετε προγραμματισμό θα περάσω από το μηδέν για να μάθω πώς λειτουργεί κάθε κομμάτι. Αυτός είναι ένας από τους πολλούς τρόπους για να ασχοληθεί με την κωδικοποίηση Πώς να μάθουν τον προγραμματισμό χωρίς όλο το άγχος Πώς να μάθουν τον προγραμματισμό χωρίς όλο το άγχος Ίσως έχετε αποφασίσει να ακολουθήσετε τον προγραμματισμό, είτε για μια σταδιοδρομία ή ακριβώς ως χόμπι. Εξαιρετική! Αλλά ίσως αρχίζετε να αισθάνεστε συγκλονισμένοι. Οχι και τόσο καλό. Εδώ μπορείτε να διευκολύνετε το ταξίδι σας. Διαβάστε περισσότερα .
Δημιουργήστε ένα νέο σκίτσο και αποθηκεύστε το με το κατάλληλο όνομα. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και θύρα από τα μενού Εργαλεία > Πίνακας και Εργαλεία > Θύρα . Αρχίστε με τη συμπερίληψη των σχετικών ονομάτων Blynk και FastLED:
#define BLYNK_PRINT Serial #include #include #include "FastLED.h"
Στη συνέχεια, προσθέστε ορισμένους ορισμούς για το FastLED:
//---FastLED definitions and CRGB--- #define LED_PIN 3 // GPIO pin for RGB LEDs. #define NUM_LEDS 44 // Number of LEDs connected. #define BRIGHTNESS 64 // Default LED brightness. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leds[NUM_LEDS];
Στη συνέχεια θα δηλώσουμε μεταβλητές για τις τιμές RGB, τη λειτουργία Αυτόματη / Χειροκίνητη και τον κύριο διακόπτη. Προσθέτουμε επίσης μια τιμή για ένα βασικό χρώμα που απαιτείται από το Preset FastLED που θα χρησιμοποιήσουμε αργότερα.
//---variables for our RGB values (0-1023) --- int r = 500; int g = 500; int b = 500; //---variables for On/Off, and Auto/Manual toggle int masterSwitch = 1; int autoMode = 1; //--- int/byte for automatic hue incrementation--- uint8_t gHue = 0; // rotating "base color" used by many of the patterns
Όταν προσθέτετε τα στοιχεία του Blynk, φροντίστε να συμπληρώσετε τα δικά σας στοιχεία Wi-Fi εδώ:
//---Blynk auth code and wifi details--- char auth[] = "YourAuthCode";//Blynk authorisation char ssid[] = "YourWifiName"; char pass[] = "YourWifiPassword";
Χρησιμοποιούμε τη λειτουργία Setup για να προσθέσουμε τα LED μας στο FastLED και να επικοινωνήσουμε με την Blynk.
void setup() { // power-up safety delay delay(3000); Serial.begin(9600); //--- add the LEDS to FastLED and set the brightness--- FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalSMD5050); FastLED.setBrightness(BRIGHTNESS); #define FRAMES_PER_SECOND 120 //---start communication with the Blynk server --- Blynk.begin(auth, ssid, pass); }
Χρησιμοποιήστε if-statements στη λειτουργία Loop για να κάνετε διαφορετικά πράγματα ανάλογα με τον τρόπο που βρίσκεστε.
void loop() { Blynk.run(); if(masterSwitch == 0) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB::Black; FastLED.show(); delay(30); } } if(autoMode == 0 && masterSwitch == 1) { for (int i = 0; i< NUM_LEDS; i++){ leds[i] = CRGB(r, g, b); FastLED.show(); delay(30); } } if(autoMode == 1 && masterSwitch == 1) { fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20) { gHue++; // slowly cycle the "base color" through the rainbow } } }
Τώρα, χρησιμοποιήστε τις λειτουργίες BLYNK_WRITE για να αλλάξετε αυτές τις μεταβλητές ανάλογα με το τι επιλέγετε στην εφαρμογή Blynk:
//---Master On/Off--- BLYNK_WRITE(V0) { masterSwitch = param.asInt(); } //--- Red slider value--- BLYNK_WRITE(V1) { r = param.asInt(); } //--- Green slider value--- BLYNK_WRITE(V2) { g = param.asInt(); } //--- Blue slider value--- BLYNK_WRITE(V3) { b = param.asInt(); } //--- Toggle Auto/Manual Mode --- BLYNK_WRITE(V4) { autoMode = param.asInt(); }
Τέλος, πραγματοποιήστε μια λειτουργία η οποία προκαλεί μια επαναλαμβανόμενη σειρά κόκκινων φώτων που θα χρησιμοποιηθούν ως ειδοποίησή σας μέσω ηλεκτρονικού ταχυδρομείου. Αυτό έχει σχεδιαστεί για να πυροδοτεί ανεξάρτητα από το τι συμβαίνει, πράγμα που σημαίνει ότι πάντα θα λαμβάνετε την ειδοποίηση, ακόμη και αν τα φώτα είναι εκτός λειτουργίας.
//---Email notification light--- BLYNK_WRITE(V5) { int g = param.asInt(); if(g == 1) { for(int a = 0; a< 10 ; a++) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10); } } } }
Μόλις έχετε αυτόν τον πλήρη κωδικό στη θέση του, χρησιμοποιήστε τον διακόπτη / διακόπτη για να απομονώσετε το NodeMCU από το κύκλωμα και συνδέστε το μέσω USB. Μεταφορτώστε το σκίτσο στο διοικητικό συμβούλιο. Μετά τη φόρτωση, αποσυνδέστε το καλώδιο USB και συνδέστε το τροφοδοτικό 5V. Όλα είναι καλά και η λωρίδα LED πρέπει να ξεκινήσει με την αυτόματη λειτουργία, η οποία είναι η λειτουργία fill_rainbow από FastLED. Μπορείτε να δοκιμάσετε το σήμα ειδοποίησης χρησιμοποιώντας το κουμπί δοκιμής.
Όπως μπορείτε να δείτε εδώ, έβαλα τα LED μου περίπου στο πλάι της θήκης μου, έτσι ήξερα πόσα θα χρειαζόμουν. Στην περίπτωσή μου ήταν 44, αν και χρησιμοποιούσα ένα μίνι πύργο, έτσι μπορείτε να είστε σε θέση να χρησιμοποιήσετε πολλά άλλα. Απλώς φροντίστε να λάβετε υπόψη την ισχύ εξόδου των LED που χρησιμοποιείτε και πόσο μπορεί να παρέχει η τροφοδοσία του υπολογιστή σας.
Ρύθμιση του IFTTT
Θα χρησιμοποιήσουμε την ενσωμάτωση Gmail του IFTTT για να ενεργοποιήσουμε τη σειρά ειδοποιήσεων. Εάν δεν έχετε χρησιμοποιήσει ποτέ το IFTTT πριν, θα εκπλαγείτε με τον καθαρό αριθμό τρόπων που μπορείτε να αυτοματοποιήσετε τις αγαπημένες σας εφαρμογές Ιστού Αν αυτό Τότε: Συνδεθείτε & Αυτοματοποιήστε οποιεσδήποτε δύο από τις αγαπημένες σας εφαρμογές ιστού Αν αυτό συνέβη τότε: Connect & Automate Οποιαδήποτε δύο από τις αγαπημένες σας εφαρμογές ιστού Συνδέστε οποιεσδήποτε δύο από τις αγαπημένες σας εφαρμογές ιστού με δημιουργικούς τρόπους. Ένα είδος "ψηφιακής ταινίας αγωγών" σύμφωνα με τον Linden Tibbets, τον δημιουργό της εφαρμογής, εάν αυτό τότε (ifttt) σας επιτρέπει να βρείτε νέες χρήσεις για ... Διαβάστε περισσότερα.
Ρυθμίστε μια νέα μικροεφαρμογή. Για το "Αυτό", επιλέξτε Οποιοδήποτε νέο μήνυμα ηλεκτρονικού ταχυδρομείου στα εισερχόμενα από το κανάλι του Gmail . Για το "That", επιλέξτε Maker Webhooks και κάντε ένα αίτημα ιστού .
Η ενότητα της διεύθυνσης URL είναι εκεί που ονομάζουμε τον κωδικό ειδοποίησης. Θα χρειαστεί να τροποποιήσετε τη διεύθυνση URL για να εργαστείτε με το έργο σας. Η μορφή είναι http: // BlynkIpAddress / YourAuthCode / pin / V5 . Μπορείτε να βρείτε το ip Blynk πληκτρολογώντας ping blynk-cloud.com στη γραμμή εντολών.
Επιλέξτε PUT ως μέθοδο και εφαρμογή / json ως τύπο περιεχομένου . Τέλος, προσθέστε ["1"] στην ενότητα Body και, στη συνέχεια, κάντε κλικ στην επιλογή Δημιουργία ενέργειας .
Τώρα, κάθε φορά που ένα μήνυμα ηλεκτρονικού ταχυδρομείου φτάνει στα εισερχόμενα της διεύθυνσης Gmail που σχετίζεται με το IFTTT, θα στείλει μήνυμα "1" στον Virtual Pin 5 στον διακομιστή Blynk, το οποίο θα ενεργοποιήσει την ειδοποίησή μας. Προσπαθήστε να στείλετε ένα email για να το δοκιμάσετε. Να είστε υπομονετικοί, το IFTTT μπορεί να πάρει κάποιο χρόνο!
Τώρα μπορείτε να απαλλαγείτε από το κουμπί Test στην εφαρμογή Blynk αν θέλετε.
Όλα μαζί
Τώρα που έχουμε δοκιμάσει όλα, είναι καιρός να ολοκληρώσουμε και να εγκαταστήσουμε το υλικό μας. Μετακινήστε το έργο σας από το πινάκιο στο πρωτόκολλο. Αν είστε νέοι στη συγκόλληση και αναζητάτε μερικές συμβουλές, ανατρέξτε στον οδηγό μας για τη συγκόλληση Μάθετε πώς να κολλήσετε με αυτές τις απλές συμβουλές και σχέδια Μάθετε πώς να κολλήσετε με αυτές τις απλές συμβουλές και έργα Είστε λίγο εκφοβισμένοι από τη σκέψη από ζεστό σίδερο και τηγμένο μέταλλο; Εάν θέλετε να αρχίσετε να εργάζεστε με ηλεκτρονικά, θα πρέπει να μάθετε να κολλήσετε. Ας βοηθήσουμε. Διαβάστε περισσότερα .
Πριν τοποθετήσετε τον σύνδεσμο Molex στον πίνακα, λάβετε υπόψη σας ποιες ακίδες θα χρησιμοποιήσετε. Ο αρσενικός σύνδεσμος που προέρχεται από την τροφοδοσία του υπολογιστή σας θα έχει τέσσερα καλώδια. Τα δύο μαύρα καλώδια είναι κοινά καλώδια γείωσης, το κίτρινο καλώδιο είναι + 12v και το κόκκινο είναι + 5v. Βεβαιωθείτε ότι έχετε τοποθετήσει τους αντίστοιχους ακροδέκτες του θηλυκού συνδετήρα στην πλακέτα. Επιλέξατε να επισυνάψετε μόνο δύο καρφίτσες για να αποφύγετε τυχαία το τηγάνισμα της κάρτας και των LED!
Αποφάσισα να συνδέσω τα καλώδια DuPont μεταξύ της πλακέτας και των οδηγήσεων έτσι ώστε η πλευρά της θήκης PC να μπορεί να αφαιρεθεί πλήρως χωρίς να χρειάζεται να αφαιρεθεί το πρωτόκολλο. Προτείνω να τοποθετήσετε τα LED σας στη θήκη και να τα ασφαλίσετε με ταινία για να ξεκινήσετε απλά, για να ελέγξετε ότι ταιριάζουν στο εσωτερικό της θήκης σωστά όταν είναι κλειστά.
Σημείωση: Όταν συγκολλούμε τις λωρίδες LED μαζί, οι γραμμές δεδομένων πρέπει να ρέουν προς την ίδια κατεύθυνση. Αυτό θα σημειωθεί στη λωρίδα.
Τέλος, τοποθετήστε το proto-board στο εσωτερικό του πύργου του υπολογιστή σας. Επειδή αυτή είναι μια προσωρινή κατασκευή για μένα, επέλεξα να μονώσω το πίσω μέρος του διοικητικού συμβουλίου και φερμουάρ να το συνδέσω στο πίσω μέρος της θήκης μου. Ωστόσο, αποφασίζετε να επισυνάψετε τον πίνακα, προσέξτε να μην προκαλέσετε βραχυκύκλωμα και προσέξτε τον κίνδυνο που συνεπάγεται ο στατικός ηλεκτρισμός στα εσωτερικά εξαρτήματα.
Φωτισμένοι
Όλα είναι καλά, θα πρέπει να έχετε ένα πλήρως λειτουργικό φως που λειτουργεί με Wi-Fi με αυτόματες ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου. Τώρα που διαθέτετε αυτό το σύστημα, μπορείτε να χρησιμοποιήσετε το διακόπτη kill στο board για να συνδέσετε το NodeMCU με ασφάλεια μέσω USB και να αλλάξετε τον κωδικό. Θα μπορούσατε να δοκιμάσετε την προσθήκη μιας άλλης ειδοποίησης ενσωματωμένης στο IFTTT (μπλε φως για αναφορές στο Twitter ή στο Facebook για παράδειγμα) ή να πειραματιστείτε με προσαρμοσμένες ρυθμίσεις στη βιβλιοθήκη FastLED για να δώσετε στα φώτα σας μια μικρή κίνηση.
Έχετε τοποθετήσει τις λυχνίες LED στον πύργο του υπολογιστή σας; Έχετε ρυθμίσει οποιαδήποτε τρομερή αυτοματοποίηση για αυτούς; Ενημερώστε μας για τα σχέδια και τα σχέδιά σας στην παρακάτω παράγραφο σχολίων!
Image Credit: David Brown / Flickr