Legg til Wi-Fi kontrollert belysning på datamaskinen med NodeMCU

Legg til Wi-Fi kontrollert belysning på datamaskinen med NodeMCU / DIY

Desktop PC-tårnene har kommet langt siden dagene med grå plasttårn skjult under skrivebord. Sammen med tilfeller som oppfyller forskjellige funksjoner, har PC-tilfeller utviklet en følelse av estetikk, med glasspaneler som stolt viser komponenter, og sterke futuristiske design tar senter på noen stolte geeks skrivebord.

LED-installasjoner blir stadig mer vanlige. En enkel 12v RGB stripe kan kjøpes for så lite som $ 1 per meter og vil lyse på innsiden av et tilfelle (sammen med nesten alt annet) helt bra.

Vi vil imidlertid gjøre noe litt mer spesielt enn dette! I dag skal vi bruke Pixel-lysdioder for å skape Wi-Fi kontrollerbar case belysning, med tilpasset Hvis dette så det (IFTTT) varsler. Hele systemet er drevet med en ekstra Molex-kontakt inne i tårnet, noe som gjør den helt selvstendig. Best av alt koster hele dette prosjektet under $ 10 å lage.

Denne opplæringen er tilgjengelig i videoformular under, eller fortsett å lese for den skriftlige versjonen.

Lys med hjerner

Vi vil bruke individuelt adresserbare lysdioder for dette prosjektet. Noen ganger kjent som Neopixels, det finnes ulike modeller å velge mellom. Lysdiodene som brukes her er fra a WS2812B stripe, tilgjengelig for rundt $ 4 per meter.

Vi skal bruke NodeMCU styret for å kontrollere dem. Mens du kan bruke ethvert Arduino-kompatibelt kort med Wi-Fi, er NodeMCU en favoritt av oss som en Arduino-morder. Møt Arduino Killer: ESP8266 Møt Arduino Killer: ESP8266 Hva om jeg fortalte deg at det er et Arduino-kompatibelt dev-kort med innebygd Wi-Fi for mindre enn $ 10? Vel, det er det. Les mer .

Hva trenger du

  1. 1 x 5v Pixel LED stripe, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 på AliExpress)
  3. 1 x 220-500 ohm motstand
  4. 1 x 100-1000 microFarad kondensator
  5. 1 x bryterbryter eller bryterbryter
  6. 1 x Female Molex-kontakt
  7. 1 x brødbrett
  8. 1 x 5V strømforsyning (for testing)
  9. 1 x Proto-Board og ledning (for å installere kretsen)
  10. Ulike koble opp ledninger
  11. Lodding og lodding

Det eneste i denne listen som er uvanlig her er Molex kontakten. Mange PC-eiere i disse dager bruker ikke en CD-stasjon i sine bygg, selv om strømforsyningene fortsatt har en tilkobling for dem. Vi kan bruke disse ekstra kraftledninger til vår fordel. Jeg reddet min kvinnelige kontakt fra en gammel diskstasjon, selv om de er tilgjengelige for så lite som $ 0,30.

Bygg din krets

For å unngå unødvendig poking rundt i vårt tilfelle, vil vi teste oppsettet vårt ved hjelp av en ekstern strømforsyning. Sett opp brødbrettet ditt slik som dette.

Hvis dette er første gang du oppretter slike lysdioder, vil jeg anbefale å se over vår grundige veiledning for å bruke disse stripene med Arduino først.

Bryteren bryter ganske enkelt NodeMCU fra kretsen. I denne bygningen vil jeg faktisk bruke en enkel bryter i stedet for bryteren. Funksjonen er å tillate oss å isolere styrets VIN pin mens den er koblet via USB. Mens mengden strøm våre lysdioder vil tegne, er relativt liten, er det en god praksis å unngå å trekke for mye strøm via USB.

Når brødbordet er satt opp, bør det se slik ut:

I mitt eksempel er kondensatoren og motstanden allerede på proto-board som den ble reddet fra et eldre prosjekt, selv om kretsen er akkurat den samme.

Nå som vi har maskinvaren satt opp, la oss lage vår kode.

Hjernen til operasjonen

Du vil kode din NodeMCU ved hjelp av Arduino IDE. For dette eksempelet vil vi sette opp to driftsformer, en master på / av-bryter og et varslingssignal når en e-post mottas. Vi vil bruke Blynk, en webtjeneste for ting av ting til å kommunisere med vårt styre.

Sørg for at du sjekker ut vår Blynk introduksjonsartikkel Komme i gang med Blynk: Enkle DIY IoT-enheter Komme i gang med Blynk: Simple DIY IoT-enheter Blynk er en tjeneste for Internett-tjenester (IoT) som er designet for å gjøre fjernkontroll og lese sensordata fra enhetene dine som rask og enkel som mulig. Les mer hvis du aldri har brukt det før.

I Blynk-appen, sett opp et nytt prosjekt og velg NodeMCU som bord. En autorisasjonskode vil bli sendt til din e-postadresse registrert hos Blynk. Legg til 3 knapper og 3 glidebrytere.

