Tilføj Wi-Fi-kontrolleret belysning til din computer med NodeMCU

Lær hvordan du opbygger computerens tilfælde ved at opbygge et DIY Wi-Fi-styret Neopixelsystem med NodeMCU og nogle grundlæggende programmering.

Lær hvordan du opbygger computerens tilfælde ved at opbygge et DIY Wi-Fi-styret Neopixelsystem med NodeMCU og nogle grundlæggende programmering.
Reklame

Desktop PC tårne ​​er kommet langt siden dagene med grå plast tårne ​​gemt under skriveborde. Udover sager, der opfylder forskellige funktioner, har pc-sager udviklet en følelse af æstetik, med glaspaneler, der stolt viser komponenter og stærke futuristiske designs, der tager centret på enhver stolt geeks skrivebord.

LED-installationer bliver stadig mere almindelige. En simpel 12v RGB- stribe kan købes for så lidt som $ 1 pr. Meter og vil lyse indersiden af ​​en sag (sammen med næsten alt andet) helt godt.

Men vi vil gerne gøre noget lidt mere specielt end dette! I dag bruger vi Pixel LED'er til at skabe Wi-Fi kontrollerbar case belysning, med brugerdefinerede If This Then That (IFTTT) notifikationer. Hele systemet drives med et ekstra Molex-stik inde i tårnet, hvilket gør det helt selvstændigt. Bedste af alt koster hele dette projekt under $ 10 at lave.

Denne vejledning er tilgængelig i videoformular nedenfor, eller fortsæt læsning til den skriftlige version.

Lys med hjerner

Vi bruger individuelt adresserbare lysdioder til dette projekt. Nogle gange kendt som Neopixels, er der forskellige modeller at vælge imellem. LED'erne, der bruges her, er fra en WS2812B strimmel, der er tilgængelig for omkring $ 4 per meter.

Vi bruger NodeMCU- bestyrelsen til at kontrollere dem. Mens du kunne bruge ethvert Arduino-kompatibelt kort med Wi-Fi, er NodeMCU en favorit af os som en Arduino-morder. Mød Arduino Killer: ESP8266 Mød Arduino Killer: ESP8266 Hvad hvis jeg fortalte dig, at der er et Arduino-kompatibelt dev board med indbygget Wi-Fi til mindre end $ 10? Nå er der. Læs mere .

Hvad du har brug for

  1. 1 x 5v Pixel LED stripe, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 på AliExpress)
  3. 1 x 220-500 ohm modstand
  4. 1 x 100-1000 microFarad kondensator
  5. 1 x omskifter eller afbryder
  6. 1 x Female Molex stik
  7. 1 x brødbræt
  8. 1 x 5V strømforsyning (til test)
  9. 1 x Proto-board og ledning (til installation af kredsløbet)
  10. Forskellige hookup ledninger
  11. Loddejern og loddemetal

Det eneste i denne liste, der er usædvanligt her, er Molex- stikket. Mange pc-ejere i disse dage bruger slet ikke et cd-drev i deres builds, selvom strømforsyninger stadig har en forbindelse til dem. Vi kan bruge disse ekstra kraftledninger til vores fordel. Jeg bjærgede min kvindelige stik fra en gammel harddisk, selv om de er tilgængelige for så lidt som $ 0, 30.

Byg dit kredsløb

For at undgå unødvendig poking rundt i vores tilfælde vil vi teste vores opsætning ved hjælp af en ekstern strømforsyning. Opsæt dit brødbræt som dette.

ledet tilfælde breadboard

Hvis dette er din første gang at oprette disse slags lysdioder, vil jeg anbefale at kigge over vores dybtgående vejledning til at bruge disse strimler med Arduino først.

Afbryderen bryder simpelthen NodeMCU fra kredsløbet. I denne konstruktion vil jeg faktisk bruge en simpel afbryder i stedet for kontakten. Funktionen er at give os mulighed for at isolere bordets VIN- stik, mens den er tilsluttet via USB. Mens mængden af ​​strøm, vores LED'er tegner, er relativt lille, er det en god praksis at undgå at trække for meget strøm via USB.

Når din brødbræt er sat op, skal det se sådan ud:

breadboard setup

I mit eksempel er kondensatoren og modstanden allerede på proto-board, da den blev reddet fra et ældre projekt, selvom kredsløbet er nøjagtigt det samme.

Nu hvor vi har hardwaren oprettet, lad os oprette vores kode.

Operationens hjerner

Du vil kode din NodeMCU ved hjælp af Arduino IDE. I dette eksempel etablerer vi to driftsformer, en master on / off switch og et meddelelsessignal, når en email er modtaget. Vi bruger Blynk, en webservice til ting af ting til at kommunikere med vores bestyrelse.

