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

  • Lesley Fowler
  • 0
  • 2600
  • 721
Reklame

Desktop PC-tårne ​​er nået langt siden dagene med grå plasttårne ​​skjult under skriveborde. Ved siden af ​​sager, der udfører forskellige funktioner, har pc-sager udviklet en følelse af æstetik, med glaspaneler, der stolt viser frem komponenter, og stærk futuristisk design, der tager centrum på ethvert stolt nørdes skrivebord.

LED-installationer bliver stadig mere almindelige. En enkel 12v RGB strimmel kan købes for så lidt som $ 1 per meter og vil lyse indersiden af ​​en sag (sammen med næsten alt andet) perfekt.

Vi ønsker dog at gøre noget lidt mere specielt end dette! I dag skal vi bruge Pixel-LED'er til at skabe Wi-Fi kontrollerbar sagsbelysning med brugerdefineret Hvis dette så det (IFTTT) underretninger. Hele dette system er drevet med et ekstra Molex-stik inde i tårnet, hvilket gør det helt selvstændigt. Bedst af alt, koster hele dette projekt under $ 10 at tjene.

Denne tutorial er tilgængelig i videoformular nedenfor, eller bliv ved med at læse til den skriftlige version.

Lys med hjerner

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

Vi bruger NodeMCU bord for at kontrollere dem. Mens du kunne bruge et hvilket som helst Arduino-kompatibelt bræt med Wi-Fi, er NodeMCU en favorit af vores som en Arduino-dræber Mød den Arduino Killer: ESP8266 Mød Arduino Killer: ESP8266 Hvad hvis jeg fortalte dig, at der er et Arduino-kompatibelt dev-bord med indbygget Wi-Fi for mindre end $ 10? Det er der. .

Hvad du har brug for

  1. 1 x 5v Pixel LED-strip, 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 Skift switch eller afbryder
  6. 1 x Molex-stik til kvinder
  7. 1 x Breadboard
  8. 1 x 5v strømforsyning (til test)
  9. 1 x Proto-kort og ledning (til installation af kredsløbet)
  10. Forskellige tilslutningsledninger
  11. Loddejern og loddejern

Det eneste på denne liste, der er usædvanligt her, er Molex stik. Mange pc-ejere i disse dage bruger overhovedet 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 reddet mit kvindelige stik fra et gammelt diskdrev, skønt de er tilgængelige for så lidt som $ 0,30.

Byg din kredsløb

For at undgå unødvendig pirring i vores tilfælde tester vi vores opsætning ved hjælp af en ekstern strømforsyning. Sæt dit brødbræt op sådan.

Hvis dette er din første gang at indstille denne slags LED'er, vil jeg anbefale at se vores dybdegående guide til brug af disse strimler med Arduino først.

Kontakten bryder blot NodeMCU fra kredsløbet. I dette build bruger jeg faktisk en simpel afbryder i stedet for afbryderen. Dets funktion er at give os mulighed for at isolere bestyrelsens VIN pin, mens det er tilsluttet via USB. Mens mængden af ​​strøm, som vores LED'er trækker, 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 konfigureret, skal den se sådan ud:

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

Nu hvor vi har konfigureret hardware, lad os oprette vores kode.

Operationens hjerner

Du koder din NodeMCU ved hjælp af Arduino IDE. I dette eksempel vil vi konfigurere to driftsformer, en master-on / off-switch og et meddelelsessignal, når en e-mail modtages. Vi bruger Blynk, en webtjeneste til Internet of Things-enheder til at kommunikere med vores bord.

Sørg for at tjekke vores introduktionsartikel om Blynk Kom godt i gang med Blynk: Enkle DIY IoT-enheder Kom godt i gang med Blynk: Enkle DIY IoT-enheder Blynk er en Internet of Things (IoT) -tjeneste designet til at lave fjernbetjening og læse sensordata fra dine enheder som hurtigt og nemt som muligt. 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 godkendelseskode sendes til din e-mail-adresse, der er registreret hos Blynk. Tilføje 3 knapper og 3 glider.

Disse knapper og skydere skal indstilles til at sende værdier til Virtual Pins V0-V5. Det “Prøve” knappen tester vores e-mail-meddelelse lige nu. Mærk de to andre knapper Strøm og Auto / Manual eller noget lignende, og de tre glider er til Rød, Grøn, og Blå.

