Aggiungi illuminazione controllata Wi-Fi al tuo computer con NodeMCU

Scopri come animare il case del tuo computer costruendo un sistema DIY Neopixel controllato da Wi-Fi con NodeMCU e alcune programmazioni di base.

Scopri come animare il case del tuo computer costruendo un sistema DIY Neopixel controllato da Wi-Fi con NodeMCU e alcune programmazioni di base.
Annuncio pubblicitario

Le torri del PC desktop hanno fatto molta strada dai tempi delle torri di plastica grigia nascoste sotto i banchi. Accanto ai casi che soddisfano diverse funzioni, le custodie per PC hanno sviluppato un senso estetico, con pannelli di vetro che mostrano con orgoglio i componenti e un design futuristico forte che si posiziona al centro della scrivania di qualsiasi orgoglioso geek.

Le installazioni a LED stanno diventando sempre più comuni. Una semplice striscia 12v RGB può essere acquistata per un minimo di $ 1 al metro e illuminerà perfettamente l'interno di una custodia (insieme a quasi tutto il resto).

Tuttavia, vogliamo fare qualcosa di un po 'più speciale di questo! Oggi utilizzeremo Pixel LED per creare l'illuminazione del case controllabile Wi-Fi, con notifiche personalizzate If This Then That (IFTTT). L'intero sistema è alimentato utilizzando un connettore Molex di riserva all'interno della torre, rendendolo totalmente autonomo. Meglio di tutti, questo intero progetto costa meno di $ 10 a fare.

Questo tutorial è disponibile sotto forma di video qui sotto, o continua a leggere per la versione scritta.

Luci con cervello

Useremo LED indirizzabili individualmente per questo progetto. A volte noto come Neopixel, ci sono vari modelli tra cui scegliere. I LED utilizzati qui provengono da una striscia WS2812B, disponibile per circa $ 4 al metro.

Useremo la scheda NodeMCU per controllarli. Mentre è possibile utilizzare qualsiasi scheda compatibile Arduino con Wi-Fi, il NodeMCU è uno dei nostri preferiti come assassino di Arduino. Incontra l'Arduino Killer: ESP8266 Incontra l'Arduino Killer: ESP8266 E se ti dicessi c'è una scheda di sviluppo compatibile con Arduino con Wi-Fi integrato per meno di $ 10? Bene, c'è. Leggi di più .