Sørg for at tjekke vores Blynk introduktionsartikel. Kom godt i gang med Blynk: Simple DIY IoT-enheder Kom i gang med Blynk: Simple DIY IoT-enheder Blynk er en service til internettet (IoT) designet til at foretage fjernbetjening og læsning af sensordata fra dine enheder som hurtig og nem som muligt. Læs mere, hvis du aldrig har brugt det før.

I Blynk-appen skal du oprette et nyt projekt og vælge NodeMCU som dit bord. En autorisationskode vil blive sendt til din email-adresse, der er registreret hos Blynk. Tilføj 3 knapper og 3 skydere .

blynk app skydere og knapper

Disse knapper og skydere skal indstilles til at sende værdier til Virtual Pins V0-V5. "Test" -knappen vil teste vores e-mail-meddelelse for nu. Mærk de to andre knapper Power og Auto / Manual eller noget lignende, og de tre skydere er for Rød, Grøn og Blå .

Nu åbner du Arduino IDE. Du skal bruge Blynk og FastLED-biblioteker til dette projekt, så sørg for at du har begge installeret. Hvis du lige er begyndt med Arduino IDE, skal du se vores Arduino Beginners Guide. Kom godt i gang med Arduino: En Begyndervejledning Kom godt i gang med Arduino: En Begyndervejledning. Arduino er en open source elektronik prototypeplanlægning baseret på fleksibel og nem at bruge hardware og software. Det er beregnet til kunstnere, designere, hobbyister og alle interesserede i at skabe interaktive objekter eller miljøer. Læs mere .

Vi vil bryde koden ned i biter her, men hvis du hellere vil downloade hele koden, kan du finde den på GitHub.

Hvis du beslutter dig for at gøre dette, skal du sørge for at tilføje dine egne Wi-Fi-detaljer, autorisationskode og relevant NodeMCU-pin og antal lysdioder til scriptet. Hvis du lige begynder at lære programmering, ville jeg gå igennem det fra bunden for at lære, hvordan hver del fungerer. Dette er en af ​​mange måder at tage fat på kodning Sådan lærer du programmering uden al stress Sådan lærer du programmering uden al stress Det er måske du har besluttet at forfølge programmering, uanset om du er en karriere eller bare som en hobby. Store! Men måske begynder du at føle dig overvældet. Ikke så stor. Her er hjælp til at lette din rejse. Læs mere .

Opret en ny skitse og gem den med et passende navn. Sørg for at vælge det rigtige kort og porten fra Værktøjer > Bestyr og Værktøjer > Portmenuer. Begynd med at inkludere de relevante Blynk- og FastLED-navne-rum:

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

Dernæst tilføj nogle definitioner for 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]; 

Derefter vil vi erklære variabler for vores RGB-værdier, vores automatiske / manuelle tilstand og vores master switch. Vi tilføjer også en værdi for en basisfarve, der kræves af FastLED-forudindstillingen, som vi senere vil bruge.

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

Når du tilføjer dine Blynk-detaljer, skal du sørge for at udfylde dine egne Wi-Fi-detaljer her:

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

Vi bruger vores opsætningsfunktion til at tilføje vores LED'er til FastLED, og ​​etablere kommunikation med 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); } 

Brug if-statements i din Loop-funktion til at gøre forskellige ting afhængigt af hvilken tilstand du er i.

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

Brug nu BLYNK_WRITE- funktionerne til at ændre disse variabler afhængigt af hvad du vælger i Blynk-appen:

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

Endelig lave en funktion, der får en gentagen række af røde lys til at bruge som din e-mail-besked. Dette er designet til at udløse, uanset hvad der sker, hvilket betyder, at du altid får meddelelsen, selvom lysene er i øjeblikket slukket.

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

Når du har den fulde kode på plads, skal du bruge afbryderen / afbryderen til at isolere NodeMCU fra kredsløbet og tilslutte den via USB. Upload skitsen til tavlen. Når du har uploadet, skal du afbryde USB-kablet og tilslutte din 5v strømforsyning. Alt er godt, LED-strimlen skal starte i automatisk tilstand, hvilket er fill_rainbow- tilstanden fra FastLED. Du kan teste meddelelsessignalet ved hjælp af testknappen.

test ledede lys

Som du kan se her, lagde jeg mine lysdioder omtrent på siden af ​​mit tilfælde, så jeg vidste, hvor mange jeg ville have brug for. I mit tilfælde var det 44, selvom jeg bruger et mini-tårn, så du kan muligvis bruge mange flere. Bare vær sikker på at tage højde for strømdragningen af ​​de lysdioder, du bruger, og hvor meget din pcs strømforsyning kan give.

