Voeg Wi-Fi-gestuurde verlichting toe aan uw computer met NodeMCU
Bureaublad-pc-torens hebben een lange weg afgelegd sinds de dagen van grijze plastic torens verborgen onder bureaus. Naast cases die verschillende functies vervullen, hebben pc-behuizingen een gevoel van esthetiek ontwikkeld, met glazen panelen die trots componenten laten zien en sterke futuristische ontwerpen die centraal staan op elk bureau van een trotse geek..
LED-installaties worden steeds gebruikelijker. Een eenvoudige 12v RGB strip kan worden gekocht voor slechts $ 1 per meter en zal de binnenkant van een behuizing (samen met bijna al het andere) perfect verlichten.
We willen echter iets speciaals doen dan dit! Vandaag zullen we Pixel-LED's gebruiken om Wi-Fi aanstuurbare case-verlichting te creëren, met op maat gemaakt Als dit dan dat (IFTTT) meldingen. Dit hele systeem wordt aangedreven met behulp van een reserve Molex-connector in de toren, waardoor het volledig op zichzelf staand is. Het beste van alles, dit hele project kost onder de $ 10 te maken.
Deze tutorial is beschikbaar in videovorm hieronder, of blijf lezen voor de geschreven versie.
Lichten met hersens
We zullen voor dit project individueel adresseerbare LED's gebruiken. Soms bekend als Neopixels, er zijn verschillende modellen om uit te kiezen. De LED's die hier worden gebruikt zijn van een WS2812B strip, beschikbaar voor ongeveer $ 4 per meter.
We zullen de gebruiken NodeMCU bord om ze te besturen. Hoewel je elk Arduino-compatibel bord met wifi kunt gebruiken, is de NodeMCU een favoriet van ons als een Arduino-killer. Ontmoet de Arduino-moordenaar: ESP8266 Ontmoet de Arduino-moordenaar: ESP8266 Wat als ik je zou vertellen dat er een Arduino-compatibel dev-bord is met ingebouwde wifi voor minder dan $ 10? Welnu, dat is er. Lees verder .
Wat je nodig hebt
- 1 x 5v pixel ledstrip, Neopixel / WS2811 / 12 / 12B
- 1 x NodeMCU ($ 3 op AliExpress)
- 1 x 220-500 Ohm weerstand
- 1 x 100-1000 microFarad-condensator
- 1 x tuimelschakelaar of stroomonderbreker
- 1 x vrouwelijke Molex-connector
- 1 x breadboard
- 1 x 5v voeding (voor testen)
- 1 x Proto-board en draad (voor het installeren van het circuit)
- Verschillende aansluitdraden
- Soldeerbout en soldeer
Het enige in deze lijst dat hier buiten het gewone is, is het Molex connector. Veel pc-eigenaars gebruiken tegenwoordig helemaal geen cd-station in hun build, hoewel voedingen nog steeds een verbinding voor hen hebben. We kunnen deze reservestroomleidingen in ons voordeel gebruiken. Ik heb mijn vrouwelijke connector van een oude diskdrive gehaald, hoewel ze beschikbaar zijn voor slechts $ 0,30.
Bouw je Circuit
Om onnodig rondsnuffelen in ons geval te voorkomen, zullen we onze installatie testen met behulp van een externe voeding. Zet je breadboard op deze manier op.
Als dit de eerste keer is dat je dit soort LED's opzet, zou ik adviseren om onze uitgebreide handleiding voor het gebruik van deze strips eerst met Arduino te bekijken.
De schakelaar breekt eenvoudig de NodeMCU van het circuit. In deze build zal ik eigenlijk een eenvoudige stroomonderbreker gebruiken in plaats van de schakelaar. Zijn functie is om ons in staat te stellen de borden te isoleren VIN pin terwijl het is aangesloten via USB. Hoewel de hoeveelheid stroom die onze LED's tekenen relatief klein is, is het een goede gewoonte om te veel kracht via USB te vermijden.
Als je breadboard eenmaal is opgezet, ziet het er ongeveer zo uit:
In mijn voorbeeld zitten de condensator en de weerstand al op het proto-bord, omdat het is hersteld van een ouder project, hoewel het circuit precies hetzelfde is.
Nu we de hardware hebben ingesteld, kunnen we onze code maken.
De hersenen van de operatie
Je codeert je NodeMCU met behulp van de Arduino IDE. Voor dit voorbeeld zullen we twee werkingsmodi instellen, een master aan / uit-schakelaar en een waarschuwingssignaal wanneer een e-mail wordt ontvangen. We zullen Blynk gebruiken, een webdienst voor apparaten van Internet of Things om met ons bestuur te communiceren.
Bekijk ons Blynk introductieartikel Aan de slag met Blynk: Simple DIY IoT-apparaten Aan de slag met Blynk: Simple DIY IoT Devices Blynk is een Internet of Things (IoT) -service die is ontworpen om afstandsbedieningen te maken en sensorgegevens van uw apparaten te lezen als snel en gemakkelijk mogelijk. Lees meer als u het nog nooit eerder hebt gebruikt.
Stel in de Blynk-app een nieuw project in en selecteer NodeMCU als uw bord. Er wordt een autorisatiecode verzonden naar uw e-mailadres dat bij Blynk is geregistreerd. Toevoegen 3 knoppen en 3 schuifregelaars.
Deze knoppen en schuifregelaars moeten worden ingesteld om waarden naar virtuele pinnen V0-V5 te verzenden. De “Test” knop test voor nu onze e-mailmelding. Label de andere twee knoppen macht en Auto / Manual of iets dergelijks, en de drie sliders zijn voor Rood, Groen, en Blauw.
Open nu de Arduino IDE. U hebt de Blynk- en FastLED-bibliotheken voor dit project nodig, dus zorg ervoor dat u beide hebt geïnstalleerd. Als je net begint met de Arduino IDE, bekijk dan onze Arduino-beginnersgids Aan de slag met Arduino: een beginnershandleiding Aan de slag met Arduino: een beginnershandleiding Arduino is een open-sourceprotocol voor prototyping van elektronica op basis van flexibel, gebruiksvriendelijk gebruik Hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Lees verder .
We zullen de code hier onderverdelen in stukjes, maar als je gewoon de volledige code wilt downloaden, kun je die vinden op GitHub.
Als u besluit dit te doen, moet u uw eigen Wi-Fi-gegevens, machtigingscode en relevante NodeMCU-pin en het aantal LED's aan het script toevoegen. Als je net begint met programmeren, zou ik het helemaal opnieuw moeten doorlopen om te leren hoe elk onderdeel werkt. Dit is een van de vele manieren om de codering onder de knie te krijgen. Hoe leer je programmeren zonder al de stress Leren programmeren zonder al je stress Misschien heb je besloten om te blijven programmeren, of het nu voor een carrière is of gewoon als een hobby. Super goed! Maar misschien begin je je overweldigd te voelen. Niet zo goed. Hier is hulp om uw reis te vergemakkelijken. Lees verder .
Maak een nieuwe schets en sla deze op met een geschikte naam. Zorg ervoor dat u de juiste kaart en poort selecteert in de Hulpmiddelen > Boord en Hulpmiddelen > Haven menu's. Begin met het opnemen van de relevante naam-ruimten Blynk en FastLED:
#define BLYNK_PRINT Serie #include #include # include "FastLED.h"
Voeg vervolgens een paar definities toe voor FastLED:
// --- FastLED-definities en CRGB --- #define LED_PIN 3 // GPIO-pin voor RGB-LED's. #define NUM_LEDS 44 // Aantal aangesloten LED's. #define BRIGHTNESS 64 // Standaard-LED-helderheid. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leds [NUM_LEDS];
Vervolgens zullen we variabelen declareren voor onze RGB-waarden, onze automatische / handmatige modus en onze hoofdschakelaar. We voegen ook een waarde toe voor een basiskleur die vereist is door de FastLED-preset die we later zullen gebruiken.
// --- variabelen voor onze RGB-waarden (0-1023) --- int r = 500; int g = 500; int b = 500; // --- variabelen voor aan / uit en Auto / Manual toggle int masterSwitch = 1; int autoMode = 1; // --- int / byte voor automatische tintverhoging --- uint8_t gHue = 0; // roterende "basiskleur" gebruikt door veel van de patronen
Wanneer u uw Blynk-gegevens toevoegt, moet u hier uw eigen Wi-Fi-gegevens invullen:
// --- Blynk auth-code en wifi-gegevens --- char auth [] = "YourAuthCode"; // Blynk authorization char ssid [] = "YourWifiName"; char pass [] = "YourWifiPassword";
We gebruiken onze Setup-functie om onze LED's aan FastLED toe te voegen en om communicatie tot stand te brengen met Blynk.
void setup () // power-up safety delay delay (3000); Serial.begin (9600); // --- voeg de LEDS toe aan FastLED en stel de helderheid in --- FastLED.addLeds(leds, NUM_LEDS) .setCorrection (TypicalSMD5050); FastLED.setBrightness (helderheid); #define FRAMES_PER_SECOND 120 // --- start communicatie met de Blynk-server --- Blynk.begin (auth, ssid, pass);
Gebruik if-statements in je Loop-functie om verschillende dingen te doen, afhankelijk van in welke modus je bent.
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
Gebruik nu de BLYNK_WRITE functies om deze variabelen te wijzigen afhankelijk van wat u selecteert in de Blynk-app:
// --- Master aan / uit --- BLYNK_WRITE (V0) masterSwitch = param.asInt (); // --- Rode schuifregelaarwaarde --- BLYNK_WRITE (V1) r = param.asInt (); // --- Groene schuifregelaarwaarde --- BLYNK_WRITE (V2) g = param.asInt (); // --- Blauwe schuifregelaarwaarde --- BLYNK_WRITE (V3) b = param.asInt (); // --- Toggle Auto / Manual Mode --- BLYNK_WRITE (V4) autoMode = param.asInt ();
Maak ten slotte een functie die ervoor zorgt dat een herhaalde reeks rode lichten wordt gebruikt als uw e-mailmelding. Dit is bedoeld om ongeacht wat er gebeurt te activeren, wat betekent dat je altijd de melding krijgt, zelfs als de lichten op dat moment uit zijn.
// --- Waarschuwingslampje voor e-mail --- 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);
Zodra u deze volledige code hebt geïnstalleerd, gebruikt u de schakelaar / stroomonderbreker om de NodeMCU van het circuit te isoleren en via USB aan te sluiten. Upload de schets naar het bord. Verwijder na het uploaden de USB-kabel en sluit uw 5v-voeding aan. Als alles goed gaat, zou de LED-strip moeten opstarten in de automatische modus, dat is de fill_rainbow modus van FastLED. U kunt het meldingssignaal testen met behulp van de testknop.
Zoals je hier kunt zien, legde ik mijn LED's grofweg naast mijn zaak, dus ik wist hoeveel ik nodig zou hebben. In mijn geval was het 44, hoewel ik een minitoren gebruik, dus misschien kun je er nog veel meer gebruiken. Zorg er wel voor dat u rekening houdt met de stroomafname van de LED's die u gebruikt en hoeveel de voeding van uw pc kan bieden.
IFTTT configureren
We zullen gebruiken IFTTT's Gmail-integratie om onze meldingsreeks te activeren. Als u nog nooit IFTTT hebt gebruikt, zult u versteld staan van de vele manieren waarop u uw favoriete web-apps kunt automatiseren. Als dit dan dat: verbindt en automatiseert u twee van uw favoriete web-apps, dan is dit: Connect & Automate Elke twee van uw favoriete webapps Verbind twee van uw favoriete web-apps op creatieve manieren. Een soort van "digitale duct tape" volgens Linden Tibbets, de maker van de app, If This Then That (ifttt) laat je nieuwe gebruiken vinden voor ... Lees meer .
Stel een nieuwe applet in. Voor “Deze”, Kiezen Elke nieuwe e-mail in inbox van de Gmail kanaal. Voor “Dat”, kiezen Maker Webhooks en Maak een webverzoek.
In de URL-sectie noemen we onze meldingspen. U moet de URL wijzigen om met uw project te werken. Het formaat is http: // BlynkIpAddress / YourAuthCode / pin / V5. Je kunt de Blynk ip vinden door te typen ping blynk-cloud.com in de opdrachtprompt.
Kiezen LEGGEN als de Methode, en application / json als de Inhoudstype. Voeg ten slotte toe [“1”] naar de Lichaam sectie en klik vervolgens op Actie maken.
Telkens wanneer een e-mail in de inbox van het aan IFTTT gekoppelde Gmail-adres arriveert, wordt een e-mail verzonden “1” bericht naar Virtual Pin 5 op de Blynk-server, die onze melding activeert. Probeer jezelf een e-mail te sturen om het te testen. Wees geduldig, IFTTT kan enige tijd duren!
U kunt nu de Test-knop in uw Blynk-app verwijderen als u dat wilt.
Alles samenvoegen
Nu we alles hebben getest, is het tijd om onze hardware af te maken en te installeren. Verplaats je project van het breadboard naar het proto-bord. Als u nog geen ervaring heeft met solderen en op zoek bent naar een paar tips, bekijk dan onze handleiding Solderen Leer solderen, met deze eenvoudige tips en projecten Leer solderen met deze eenvoudige tips en projecten Bent u een beetje geïntimideerd door de gedachte? van een heet ijzer en gesmolten metaal? Als je wilt gaan werken met elektronica, zul je moeten leren solderen. Laat ons helpen. Lees verder .
Voordat je je Molex-connector op het bord aansluit, moet je er rekening mee houden welke pennen je gaat gebruiken. De mannelijke connector afkomstig van uw pc-voeding heeft vier kabels. De twee zwarte kabels zijn gemeenschappelijke aardingskabels, de gele kabel is + 12v en het rood is + 5v. Zorg ervoor dat u de overeenkomstige pinnen van de vrouwelijke connector op het bord bevestigt. Ik heb ervoor gekozen om slechts twee pinnen vast te maken om te voorkomen dat ik per ongeluk mijn bord en LED's bak!
Ik besloot om DuPont-kabels tussen mijn bord en LED's te bevestigen, zodat de zijkant van de pc-behuizing nog steeds volledig kan worden verwijderd zonder het protoboard te hoeven verwijderen. Ik stel voor om je LED's op de hoes te leggen en ze eerst met plakband te bevestigen, gewoon om te controleren of ze goed in de hoes passen als ze dicht zijn.
Notitie: Wanneer u uw ledstrips aan elkaar soldeert, moeten de datalijnen allemaal in dezelfde richting stromen. Dit wordt op de strip aangegeven.
Bevestig ten slotte je proto-board in je pc-toren. Omdat dit een tijdelijke build voor mij is, heb ik ervoor gekozen om de achterkant van het board te isoleren en het aan de achterkant van mijn hoes vast te binden. U beslist echter om het bord te bevestigen, let op dat u geen kortsluiting veroorzaakt en wees op uw hoede voor het gevaar van statische elektriciteit op interne componenten..
Enlightened
Als alles goed gaat, zou je een volledig functionele Wi-Fi-bediende lamp moeten hebben met automatische e-mailmeldingen. Nu dit systeem is geïnstalleerd, kunt u de kill-schakelaar op het bord gebruiken om uw NodeMCU veilig via USB aan te sluiten en de code te wijzigen. U kunt proberen een andere melding toe te voegen die is geïntegreerd met IFTTT (blauw licht voor vermeldingen op Twitter of Facebook bijvoorbeeld) of te experimenteren met aangepaste instellingen in de FastLED-bibliotheek om uw lichten een beetje te laten bewegen.
Heb je LED's in je pc-toren geïnstalleerd? Heb je een geweldige automatisering voor hen opgezet? Laat het ons weten over uw projecten en plannen in het commentaargedeelte hieronder!
Image Credit: David Brown / Flickr
Ontdek meer over: Computerkast, Elektronica, LED-strip.