Quello che ti serve

  1. 1 striscia LED pixel 5v, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 su AliExpress)
  3. 1 resistenza da 220-500 Ohm
  4. 1 x 100-1000 condensatore microFarad
  5. 1 x interruttore a levetta o interruttore automatico
  6. 1 x connettore Molex femmina
  7. 1 x tagliere
  8. 1 x 5v di alimentazione (per test)
  9. 1 x Proto-board e wire (per l'installazione del circuito)
  10. Vari cavi di collegamento
  11. Saldatore e saldatura

L'unica cosa in questa lista che è fuori dal comune qui è il connettore Molex . Al giorno d'oggi molti proprietari di PC non usano affatto un lettore CD nelle loro versioni, anche se gli alimentatori sono ancora dotati di una connessione. Possiamo usare queste linee elettriche di riserva a nostro vantaggio. Ho salvato il mio connettore femmina da una vecchia unità disco, sebbene siano disponibili per un minimo di $ 0, 30.

Costruisci il tuo circuito

Per evitare inutili spaccature nel nostro caso, testeremo la nostra configurazione utilizzando un alimentatore esterno. Imposta la tua breadboard in questo modo.

portatubi a led

Se questa è la prima volta che imposti questo tipo di LED, ti consiglio di consultare la nostra guida approfondita sull'uso di queste strisce con Arduino.

Lo switch interrompe semplicemente il NodeMCU dal circuito. In questa build userò un semplice interruttore automatico al posto dell'interruttore. La sua funzione è di permetterci di isolare il pin VIN della scheda mentre è connesso via USB. Mentre la quantità di energia che i nostri LED disegneranno è relativamente piccola, è una buona pratica evitare di tirare troppa energia via USB.

Una volta che la breadboard è impostata, dovrebbe assomigliare a questa:

impostazione breadboard

Nel mio esempio, il condensatore e il resistore sono già in proto-board in quanto è stato salvato da un progetto precedente, sebbene il circuito sia esattamente lo stesso.

Ora che abbiamo installato l'hardware, creiamo il nostro codice.

I cervelli dell'operazione

Codificherete il vostro NodeMCU usando l'IDE Arduino. Per questo esempio, verranno impostate due modalità operative, un interruttore on / off principale e un segnale di notifica quando viene ricevuta un'e-mail. Useremo Blynk, un servizio Web per i dispositivi di Internet of Things per comunicare con il nostro forum.

Scopri l'articolo introduttivo di Blynk Guida introduttiva a Blynk: semplici dispositivi IoT fai-da-te Guida introduttiva a Blynk: semplici dispositivi IoT fai-da-te Blynk è un servizio IoT (Internet of Things) progettato per il controllo remoto e la lettura dei dati dei sensori dai tuoi dispositivi come il più semplice e veloce possibile. Leggi di più se non l'hai mai usato prima.

Nell'app Blynk, configura un nuovo progetto e seleziona NodeMCU come scheda. Un codice di autorizzazione verrà inviato al tuo indirizzo e-mail registrato con Blynk. Aggiungi 3 pulsanti e 3 cursori .

cursori e pulsanti dell'app blynk

Questi pulsanti e cursori dovrebbero essere impostati per inviare i valori ai pin virtuali V0-V5. Il pulsante "Test" testerà la nostra notifica via email per ora. Etichetta gli altri due pulsanti Alimentazione e Auto / Manuale o qualcosa di simile, ei tre cursori sono per Rosso, Verde e Blu .

Ora apri l'IDE di Arduino. Avrai bisogno delle librerie Blynk e FastLED per questo progetto, quindi assicurati di averlo installato. Se sei appena agli inizi con l'IDE Arduino, consulta la nostra guida per principianti Arduino Guida introduttiva ad Arduino: Guida per principianti Guida introduttiva ad Arduino: Guida per principianti Arduino è una piattaforma di prototipazione elettronica open source basata su flessibile, facile da usare hardware e software. È pensato per artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più .

Qui infrangeremo il codice in blocchi, ma se preferisci semplicemente scaricare il codice completo, puoi trovarlo su GitHub.

Se si decide di farlo, assicurarsi di aggiungere i dettagli Wi-Fi, il codice di autorizzazione e il pin NodeMCU e il Numero di LED rilevanti allo script. Se stai appena iniziando a imparare la programmazione, lo esaminerei da zero per imparare come funziona ogni parte. Questo è uno dei molti modi per familiarizzare con la programmazione. Come imparare la programmazione senza tutti gli stress Come imparare la programmazione senza tutti gli stress Forse hai deciso di perseguire la programmazione, sia per una carriera che per un semplice hobby. Grande! Ma forse stai iniziando a sentirti sopraffatto. Non così eccezionale. Ecco l'aiuto per facilitare il tuo viaggio. Leggi di più .

Crea un nuovo schizzo e salvalo con un nome appropriato. Assicurati di selezionare la scheda e la porta corrette dal menu Strumenti > Schede e Strumenti > Porta . Inizia includendo i relativi spazi nome Blynk e FastLED:

#define BLYNK_PRINT Serial #include #include #include "FastLED.h" 

Successivamente, aggiungi alcune definizioni per 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]; 

Successivamente dichiareremo le variabili per i nostri valori RGB, la nostra modalità automatica / manuale e il nostro interruttore principale. Aggiungiamo anche un valore per un colore di base richiesto dal preset FastLED che useremo in seguito.

 //---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 

Quando aggiungi i dettagli di Blynk, assicurati di inserire i tuoi dettagli Wi-Fi qui:

 //---Blynk auth code and wifi details--- char auth[] = "YourAuthCode";//Blynk authorisation char ssid[] = "YourWifiName"; char pass[] = "YourWifiPassword"; 

Usiamo la nostra funzione di installazione per aggiungere i nostri LED a FastLED e stabilire una comunicazione con 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); } 

Usa le istruzioni if ​​nella tua funzione Loop per fare cose diverse a seconda della modalità in cui ti trovi.

 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 } } } 

Ora, usa le funzioni BLYNK_WRITE per cambiare queste variabili a seconda di ciò che selezioni nell'app 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(); } 

Infine, crea una funzione che causi una sequenza ripetuta di luci rosse da usare come notifica via email. Questo è progettato per innescarsi indipendentemente da ciò che sta accadendo, il che significa che riceverete sempre la notifica, anche se le luci sono spente.

 //---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); } } } } 

Una volta inserito questo codice completo, utilizzare l'interruttore / interruttore automatico per isolare il NodeMCU dal circuito e collegarlo tramite USB. Carica lo schizzo sulla lavagna. Una volta caricato, scollegare il cavo USB e collegare l'alimentatore 5v. Tutto sta andando bene, la striscia LED dovrebbe avviarsi nella modalità automatica, che è la modalità fill_rainbow di FastLED. È possibile testare il segnale di notifica utilizzando il pulsante di test.

test luci a led

Come potete vedere qui, ho disposto i miei LED all'incirca sul lato del mio caso, quindi sapevo quanti ne avrei avuto bisogno. Nel mio caso era 44, anche se io uso una mini torre, quindi potresti essere in grado di usarne molte altre. Assicurati di prendere in considerazione il consumo energetico dei LED che utilizzi e quanto l'alimentazione del tuo PC può fornire.