Konfiguration af IFTTT

Vi bruger IFTTTs Gmail-integration til at udløse vores notifikationssekvens. Hvis du aldrig har brugt IFTTT før, vil du blive forbløffet over de mange måder, du kan automatisere dine yndlingswebapps på. Hvis dette så: Forbind og automatiser eventuelle to af dine foretrukne webapps, hvis dette så: Connect & Automate Enhver to af dine foretrukne webapps Connect nogen af ​​dine favoritwebapps på kreative måder. En slags "digital duct tape" ifølge Linden Tibbets, appens skaber, hvis dette så det (ifttt) lader dig finde nye anvendelser til ... Læs mere.

Opsæt en ny applet. For "Dette" skal du vælge Enhver ny e-mail i indbakken fra Gmail- kanalen. For "Det" skal du vælge Maker Webhooks og Lav en webforespørgsel .

URL-sektionen er, hvor vi kalder vores notifikationsnål. Du skal ændre webadressen til at arbejde med dit projekt. Formatet er http: // BlynkIpAddress / YourAuthCode / pin / V5 . Du kan finde Blynk ip ved at skrive ping blynk-cloud.com i kommandoprompten.

ifttt url

Vælg PUT som metode og applikation / json som indholdstype . Til sidst tilføj ["1"] til kropsafsnittet, og klik derefter på Opret handling .

Nu, hver gang en e-mail ankommer i indbakken til Gmail-adressen i forbindelse med IFTTT, sender den en "1" besked til Virtual Pin 5 på Blynk-serveren, som vil udløse vores meddelelse. Prøv at sende dig en e-mail for at teste den. Vær tålmodig, IFTTT kan tage lidt tid!

Du kan nu slippe af testknappen i din Blynk app, hvis du ønsker det.

Samler det hele

Nu hvor vi har testet alt, er det tid til at afslutte og installere vores hardware. Flyt dit projekt fra brødbrættet til proto-bordet. Hvis du er ny til lodning og er på udkig efter et par tip, skal du se vores vejledning til lodning. Lær hvordan du lodder med disse enkle tips og projekter. Lær at lodde med disse enkle tips og projekter. Er du lidt skræmt af tanken af et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, skal du lære at lodde. Lad os hjælpe. Læs mere .

Inden du lægger dit Molex-stik på bundkortet, skal du være opmærksom på, hvilke stifter du skal bruge. Den mandlige stik, der kommer fra din pc strømforsyning, har fire kabler. De to sorte kabler er fælles jordkabler, det gule kabel er + 12v, og det røde er + 5v. Sørg for at tilslutte de tilsvarende stifter af hunkontakten til bordet. Jeg valgte kun at vedhæfte to ben for at undgå ved at stave min bord og lysdioder ved et uhell!

Molex

Jeg besluttede at fastgøre DuPont-kabler mellem min plade og lysdioder, så siden af ​​pc'en kan stadig fjernes uden at skulle fjerne proto-boardet. Jeg foreslår at lægge dine lysdioder på sagen og sikre dem med tape til at begynde med, bare for at kontrollere, at de passer korrekt ind i sagen, når de lukkes.

Bemærk: Når du lader dine LED-striber sammen, skal datalinjerne flyde i samme retning. Dette vil blive angivet på strimlen.

loddemetalbånd

Endelig monter din proto-board inde i dit pc tower. Da dette er en midlertidig bygning for mig, valgte jeg at isolere bagsiden af ​​brættet og lynlåse det til bagsiden af ​​mit tilfælde. Men du beslutter dig for at fastgøre bordet, pas på ikke at forårsage kortslutninger, og pas på den fare, der er forbundet med statisk elektricitet på interne komponenter.

Oplyst

oplyst led belysning komplet

Alt er godt, du skal have et fuldt funktionelt Wi-Fi-drevet lys med automatiske email notifikationer. Nu, hvor du har dette system på plads, kan du bruge kill-knappen på tavlen for at tilslutte din NodeMCU sikkert via USB og ændre koden. Du kan prøve at tilføje endnu en notifikation integreret med IFTTT (blåt lys til omtale på Twitter eller Facebook for eksempel) eller eksperimentere med brugerdefinerede indstillinger i FastLED-biblioteket for at give dine lys en lille bevægelse.

Har du installeret lysdioder i dit pc tower? Har du oprettet nogen fantastisk automatisering til dem? Lad os vide om dine projekter og planer i kommentarfeltet nedenfor!

Billedkredit: David Brown / Flickr

In this article