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

Lær hvordan du kan leve opp datamaskinen din ved å bygge et DIY Wi-Fi-kontrollert Neopixel-system med NodeMCU og noen grunnleggende programmering.

Lær hvordan du kan leve opp datamaskinen din ved å bygge et DIY Wi-Fi-kontrollert Neopixel-system med NodeMCU og noen grunnleggende programmering.
Annonse

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

LED-installasjoner blir stadig mer vanlige. En enkel 12v RGB- strimmel 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 å opprette Wi-Fi kontrollerbar saksbelysning, med tilpassede If This Then That (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, er det forskjellige modeller å velge mellom. LEDene som brukes her er fra en WS2812B stripe, tilgjengelig for rundt $ 4 per meter.

Vi bruker NodeMCU- styret til å 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.

ledet saken breadboard

Hvis dette er første gang du installerer slike lysdioder, vil jeg anbefale å se over vår dybdeveiledning 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 til 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:

breadboard setup

I mitt eksempel er kondensatoren og motstanden allerede på prototype som den ble reddet fra et eldre prosjekt, selv om kretsen er akkurat det 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 skyveknapper .

blynk app skyveknapper og knapper

Disse knappene og skyvekontrollene skal settes for å sende verdier til Virtual Pins V0-V5. "Test" -knappen vil teste vårt e-postvarsel for nå. Merk de andre to knappene Strøm 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 > Styret og Verktøy > Portmenyer. Begynn med å inkludere de relevante Blynk- og FastLED-navnene:

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

Deretter legger du til noen definisjoner 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]; 

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.

 //---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 legger til dine Blynk-detaljer, må du huske å fylle ut dine egne Wi-Fi-detaljer her:

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

Vi bruker vår oppsettfunksjon til å legge til våre lysdioder til FastLED, og ​​etablere kommunikasjon 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); } 

Bruk om-setninger i Loop-funksjonen din til å gjøre forskjellige ting, avhengig av hvilken modus 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 } } } 

Bruk BLYNK_WRITE- funksjonene til å endre disse variablene, avhengig av hva du velger 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(); } 

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.

 //---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 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 fill_rainbow- modus fra FastLED. Du kan teste varselsignalet ved hjelp av testknappen.

testing led lys

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 bruker IFTTTs Gmail-integrasjon for å 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å (ifttt) lar deg finne nye bruksområder for ... Les mer.

Sett opp en ny applett. For "This", velg Enhver ny e-post i innboksen fra Gmail- kanalen. For "Det", velg 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 / pin / V5 . Du kan finne Blynk ip ved å skrive ping blynk-cloud.com i ledeteksten.

ifttt url

Velg PUT som metode, og søknad / json som innholdstype . Til slutt legger du til ["1"] til kroppsdelen, og deretter klikker du Opprett handling .

Nå, hver gang en epost kommer inn i innboksen til Gmail-adressen som er knyttet til IFTTT, sender den en "1" melding til Virtual Pin 5 på Blynk-serveren, som vil utløse varselet vårt. 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 lakkerer 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 bord og lysdioder ved et uhell!

molex

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 prototypen. Jeg foreslår å legge ut lysdiodene på saken og sikre dem med tape til å begynne med, bare for å kontrollere at de passer i saken riktig når de er stengt.

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

loddematerialer

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 for statisk elektrisitet på interne komponenter.

Opplyst

opplyst led belysning fullført

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

In this article