Lägg till Wi-Fi-kontrollerad belysning på din dator med NodeMCU

Lär dig hur du livar upp datorns väska genom att bygga ett DIY Wi-Fi-kontrollerat Neopixelsystem med NodeMCU och någon grundläggande programmering.

Lär dig hur du livar upp datorns väska genom att bygga ett DIY Wi-Fi-kontrollerat Neopixelsystem med NodeMCU och någon grundläggande programmering.
Annons

Stationära datortårn har kommit långt sedan dagarna med grå plasttorn dolda under skrivbord. Tillsammans med fall som uppfyller olika funktioner har PC-fall utvecklat en känsla av estetik, med glaspaneler som stolt visar komponenter och starka futuristiska mönster som tar centrum på alla stolta geeks skrivbord.

LED-installationer blir allt vanligare. En enkel 12v RGB- remsa kan köpas för så lite som $ 1 per meter och kommer att lysa inuti ett fall (tillsammans med nästan allt annat) perfekt bra.

Vi vill dock göra något lite mer speciellt än detta! Idag ska vi använda Pixel LEDs för att skapa Wi-Fi kontrollerbar fallbelysning, med anpassade If This Then That (IFTTT) notifieringar. Hela systemet drivs med ett reserv Molex-kontakt i tornet, vilket gör det helt självständigt. Bäst av allt kostar hela projektet under $ 10 att göra.

Denna handledning finns tillgänglig i videofilmen nedan, eller fortsätt läsa för den skriftliga versionen.

Ljus med hjärnor

Vi kommer att använda individuellt adresserbara lysdioder för detta projekt. Ibland kallas Neopixels, det finns olika modeller att välja mellan. Lysdioderna som används här är från en WS2812B- remsa, tillgänglig för runt $ 4 per meter.

Vi använder NodeMCU- styrelsen för att styra dem. Medan du kan använda alla Arduino-kompatibla kort med Wi-Fi, är NodeMCU en favorit hos oss som en Arduino-mördare. Möt Arduino Killer: ESP8266 Möt Arduino Killer: ESP8266 Vad händer om jag sa till dig att det finns en Arduino-kompatibel dev-styrelse med inbyggd Wi-Fi för mindre än $ 10? Jo, det finns det. Läs mer .

Vad du behöver

  1. 1 x 5v Pixel LED-remsa, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 på AliExpress)
  3. 1 x 220-500 ohm motstånd
  4. 1 x 100-1000 microFarad kondensator
  5. 1 x växelströmbrytare eller brytare
  6. 1 x kvinnlig Molex-kontakt
  7. 1 x brödbräda
  8. 1 x 5V strömförsörjning (för testning)
  9. 1 x Proto-Board och tråd (för installation av kretsen)
  10. Olika hookup-ledningar
  11. Lödjärn och lödning

Det enda i listan som är vanligt här är Molex- kontakten. Många PC-ägare använder idag inte en CD-skiva i sina byggnader, även om nätaggregat fortfarande har en anslutning till dem. Vi kan använda dessa extra kraftledningar till vår fördel. Jag har sparat min kvinnliga kontakt från en gammal hårddisk, även om de är tillgängliga för så lite som $ 0.30.

Bygg din krets

För att undvika onödig poking runt i vårt fall kommer vi att testa vår inställning med en extern strömförsörjning. Ställ upp ditt brödbräda så här.

ledat fall breadboard

Om det här är första gången du ställer in sådana typer av lysdioder, skulle jag rekommendera att titta på vår djupgående guide för att använda dessa remsor med Arduino först.

Omkopplaren bryter helt enkelt NodeMCU från kretsen. I denna byggnad kommer jag faktiskt att använda en enkel brytare i stället för strömbrytaren. Dess funktion är att tillåta oss att isolera styrelsens VIN- pin medan den är ansluten via USB. Medan mängden ström våra LED-lampor kommer att rita är relativt små, är det en bra övning att undvika att dra för mycket ström via USB.

När ditt brödbräda är satt upp borde det se ut så här:

breadboard setup

I mitt exempel är kondensatorn och motståndet redan på proto-board som det bjälkades från ett äldre projekt, men kretsen är exakt densamma.

Nu när vi har inbyggd hårdvara, låt oss skapa vår kod.

Operationens hjärnor

Du kommer att koda din NodeMCU med hjälp av Arduino IDE. För det här exemplet kommer vi att konfigurera två driftsätt, en huvudströmbrytare och en meddelandesignal när ett e-postmeddelande mottas. Vi kommer att använda Blynk, en webbtjänst för saker av Internet av saker att kommunicera med vår styrelse.