Disse knappene og skyvekontrollene skal settes for å sende verdier til Virtual Pins V0-V5. De “Test” knappen vil teste vårt e-postvarsel for nå. Merk de to andre knappene Makt og Auto / Manuell eller noe lignende, og de tre skyvekontrollene er for rød, Grønn, og Blå.

Åpne nå Arduino IDE. Du trenger Blynk og FastLED-bibliotekene for dette prosjektet, så sørg for at du har begge installert. Hvis du bare begynner med Arduino IDE, kan du se vår Arduino nybegynners guide. Komme i gang Med Arduino: En nybegynnersveiledning Komme i gang med Arduino: En nybegynnerveiledning Arduino er en open source elektronikk prototyping plattform basert på fleksibel, brukervennlig Hardware og software. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer .

Vi vil bryte koden ned i biter her, men hvis du foretrekker å bare laste ned hele koden, kan du finne den på GitHub.

Hvis du bestemmer deg for å gjøre dette, må du legge til dine egne Wi-Fi-detaljer, autorisasjonskode og relevant NodeMCU-pin og antall lysdioder til skriptet. Hvis du bare begynner å lære programmering, vil jeg gå gjennom den fra bunnen for å lære hvordan hver del fungerer. Dette er en av mange måter å få tak i koding Hvordan lære programmering uten all stress Slik lærer du programmering uten all stress Kanskje du har bestemt deg for å forfølge programmering, enten for en karriere eller bare som en hobby. Flott! Men kanskje du begynner å føle deg overveldet. Ikke så bra. Her er hjelp til å lette reisen din. Les mer .

Lag en ny skisse og lagre den med et passende navn. Pass på å velge riktig bord og port fra Verktøy > Borde og Verktøy > Havn menyer. Begynn med å inkludere de relevante Blynk- og FastLED-navnene:

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

Deretter legger du til noen definisjoner for FastLED:

// --- FastLED definisjoner og CRGB --- #define LED_PIN 3 // GPIO pin for RGB LED. #define NUM_LEDS 44 // Antall LED-tilkoblinger. #define BRIGHTNESS 64 // Standard LED lysstyrke. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB lyser [NUM_LEDS];

Neste vil vi deklarere variabler for våre RGB-verdier, vår automatiske / manuelle modus og vår hovedbryter. Vi legger også til en verdi for en grunnfarge som kreves av FastLED-forhåndsinnstillingen som vi skal bruke senere.

// --- variabler for våre RGB-verdier (0-1023) --- int r = 500; int g = 500; int b = 500; // --- variabler for På / Av, og Auto / Manuell skift int masterSwitch = 1; int autoMode = 1; // --- int / byte for automatisk nyanseøkning --- uint8_t gHue = 0; // roterende "base farge" brukt av mange av mønstrene 

Når du legger til dine Blynk-detaljer, må du huske å fylle ut dine egne Wi-Fi-detaljer her:

// --- Blynk auth kode og wifi detaljer --- char auth [] = "YourAuthCode"; // Blynk autorisasjon char ssid [] = "YourWifiName"; char pass [] = "YourWifiPassword";

Vi bruker vår oppsettfunksjon til å legge til våre lysdioder til FastLED, og ​​etablere kommunikasjon med Blynk.

ugyldig oppsett () // oppstart forsinkelse forsinkelse (3000); Serial.begin (9600); // --- legg lysdiodene til FastLED og sett lysstyrken --- FastLED.addLeds(leds, NUM_LEDS) .setCorrection (TypicalSMD5050); FastLED.setBrightness (lysstyrke); #define FRAMES_PER_SECOND 120 // --- start kommunikasjon med Blynk serveren --- Blynk.begin (auth, ssid, pass); 

Bruk om-setninger i Loop-funksjonen din til å gjøre forskjellige ting, avhengig av hvilken modus du er i.