Åbn nu Arduino IDE. Du har brug for Blynk- og FastLED-bibliotekerne til dette projekt, så sørg for, at du begge har installeret. Hvis du lige er startet med Arduino IDE, så tjek vores Arduino begyndervejledning Kom godt i gang med Arduino: En begynderguide Kom godt i gang med Arduino: En begynderguide Arduino er en open source-elektronikprototypeplatform baseret på fleksibel, let at bruge hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver der er interesseret i at skabe interaktive objekter eller miljøer. .

Vi vil opdele koden i bunker her, men hvis du foretrækker at blot downloade den fulde kode, kan du finde den på GitHub.

Hvis du beslutter at gøre dette, skal du sørge for at tilføje dine egne Wi-Fi-oplysninger, godkendelseskode og relevant NodeMCU-pin og antal lysdioder til scriptet. Hvis du lige er begyndt at lære programmering, ville jeg gennemgå det fra bunden for at lære, hvordan hver del fungerer. Dette er en af ​​mange måder at få fat på kodning Sådan lærer du programmering uden al stress Sådan lærer du programmering uden al den stress Måske har du besluttet at fortsætte programmering, hvad enten det drejer sig om en karriere eller bare som en hobby. Store! Men måske begynder du at blive overvældet. Ikke så stor. Her er hjælp til at lette din rejse. .

Opret en ny skitse og gem den med et passende navn. Sørg for at vælge det rigtige kort og port fra Værktøj > Bestyrelse og Værktøj > Havn menuer. Begynd med at inkludere de relevante Blynk- og FastLED-navnepladser:

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

Tilføj derefter nogle definitioner til FastLED:

// --- FastLED-definitioner og CRGB --- #define LED_PIN 3 // GPIO-pin til RGB-LED'er. #definer NUM_LEDS 44 // Antal tilsluttede LED'er. #definer BRIGHTNESS 64 // Standard LED-lysstyrke. #definer LED_TYPE WS2812B #definer COLOR_ORDER GRB CRGB lysdioder [NUM_LEDS];

Dernæst erklærer vi variabler for vores RGB-værdier, vores Automatisk / Manuel tilstand og vores hovedafbryder. Vi tilføjer også en værdi for en basisfarve, der kræves af fastLED-forudindstillingen, som vi vil bruge senere.

// --- variabler for vores RGB-værdier (0-1023) --- int r = 500; int g = 500; int b = 500; // --- variabler til On / Off og Auto / Manual toggle int masterSwitch = 1; int autoMode = 1; // --- int / byte til automatisk forøgelse af farvetone --- uint8_t gHue = 0; // roterende "grundfarve" brugt af mange af mønstrene 

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

// --- Blynk autorisationskode og wifi detaljer --- char autor [] = "YourAuthCode"; // Blynk autorisations char ssid [] = "YourWifiName"; char pass [] = "YourWifiPassword";

Vi bruger vores Setup-funktion til at tilføje vores LED'er til FastLED og etablere kommunikation med Blynk.

ugyldig opsætning () // opstart af sikkerhedsforsinkelsesforsinkelse (3000); Serial.begin (9600); // --- tilføj lysdioderne til FastLED og indstil lysstyrken --- FastLED.addLeds (lysdioder, NUM_LEDS) .setCorrection (TypiskSMD5050); FastLED.setBrightness (LYS); #definer FRAMES_PER_SECOND 120 // --- start kommunikation med Blynk-serveren --- Blynk.begin (autorisation, ssid, pass); 

Brug if-udsagn 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 funktioner til at ændre disse variabler afhængigt af hvad du vælger i Blynk-appen:

// --- Master On / Off --- BLYNK_WRITE (V0) masterSwitch = param.asInt ();  // --- Rød gliderværdi --- BLYNK_WRITE (V1) r = param.asInt ();  // --- Grønt skyderværdi --- BLYNK_WRITE (V2) g = param.asInt ();  // --- Blå skyderværdi --- BLYNK_WRITE (V3) b = param.asInt ();  // --- Skift automatisk / manuel tilstand --- BLYNK_WRITE (V4) autoMode = param.asInt (); 

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