Configurazione di IFTTT

Utilizzeremo l'integrazione Gmail di IFTTT per attivare la nostra sequenza di notifiche. Se non hai mai usato IFTTT prima, rimarrai stupito dall'enorme quantità di modi in cui puoi automatizzare le tue app Web preferite Se questo è il seguente: Connetti e automatizza due delle tue app Web preferite Se questo è il seguente: Connetti e automatizza Due delle tue app Web preferite Connetti due delle tue app Web preferite in modo creativo. Una sorta di "nastro adesivo digitale" secondo Linden Tibbets, il creatore dell'app, If This Then That (ifttt), che ti permette di trovare nuovi usi per ... Per saperne di più.

Imposta una nuova applet. Per "Questo", scegli Qualsiasi nuova email nella posta in arrivo dal canale Gmail . Per "Quello", seleziona Maker Webhooks e Crea una richiesta web .

La sezione URL è dove chiamiamo il nostro pin di notifica. Dovrai modificare l'URL per lavorare con il tuo progetto. Il formato è http: // BlynkIpAddress / YourAuthCode / pin / V5 . È possibile trovare l'IP di Blynk digitando ping blynk-cloud.com nel prompt dei comandi.

ifttt url

Scegli PUT come metodo e application / json come Content Type . Infine, aggiungi ["1"] alla sezione Corpo, quindi fai clic su Crea azione .

Ora, ogni volta che un'email arriva nella posta in arrivo dell'indirizzo Gmail associato a IFTTT, invierà un messaggio "1" a Virtual Pin 5 sul server Blynk, che attiverà la nostra notifica. Prova a inviarti un'email per testarlo. Sii paziente, IFTTT può richiedere del tempo!

Ora puoi sbarazzarti del pulsante Test nella tua app Blynk, se lo desideri.

Mettere tutto insieme

Ora che abbiamo testato tutto, è ora di finire e installare il nostro hardware. Sposta il tuo progetto dalla breadboard sul proto-board. Se sei nuovo alla saldatura e stai cercando alcuni suggerimenti, consulta la nostra guida alla saldatura Scopri come saldare, con questi semplici suggerimenti e progetti Impara come saldare, con questi semplici suggerimenti e progetti Sei un po 'intimidito dal pensiero di un ferro caldo e di metallo fuso? Se vuoi iniziare a lavorare con l'elettronica, avrai bisogno di imparare a saldare. Lasciaci aiutare. Leggi di più .

Prima di collegare il tuo connettore Molex alla scheda, prendi nota dei pin che utilizzerai. Il connettore maschio proveniente dall'alimentazione del PC avrà quattro cavi. I due cavi neri sono comuni cavi di terra, il cavo giallo è + 12v, e il rosso è + 5v. Assicurati di collegare i pin corrispondenti del connettore femmina alla scheda. Ho scelto di attaccare solo due pin per evitare di friggere accidentalmente la mia scheda e i LED!

molex

Ho deciso di collegare i cavi DuPont tra la mia scheda e i LED in modo che il lato del case del PC possa ancora essere rimosso completamente senza dover rimuovere il proto-board. Suggerisco di posizionare i LED sulla custodia e fissarli con del nastro per cominciare, solo per verificare che si adattino correttamente alla custodia quando sono chiusi.

Nota: quando si saldano insieme le strisce LED, le linee dati devono fluire tutte nella stessa direzione. Questo sarà indicato sulla striscia.

strisce di saldatura a led

Infine, monta il tuo proto-board all'interno del tuo PC tower. Poiché questa è una build temporanea per me, ho scelto di isolare il retro della lavagna e di legarmelo sul retro del mio astuccio. Tuttavia, si decide di collegare la scheda, fare attenzione a non causare cortocircuiti e diffidare del pericolo rappresentato dall'elettricità statica sui componenti interni.

Enlightened

illuminazione a led illuminata completa

Se tutto va bene, dovresti avere una luce funzionante completamente Wi-Fi con notifiche e-mail automatiche. Ora che hai installato questo sistema, puoi utilizzare il kill switch sulla scheda per collegare il tuo NodeMCU in modo sicuro tramite USB e cambiare il codice. Puoi provare ad aggiungere un'altra notifica integrata con IFTTT (luce blu per le citazioni su Twitter o Facebook per esempio), o sperimentare con le impostazioni personalizzate nella libreria FastLED per dare alle tue luci un piccolo movimento.

Avete installato i LED nella torre del PC? Hai creato un'automazione fantastica per loro? Fateci sapere i vostri progetti e piani nella sezione commenti qui sotto!

Immagine di credito: David Brown / Flickr

In this article