Voeg Wi-Fi-gestuurde verlichting toe aan uw computer met NodeMCU

Leer hoe u uw computer kunt opfleuren door een DIY Wi-Fi-bestuurd Neopixel-systeem met NodeMCU en een aantal basisprogrammatuur te bouwen.

Leer hoe u uw computer kunt opfleuren door een DIY Wi-Fi-bestuurd Neopixel-systeem met NodeMCU en een aantal basisprogrammatuur te bouwen.
Advertentie

Bureaublad-pc-torens hebben een lange weg afgelegd sinds de dagen van grijze plastic torens verborgen onder bureaus. Naast koffers die verschillende functies vervullen, hebben pc-hoesjes 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 door Wi-Fi bestuurbare case-verlichting te creëren, met aangepaste If This Then That (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, zijn er verschillende modellen om uit te kiezen. De hier gebruikte LED's zijn van een WS2812B- strip, beschikbaar voor ongeveer $ 4 per meter.

We zullen het NodeMCU- bord gebruiken om ze te besturen. Hoewel je elk Arduino-compatibel bord met Wi-Fi kunt gebruiken, is de NodeMCU een favoriet van ons als een Arduino-killer. Ontmoet de Arduino-moordenaar: ESP8266 Maak kennis met 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. 1 x 5v pixel ledstrip, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 op AliExpress)
  3. 1 x 220-500 Ohm weerstand
  4. 1 x 100-1000 microFarad-condensator
  5. 1 x tuimelschakelaar of stroomonderbreker
  6. 1 x vrouwelijke Molex-connector
  7. 1 x breadboard
  8. 1 x 5v voeding (voor testen)
  9. 1 x Proto-board en draad (voor het installeren van het circuit)
  10. Verschillende aansluitdraden
  11. Soldeerbout en soldeer

Het enige in deze lijst dat hier niet bij de hand is, is de Molex- connector. Veel pc-eigenaars gebruiken tegenwoordig helemaal geen cd-station in hun build, hoewel voedingen nog steeds een verbinding voor ze 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.

led case breadboard

Als dit de eerste keer is dat je dit soort LED's instelt, zou ik adviseren om eerst 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 VIN- pin van het bord te isoleren terwijl deze via USB is verbonden. 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:

broodplankopstelling

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. Voeg 3 knoppen en 3 schuifregelaars toe .

blynk app schuifregelaars en knoppen

Deze knoppen en schuifregelaars moeten worden ingesteld om waarden naar virtuele pinnen V0-V5 te verzenden. De knop "Test" test voorlopig onze e-mailmelding. Label de andere twee knoppen Power en Auto / Manual of iets dergelijks en de drie schuifregelaars 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-source prototype-platform voor 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 om 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 Hoe leer je 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 het menu Hulpmiddelen > Bord en Extra > Poort . Begin met het opnemen van de relevante naam-ruimten Blynk en FastLED:

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

Voeg vervolgens een paar definities toe voor 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]; 

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.

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

Wanneer u uw Blynk-gegevens toevoegt, moet u hier uw eigen Wi-Fi-gegevens invullen:

 //---Blynk auth code and wifi details--- char auth[] = "YourAuthCode";//Blynk authorisation 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); //--- 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); } 

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 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(); } 

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 uit zijn.

 //---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); } } } } 

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. Het is goed dat de LED-strip in de automatische modus start, dit is de modus fill_rainbow van FastLED. U kunt het meldingssignaal testen met behulp van de testknop.

ledlichten testen

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 IFTTT's Gmail-integratie gebruiken 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. Kies bij 'Dit' Alle nieuwe e-mail in de inbox van het Gmail- kanaal. Selecteer voor 'Dat' Maker-webhaken 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 . U kunt de Blynk-ip vinden door ping blynk-cloud.com in de opdrachtprompt te typen.

ifttt url

Kies PUT als de methode en application / json als het inhoudstype . Voeg ten slotte ["1"] toe aan het hoofdgedeelte en klik vervolgens op Actie maken .

Telkens wanneer een e-mail binnenkomt in de inbox van het aan IFTTT gekoppelde Gmail-adres, stuurt het een "1" -bericht naar Virtual Pin 5 op de Blynk-server, waardoor onze melding wordt geactiveerd. 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 aan te sluiten om te voorkomen dat ik per ongeluk mijn bord en LED's bak!

molex

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 tape te bevestigen, gewoon om te controleren of ze goed in de hoes passen als ze gesloten zijn.

Opmerking: wanneer u uw ledstrips aan elkaar soldeert, moeten de datalijnen allemaal in dezelfde richting stromen. Dit wordt op de strip aangegeven.

soldeer ledstrips

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

verlichte led-verlichting compleet

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 de commentaarsectie hieronder!

Image Credit: David Brown / Flickr

In this article