Se till att du kolla in vår Blynk introduktionsartikel. Komma igång med Blynk: Enkel DIY IoT-enheter Komma igång med Blynk: Simple DIY IoT-enheter Blynk är en tjänst för internet av saker (IoT) som är utformad för att göra fjärrkontroll och läsa sensordata från dina enheter som snabbt och enkelt som möjligt. Läs mer om du aldrig har använt det tidigare.

I Blynk-appen, skapa ett nytt projekt och välj NodeMCU som din styrelse. En behörighetskod skickas till din e-postadress registrerad hos Blynk. Lägg till 3 knappar och 3 reglage .

blynk app-reglage och knappar

Dessa knappar och reglage ska ställas in för att skicka värden till Virtual Pins V0-V5. Testknappen testar vår e-postnotifikation för nu. Märk de andra två knapparna Power och Auto / Manual eller något liknande, och de tre reglagen är för Röd, Grön och Blå .

Öppna nu Arduino IDE. Du behöver Blynk och FastLED-bibliotek för det här projektet, så se till att du har båda installerat. Om du bara börjar med Arduino IDE, kolla in vår Arduino nybörjarguide. Komma igång med Arduino: En nybörjarhandbok Komma igång med Arduino: En nybörjarhandbok Arduino är en öppen prototypplattform för öppen källkod baserad på flexibel och enkel att använda hårdvara och mjukvara. Den är avsedd för artister, designers, hobbyister och alla som är intresserade av att skapa interaktiva objekt eller miljöer. Läs mer .

Vi kommer att bryta koden ner i bitar här, men om du hellre vill bara ladda ner hela koden kan du hitta den på GitHub.

Om du väljer att göra detta, var noga med att lägga till egna Wi-Fi-detaljer, behörighetskod och relevant NodeMCU-pin och antal LED-lampor till skriptet. Om du precis börjat lära dig programmering skulle jag gå igenom den från början för att lära dig hur varje del fungerar. Detta är ett av många sätt att ta tag i kodning. Hur man lär sig programmering utan all stress. Hur man lär sig programmering utan all stress. Du har kanske bestämt dig för att fortsätta programmera, oavsett om du är en karriär eller bara som en hobby. Bra! Men kanske börjar du känna dig överväldigad. Inte så bra. Här är hjälp för att underlätta din resa. Läs mer .

Skapa en ny skiss och spara den med ett lämpligt namn. Se till att du väljer rätt kartong och port från Verktyg > Styrelse och Verktyg > Port menyer. Börja med att inkludera relevanta Blynk- och FastLED-namnrum:

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

Lägg sedan till några definitioner för 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]; 

Därefter kommer vi att deklarera variabler för våra RGB-värden, vårt automatiska / manuella läge och vår huvudbrytare. Vi lägger också till ett värde för en basfärg som krävs av FastLED-förinställningen som vi ska använda senare.

 //---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 lägger till dina Blynk-detaljer, var noga med att fylla i dina egna Wi-Fi-detaljer här:

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

Vi använder vår inställningsfunktion för att lägga till våra LED till FastLED och etablera 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); } 

Använd om-uttalanden i din Loop-funktion för att göra olika saker beroende på vilket läge du är 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 } } } 

Använd nu BLYNK_WRITE- funktionerna för att ändra dessa variabler beroende på vad du väljer 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(); } 

Slutligen, gör en funktion som orsakar en upprepad följd av röda lampor att använda som din e-postmeddelande. Detta är utformat för att utlösa oavsett vad som händer, vilket innebär att du alltid kommer att få meddelandet, även om lamporna är för tillfället avstängda.

 //---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 här fullständiga koden på plats, använd strömbrytaren / strömbrytaren för att isolera NodeMCU från kretsen och anslut den via USB. Ladda upp skissen till styrelsen. När du har laddat upp, koppla ur USB-kabeln och anslut 5v nätaggregatet. Allt är bra LED-remsan ska startas i det automatiska läget, vilket är fill_rainbow- läget från FastLED. Du kan testa meddelandesignalen med testknappen.

testlampor

Som du kan se här lade jag ut mina LED-lampor ungefär på sidan av mitt fall så jag visste hur många jag skulle behöva. I mitt fall var det 44, även om jag använder ett mini-torn, så du kanske kan använda många fler. Var noga med att ta hänsyn till strömdragningen hos de lysdioder du använder och hur mycket datorns strömförsörjning kan ge.