// --- E-mail-meddelelseslys --- 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 fulde kode på plads, skal du bruge afbryderen / afbryderen til at isolere NodeMCU fra kredsløbet og tilslutte den via USB. Upload skitsen til brættet. Når det er uploadet, skal du frakoble USB-kablet og tilslutte din 5v strømforsyning. Alt i alt skal LED-strimlen starte i automatisk tilstand, hvilket er fill_rainbow tilstand fra FastLED. Du kan teste meddelelsessignalet ved hjælp af testknappen.

Som du kan se her, lagde jeg mine lysdioder omtrent på siden af ​​min sag, så jeg vidste, hvor mange jeg ville have brug for. I mit tilfælde var det 44, skønt jeg bruger et minitårn, så du muligvis kan bruge mange flere. Bare sørg for at tage hensyn til strømtiltrækningen af ​​de LED'er, du bruger, og hvor meget din pc's strømforsyning kan give.

Konfiguration af IFTTT

Vi bruger IFTTTs Gmail-integration for at udløse vores underretningssekvens. Hvis du aldrig har brugt IFTTT før, vil du blive forbløffet over den store mængde måder, du kan automatisere dine foretrukne webapps på, hvis dette er det: Tilslut & automatiser to af dine foretrukne webapps, hvis dette så er det: Forbind & automatiser Alle to af dine foretrukne webapps Tilslut alle to af dine foretrukne webapps på kreative måder. En slags "digital duct tape" ifølge Linden Tibbets, appens skaber, If This Then That (ifttt) lader dig finde nye anvendelser til ... .

Opret en ny applet. Til “Dette”, vælge Enhver ny e-mail i indbakken fra Gmail kanal. Til “At”, Vælg Maker Webhooks og Lav en internetanmodning.

URL-sektionen er det sted, hvor vi kalder vores underretningsnål. Du skal ændre URL'en for 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.

Vælge SÆTTE som Metode, og application / json som Indholdstype. Tilføj endelig [“1”] til Legeme sektion, og klik derefter på Opret handling.

Hver gang en e-mail ankommer i indbakken til den Gmail-adresse, der er knyttet til IFTTT, sender den nu en “1” besked til Virtual Pin 5 på Blynk-serveren, som udløser vores anmeldelse. Prøv at sende dig en e-mail for at teste den. Vær tålmodig, IFTTT kan tage nogen tid!

Du kan nu slippe af med knappen Test i din Blynk-app, hvis du ønsker det.

Samler det hele

Nu hvor vi har testet alt, er det tid til at færdigbehandle og installere vores hardware. Flyt dit projekt fra brødbrættet ind på prototavlen. Hvis du er ny på lodning og leder efter et par tip, så tjek vores guide til lodning Lær hvordan man loddes med disse enkle tip og projekter Lær hvordan man lodder med disse enkle tip og projekter Er du lidt skræmt af tanken af et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, bliver du nødt til at lære at lodde. Lad os hjælpe. .

Inden du slutter dit Molex-stik til tavlen, skal du være opmærksom på, hvilke stifter du skal bruge. Det 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 fastgøre de tilsvarende stifter på hunstik på tavlen. Jeg valgte kun at fastgøre to stifter for at undgå at stege mit bord og lysdioder ved et uheld!

Jeg besluttede at tilslutte DuPont-kabler mellem mit bord og lysdioder, så siden af ​​pc-sagen stadig kan fjernes fuldstændigt uden at skulle fjerne protokortet. Jeg foreslår at lægge dine LED'er på sagen og fastgøre dem med bånd til at begynde med, bare for at kontrollere, at de passer korrekt ind i sagen, når de er lukket.

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

Til sidst skal du montere dit prototype inde i dit pc-tårn. Da dette er en midlertidig bygning for mig, valgte jeg at isolere bagsiden af ​​brættet og lynlås binde det på bagsiden af ​​min sag. Dog beslutter du at fastgøre pladen, være forsigtig med ikke at forårsage kortslutninger og være på vagt over for faren, som statiske elektricitet udgør på interne komponenter.

Oplyst

Alt sammen, skal du have et fuldt funktionelt Wi-Fi-betjent lys med automatiske e-mail-meddelelser. Nu når du har dette system på plads, kan du bruge kill-kontakten på tavlen for at tilslutte din NodeMCU sikkert via USB og ændre koden. Du kan prøve at tilføje en anden anmeldelse 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-tårn? Har du oprettet en fantastisk automatisering til dem? Fortæl os om dine projekter og planer i kommentarafsnittet nedenfor!

Billedkredit: David Brown / Flickr




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.