tomromsløyfe () Blynk.run (); hvis (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   

Bruk nå BLYNK_WRITE Fungerer for å endre disse variablene avhengig av hva du velger i Blynk-appen:

// --- Master On / Off --- BLYNK_WRITE (V0) masterSwitch = param.asInt ();  // --- Rød skyveverdi --- BLYNK_WRITE (V1) r = param.asInt ();  // --- Grønn skyveverdi --- BLYNK_WRITE (V2) g = param.asInt ();  // --- Blå skyveverdien --- BLYNK_WRITE (V3) b = param.asInt ();  // --- Toggle Auto / Manuell modus --- BLYNK_WRITE (V4) autoMode = param.asInt (); 

Til slutt, gjør en funksjon som forårsaker en gjentatt rekkefølge av røde lys som skal brukes som e-postvarsling. Dette er utformet for å utløse, uansett hva som skjer, noe som betyr at du alltid vil få varselet, selv om lysene for øyeblikket er av.

// --- E-postvarsling lys --- BLYNK_WRITE (V5) int g = param.asInt (); hvis (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 denne fulle koden på plass, bruk bryteren / bryteren til å isolere NodeMCU fra kretsen, og koble den inn via USB. Last opp skissen til brettet. Når du har lastet opp, kobler du fra USB-kabelen og kobler til 5V strømforsyningen. Alt er bra LED-stripen skal starte opp i automatisk modus, som er den fill_rainbow modus fra FastLED. Du kan teste varselsignalet ved hjelp av testknappen.

Som du kan se her, la jeg ut lysdiodene mine omtrent på siden av saken min, så jeg visste hvor mange jeg ville trenge. I mitt tilfelle var det 44, selv om jeg bruker et mini-tårn, så du kan kanskje bruke mange flere. Bare vær sikker på å ta hensyn til kraftuttaket til lysdiodene du bruker, og hvor mye strømmen til PCen din kan gi.

Konfigurere IFTTT

Vi skal bruke IFTTTs Gmail-integrasjon å utløse vår varslingssekvens. Hvis du aldri har brukt IFTTT før, vil du bli overrasket over de mange måtene du kan automatisere favorittwebappene dine hvis dette da: Koble til og automatiser noen av dine favoritt webapplikasjoner hvis dette da: Koble til og automatisere Eventuelle to av dine favorittwebapplikater Koble til to av favorittwebappene dine på kreative måter. En slags "digital duct tape" ifølge Linden Tibbets, appens skaperen, hvis dette så det (ifttt) lar deg finne nye bruksområder for ... Les mer .

Sett opp en ny applett. Til “Dette”, velge Enhver ny e-post i innboksen fra Gmail kanal. Til “At”, å velge Maker Webhooks og Lag en webforespørsel.

Nettadressen er hvor vi ringer til varselpinnen vår. Du må endre nettadressen for å jobbe med prosjektet. Formatet er http: // BlynkIpAddress / YourAuthCode / tapp / V5. Du kan finne Blynk ip ved å skrive ping blynk-cloud.com i ledeteksten.

Velge SETTE som Metode, og application / json som Innholdstype. Til slutt legg til [“1”] til Kropp delen, og klikk deretter Opprett handling.

Nå, hver gang en e-post kommer inn i innboksen til Gmail-adressen tilknyttet IFTTT, sender den en “1” melding til Virtual Pin 5 på Blynk-serveren, som vil utløse vårt varsel. Prøv å sende deg en e-post for å teste den. Vær tålmodig, IFTTT kan ta litt tid!

Du kan nå kvitte seg med Test-knappen i din Blynk-app hvis du ønsker det.

Sette alt sammen

Nå som vi har testet alt, er det på tide å fullføre og installere maskinvaren vår. Flytt prosjektet fra brødbrettet til proto-bordet. Hvis du er ny til lodding, og leter etter noen tips, kan du se vår guide til lodding. Lær hvordan å lodde, med disse enkle tipsene og prosjektene. Lær hvordan du lakker med disse enkle tipsene og prosjektene. Er du litt skremt av tanken av et varmt jern og smeltet metall? Hvis du vil begynne å jobbe med elektronikk, må du lære å lodde. La oss hjelpe. Les mer .

Før du legger til Molex-kontakten på brettet, merk deg hvilke pins du skal bruke. Den mannlige kontakten som kommer fra PC-strømforsyningen, har fire kabler. De to sorte kablene er felleskabler, den gule kabelen er + 12v, og den røde er + 5v. Pass på at du legger til de tilhørende pinnene til den kvinnelige kontakten på brettet. Jeg valgte å bare feste to pins for å unngå å steke min brett og lysdioder ved et uhell!

Jeg bestemte meg for å feste DuPont-kabler mellom bordet mitt og lysdiodene, slik at siden av PC-kabinettet fortsatt kan fjernes uten at du må fjerne proto-kortet. Jeg foreslår å legge ut lysdiodene på saken og sikre dem med tape til å begynne med, bare for å sjekke at de passer inn i saken riktig når de er lukket.

Merk: Når du lader dine LED-striper sammen, må data linjene flyte i samme retning. Dette vil bli betegnet på strimlen.

Til slutt montere din prototype inne i PC-tårnet. Siden dette er en midlertidig konstruksjon for meg, valgte jeg å isolere baksiden av brettet, og lås den til baksiden av saken min. Men du bestemmer deg for å feste brettet, vær forsiktig så du ikke forårsaker kortslutning, og vær forsiktig med faren ved statisk elektrisitet på interne komponenter.

Opplyst

Alt er bra, du bør ha et fullt funksjonelt Wi-Fi-drevet lys med automatiske e-postvarsler. Nå som du har dette systemet på plass, kan du bruke kill-bryteren på tavlen for å koble din NodeMCU trygt via USB og endre koden. Du kan prøve å legge til et annet varsel integrert med IFTTT (blått lys for omtale på Twitter eller Facebook for eksempel), eller eksperimentere med egendefinerte innstillinger i FastLED-biblioteket for å gi lysene litt bevegelse.

Har du installert lysdioder i PC-tårnet? Har du satt opp noen fantastisk automatisering for dem? Gi oss beskjed om dine prosjekter og planer i kommentarfeltet nedenfor!

Bilde Kreditt: David Brown / Flickr

Utforsk mer om: Computer Case, Electronics, LED Strip.