Konfigurera IFTTT

Vi använder IFTTTs Gmail-integration för att utlösa vår anmälningssekvens. Om du aldrig använt IFTTT tidigare kommer du att bli förvånad över hur många sätt du kan automatisera dina favoritwebapps. Om det då: Koppla och automatisera två av dina favoritwebapps Om det då: Koppla och automatisera Några av dina favoritwebapps Apps Ansluta två av dina favoritwebapps på kreativa sätt. En typ av "digital kanalband" enligt Linden Tibbets, appens skapare, Om detta då (ifttt) låter dig hitta nya användningsområden för ... Läs mer.

Ställ in en ny applet. För "This", välj Alla nya e-postmeddelanden i inkorgen från Gmail- kanalen. För "Det", välj Maker Webhooks och Gör en webbförfrågan .

URL-sektionen är där vi kallar vår anmälningsstift. Du måste ändra webbadressen för att fungera med ditt projekt. Formatet är http: // BlynkIpAddress / YourAuthCode / pin / V5 . Du kan hitta Blynk ip genom att skriva ping blynk-cloud.com i kommandotolken.

ifttt url

Välj PUT som Metoden och applikation / json som innehållstyp . Slutligen lägg till ["1"] till avsnittet Kropp och klicka sedan på Skapa åtgärd .

Nu kommer varje gång ett mail kommer in i inkorgen för Gmail-adressen i samband med IFTTT, skickar den ett "1" -meddelande till Virtual Pin 5 på Blynk-servern, vilket kommer att utlösa vår anmälan. Försök skicka dig ett mail för att testa det. Var tålamod, IFTTT kan ta lite tid!

Du kan nu bli av med testknappen i din Blynk-app om du vill.

Få alltid att falla på plats

Nu när vi har testat allt, är det dags att slutföra och installera vår maskinvara. Flytta ditt projekt från breadboard till proto-board. Om du är ny till lödning och letar efter några tips, kolla in vår guide till lödning. Lär dig hur man löds med dessa enkla tips och projekt. Lär dig hur man löds med dessa enkla tips och projekt. Är du lite skrämmad av tanken av ett hett järn och smält metall? Om du vill börja arbeta med elektronik, kommer du behöva lära dig att lödda. Låt oss hjälpa. Läs mer .

Innan du kopplar in Molex-kontakten till kortet, ta reda på vilka stiften du ska använda. Den manliga kontakten som kommer från datorns nätaggregat kommer att ha fyra kablar. De två svarta kablarna är vanliga kablar, den gula kabeln är + 12v och den röda är + 5v. Se till att du fäster motsvarande stiften i honkontakten på brädet. Jag valde att bara fästa två pinnar för att undvika att steka mina brädor och lysdioder av misstag

molex

Jag bestämde mig för att fästa DuPont-kablar mellan mitt kort och LED så att sidan av PC-fodralet fortfarande kan tas bort helt utan att behöva ta bort proto-board. Jag föreslår att du lägger ut dina lysdioder på väskan och säkrar dem med tejp till att börja med, bara för att kontrollera att de passar inuti väskan ordentligt när den är stängd.

Obs! När du lödar dina LED-remsor tillsammans måste datalinjerna flöda i samma riktning. Detta kommer att betecknas på remsan.

löddlister

Slutligen montera din proto-board inuti ditt PC-torn. Eftersom det här är en tillfällig byggnad för mig valde jag att isolera baksidan av brädet och slipsar den till baksidan av mitt fall. Men du bestämmer dig för att fästa styrelsen, var försiktig så att du inte orsakar några kortslutningar, och var försiktig med den risk som statisk elektricitet utgör för de interna komponenterna.

upplyst

upplyst ledbelysning komplett

Allt är bra, du borde ha ett fullt fungerande Wi-Fi-fungerat ljus med automatiska e-postmeddelanden. Nu när du har det här systemet, kan du använda dödkontakten på kortet för att ansluta din NodeMCU säkert via USB och ändra koden. Du kan försöka lägga till en annan anmälan integrerad med IFTTT (blått ljus för nämnder på Twitter eller Facebook till exempel) eller experimentera med anpassade inställningar i FastLED-biblioteket för att ge dina ljus lite rörelse.

Har du installerat lysdioder i ditt PC-torn? Har du skapat någon fantastisk automatisering för dem? Låt oss veta om dina projekt och planer i kommentarfältet nedan!

Bildkredit: David Brown / Flickr

In this article