Lägg till Wi-Fi-kontrollerad belysning på din dator med NodeMCU
Stationära datortårn har kommit långt sedan dagarna med grå plasttorn dolda under skrivbord. Förutom 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 remsor 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 Om detta då det (IFTTT) anmälningar. 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 känd som Neopixels, det finns olika modeller att välja mellan. Lysdioderna som används här är från a WS2812B remsa, tillgänglig för runt $ 4 per meter.
Vi kommer att använda NodeMCU styrelsen för att kontrollera 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 x 5v Pixel LED-remsa, Neopixel / WS2811 / 12 / 12B
- 1 x NodeMCU ($ 3 på AliExpress)
- 1 x 220-500 ohm motstånd
- 1 x 100-1000 microFarad kondensator
- 1 x växelströmbrytare eller brytare
- 1 x kvinnlig Molex-kontakt
- 1 x brödbräda
- 1 x 5V strömförsörjning (för testning)
- 1 x Proto-Board och tråd (för installation av kretsen)
- Olika hookup-ledningar
- Lödjärn och lödning
Det enda i listan som är ovanligt här är Molex kontaktdon. Många PC-ägare använder idag inte en CD-enhet i sina byggnader, men strömförsörjningen har fortfarande en anslutning för 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.
Om det här är första gången du ställer in sådana typer av lysdioder, skulle jag rekommendera att titta över 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:
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.
Dessa knappar och reglage ska ställas in för att skicka värden till Virtual Pins V0-V5. De “Testa” knappen kommer att testa vår e-postnotifikation för nu. Märk de andra två knapparna Kraft 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 föredrar att helt enkelt 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 > Hamn menyer. Börja med att inkludera relevanta Blynk- och FastLED-namnrum:
#define BLYNK_PRINT Serial # include #inkludera #include "FastLED.h"
Lägg sedan till några definitioner för FastLED:
// --- FastLED definitioner och CRGB --- #define LED_PIN 3 // GPIO pin för RGB LED. #define NUM_LEDS 44 // Antal LED-lampor anslutna. #define BRIGHTNESS 64 // Standard LED-ljusstyrka. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leder [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.
// --- variabler för våra RGB-värden (0-1023) --- int r = 500; int g = 500; int b = 500; // --- variabler för På / Av och Auto / Manuell växling int masterSwitch = 1; int autoMode = 1; // --- int / byte för automatisk nyansökning --- uint8_t gHue = 0; // roterande "basfärg" som används av många av mönstren
När du lägger till dina Blynk-detaljer, var noga med att fylla i dina egna Wi-Fi-detaljer här:
// --- Blynk auth kod och wifi detaljer --- char auth [] = "YourAuthCode"; // Blynk behörighet 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.
tomgångsinställning () // uppstart för fördröjning av säkerhetsfördröjning (3000); Serial.begin (9600); // --- Lägg till LEDS till FastLED och ställ in ljusstyrkan --- FastLED.addLeds(leds, NUM_LEDS) .setCorrection (TypicalSMD5050); FastLED.setBrightness (LJUSSTYRKA); #define FRAMES_PER_SECOND 120 // --- starta kommunikationen med Blynk-servern --- 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.
tomrumsling () Blynk.run (); om (masterSwitch == 0) för (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 (); // --- Röda skjutvärdet --- BLYNK_WRITE (V1) r = param.asInt (); // --- Grönt glidervärde --- BLYNK_WRITE (V2) g = param.asInt (); // --- Blåreglagevärde --- BLYNK_WRITE (V3) b = param.asInt (); // --- Växla automatiskt / manuellt läge --- 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.
// --- E-postmeddelande ljus --- BLYNK_WRITE (V5) int g = param.asInt (); om (g == 1) för (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 automatiskt läge, vilket är fill_rainbow läge från FastLED. Du kan testa meddelandesignalen med testknappen.
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 kommer att använda IFTTTs Gmail-integration 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 det då (ifttt) kan du hitta nya användningsområden för ... Läs mer .
Ställ in en ny applet. För “Detta”, välja Alla nya e-postmeddelanden i inkorgen från Gmail kanalisera. För “Den där”, 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.
Välja SÄTTA som den Metod, och application / json som den Innehållstyp. Slutligen lägg till [“1”] till Kropp avsnittet och klicka sedan på Skapa åtgärd.
Nu, varje gång ett mail kommer in i inkorgen för Gmail-adressen i samband med IFTTT skickar den en “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!
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 placerar dina LED-lampor på väskan och säkrar dem med tejp till att börja med, för att kontrollera att de passar inuti väskan ordentligt när de är stängda.
Notera: När du lödar dina LED-remsor tillsammans måste datalinjerna flöda i samma riktning. Detta kommer att betecknas på remsan.
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 kortslutning, och var försiktig med den risk som statisk elektricitet utgör för de interna komponenterna.
upplyst
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
Utforska mer om: Datorväska, Elektronik, LED Strip.