Fügen Sie mit NodeMCU Wi-Fi Controlled Lighting zu Ihrem Computer hinzu

Erfahren Sie, wie Sie Ihr Computergehäuse aufwerten können, indem Sie ein DIY-Wi-Fi-gesteuertes Neopixel-System mit NodeMCU und einige grundlegende Programmierfunktionen erstellen.

Erfahren Sie, wie Sie Ihr Computergehäuse aufwerten können, indem Sie ein DIY-Wi-Fi-gesteuertes Neopixel-System mit NodeMCU und einige grundlegende Programmierfunktionen erstellen.
Werbung

Desktop PC-Türme haben seit den Tagen der grauen Plastiktürme, die unter Schreibtischen verborgen sind, einen langen Weg zurückgelegt. Neben Gehäusen, die verschiedene Funktionen erfüllen, haben PC-Gehäuse einen Sinn für Ästhetik entwickelt, mit Glaspanelen, die stolz Komponenten zeigen, und starken futuristischen Designs, die auf jedem stolzen Geek-Schreibtisch im Mittelpunkt stehen.

LED-Installationen werden immer häufiger. Ein einfacher 12V RGB- Streifen kann für nur 1 US-Dollar pro Meter gekauft werden und leuchtet das Innere eines Gehäuses (zusammen mit fast allem anderen) perfekt auf.

Aber wir wollen etwas Besonderes machen! Heute werden wir Pixel-LEDs verwenden, um Wi-Fi-steuerbare Gehäusebeleuchtung mit benutzerdefinierten If This Then That (IFTTT) -Benachrichtigungen zu erstellen. Das gesamte System wird mit einem Ersatz-Molex-Stecker im Turm betrieben und ist somit vollständig in sich geschlossen. Das Beste von allem ist, dass dieses ganze Projekt unter $ 10 kostet.

Dieses Tutorial ist im Video unten verfügbar oder lesen Sie weiter für die geschriebene Version.

Lichter mit Gehirnen

Wir werden für dieses Projekt individuell adressierbare LEDs verwenden. Manchmal bekannt als Neopixel, gibt es verschiedene Modelle zur Auswahl. Die hier verwendeten LEDs stammen von einem WS2812B- Streifen, der für etwa 4 US-Dollar pro Meter erhältlich ist.

Wir werden die NodeMCU-Karte verwenden, um sie zu steuern. Während Sie jedes Arduino-kompatible Board mit Wi-Fi verwenden können, ist der NodeMCU ein Favorit von uns als Arduino-Killer. Lernen Sie den Arduino-Killer kennen: ESP8266 Lernen Sie den Arduino-Killer kennen: ESP8266 Was wäre, wenn ich Ihnen ein Arduino-kompatibles Dev-Board erzählen würde? integrierte Wi-Fi für weniger als 10 $? Nun, da ist es. Weiterlesen .

Was du brauchst

  1. 1 x 5V Pixel LED-Streifen, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 auf AliExpress)
  3. 1 x 220-500 Ohm Widerstand
  4. 1 x 100-1000 microFarad-Kondensator
  5. 1 x Kippschalter oder Leistungsschalter
  6. 1 x weiblicher Molex-Stecker
  7. 1 x Steckbrett
  8. 1 x 5V Netzteil (zum Testen)
  9. 1 x Proto-Board und Kabel (für die Installation der Schaltung)
  10. Verschiedene Anschlussdrähte
  11. Lötkolben und Lot

Das einzige, was in dieser Liste ungewöhnlich ist, ist der Molex- Stecker. Viele PC-Besitzer verwenden heutzutage in ihren Builds überhaupt kein CD-Laufwerk, obwohl Stromversorgungen immer noch mit einer Verbindung für sie verbunden sind. Wir können diese Ersatzstromleitungen zu unserem Vorteil nutzen. Ich habe meinen weiblichen Stecker von einem alten Laufwerk gerettet, obwohl sie für nur $ 0, 30 verfügbar sind.

Baue deine Rennstrecke

Um unnötiges Stochern in unserem Fall zu vermeiden, testen wir unser Setup mit einem externen Netzteil. Richte dein Breadboard so ein.

führte Gehäuse Steckbrett

Wenn Sie diese Art von LEDs zum ersten Mal einrichten, rate ich Ihnen, sich zuerst unsere ausführliche Anleitung zur Verwendung dieser Streifen mit Arduino anzusehen.

Der Schalter unterbricht einfach die NodeMCU von der Schaltung. In diesem Build werde ich tatsächlich einen einfachen Leistungsschalter anstelle des Schalters verwenden. Seine Funktion besteht darin, den VIN- Pin der Karte zu isolieren, während er über USB angeschlossen ist. Während die Leistung unserer LEDs relativ gering ist, sollten Sie vermeiden, dass Sie zu viel Strom über USB ziehen.

Sobald Ihr Steckbrett eingerichtet ist, sollte es in etwa so aussehen:

Breadboard-Setup

In meinem Beispiel sind der Kondensator und der Widerstand bereits auf Proto-Board, wie es von einem älteren Projekt gerettet wurde, obwohl die Schaltung genau die gleiche ist.

Jetzt, da wir die Hardware eingerichtet haben, erstellen wir unseren Code.

Die Gehirne der Operation

Sie werden Ihre NodeMCU mit der Arduino IDE codieren. In diesem Beispiel richten wir zwei Betriebsmodi ein, einen Master-Ein / Aus-Schalter und ein Benachrichtigungssignal, wenn eine E-Mail empfangen wird. Wir werden Blynk, einen Webservice für Internet of Things-Geräte, verwenden, um mit unserem Vorstand zu kommunizieren.

Stellen Sie sicher, dass Sie unseren Blynk Einführungsartikel lesen Erste Schritte mit Blynk: Einfache DIY IoT Geräte Erste Schritte mit Blynk: Einfache DIY IoT Geräte Blynk ist ein Internet der Dinge (IoT) Service entwickelt, um die Fernsteuerung und das Lesen von Sensordaten von Ihren Geräten zu machen schnell und einfach wie möglich. Lesen Sie mehr, wenn Sie es noch nie zuvor benutzt haben.

Richten Sie in der Blynk App ein neues Projekt ein und wählen Sie NodeMCU als Ihr Board aus. Ein Autorisierungscode wird an Ihre bei Blynk registrierte E-Mail-Adresse gesendet. Fügen Sie 3 Schaltflächen und 3 Schieberegler hinzu .

Blynk App Schieberegler und Tasten

Diese Schaltflächen und Schieberegler sollten so eingestellt sein, dass sie Werte an die virtuellen Pins V0-V5 senden. Der "Test" -Button wird unsere E-Mail-Benachrichtigung vorerst testen. Beschriften Sie die anderen zwei Tasten Power und Auto / Manuell oder etwas ähnliches, und die drei Schieberegler sind für Rot, Grün und Blau .

Öffnen Sie jetzt die Arduino IDE. Sie benötigen die Bibliotheken von Blynk und FastLED für dieses Projekt, also stellen Sie sicher, dass Sie beide installiert haben. Wenn Sie gerade mit der Arduino-IDE beginnen, sehen Sie sich unser Arduino-Handbuch für Anfänger an. Erste Schritte mit Arduino: Ein Anfängerhandbuch Erste Schritte mit Arduino: Ein Anfängerhandbuch Arduino ist eine Open-Source-Prototyping-Plattform, die auf flexiblen, benutzerfreundlichen Funktionen basiert Hard-und Software. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen .

Wir werden den Code hier in Blöcke zerlegen, aber wenn Sie lieber den vollständigen Code herunterladen möchten, können Sie ihn auf GitHub finden.

Wenn Sie sich dazu entschließen, sollten Sie dem Skript Ihre eigenen Wi-Fi-Details, den Autorisierungscode sowie den entsprechenden NodeMCU-Pin und die Anzahl der LEDs hinzufügen. Wenn Sie gerade anfangen, Programmieren zu lernen, würde ich es von Grund auf neu durchgehen, um zu lernen, wie jeder Teil funktioniert. Dies ist eine von vielen Möglichkeiten, um mit Codierung in den Griff zu bekommen. Wie man Programmierung ohne all den Stress zu lernen Wie Programmierung ohne den ganzen Stress zu lernen Vielleicht haben Sie beschlossen, die Programmierung zu verfolgen, ob für eine Karriere oder nur als Hobby. Groß! Aber vielleicht fängst du an, dich überwältigt zu fühlen. Nicht so toll. Hier ist Hilfe, um Ihre Reise zu erleichtern. Weiterlesen .

Erstellen Sie eine neue Skizze und speichern Sie sie unter einem geeigneten Namen. Stellen Sie sicher, dass Sie in den Menüs Tools > Board und Tools > Port die richtige Karte und den richtigen Port auswählen. Beginnen Sie, indem Sie die relevanten Namensräume für Blynk und FastLED einfügen:

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

Als nächstes fügen Sie einige Definitionen für FastLED hinzu:

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

Als nächstes werden wir Variablen für unsere RGB-Werte, unseren automatischen / manuellen Modus und unseren Hauptschalter deklarieren. Wir fügen auch einen Wert für eine Grundfarbe hinzu, die von der FastLED-Voreinstellung benötigt wird, die wir später verwenden werden.

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

Wenn Sie Ihre Blynk-Details hinzufügen, geben Sie hier Ihre eigenen WLAN-Daten ein:

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

Wir verwenden unsere Setup-Funktion, um unsere LEDs zu FastLED hinzuzufügen und die Kommunikation mit Blynk herzustellen.

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

Verwenden Sie if-Anweisungen in Ihrer Loop-Funktion, um verschiedene Dinge zu tun, je nachdem, in welchem ​​Modus Sie sich befinden.

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

Verwenden Sie nun die BLYNK_WRITE- Funktionen, um diese Variablen abhängig von Ihrer Auswahl in der Blynk-App zu ändern:

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

Schließlich, machen Sie eine Funktion, die eine wiederholte Folge roter Lichter als E-Mail-Benachrichtigung verwendet. Dies soll auslösen, egal was sonst passiert, was bedeutet, dass Sie immer die Benachrichtigung bekommen, auch wenn die Lichter gerade aus sind.

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

Sobald Sie diesen vollständigen Code installiert haben, verwenden Sie den Schalter / Trennschalter, um die NodeMCU von der Schaltung zu isolieren und über USB anzuschließen. Laden Sie die Skizze auf die Tafel hoch. Nach dem Hochladen trennen Sie das USB-Kabel und schließen Sie Ihr 5-V-Netzteil an. Alles in allem sollte der LED-Streifen im automatischen Modus starten, was der fill_rainbow- Modus von FastLED ist. Sie können das Benachrichtigungssignal mit der Test-Taste testen.

Testen von LED-Leuchten

Wie Sie hier sehen können, legte ich meine LEDs grob an der Seite meines Gehäuses an, so dass ich wusste, wie viele ich benötigen würde. In meinem Fall war es 44, obwohl ich einen Minitower benutze, so dass Sie vielleicht noch mehr verwenden können. Denken Sie nur daran, die Leistungsaufnahme der von Ihnen verwendeten LEDs und die von Ihrem PC bereitgestellte Stromversorgung zu berücksichtigen.

Konfigurieren von IFTTT

Wir werden die Gmail-Integration von IFTTT verwenden, um unsere Benachrichtigungssequenz auszulösen. Wenn Sie IFTTT noch nie zuvor verwendet haben, werden Sie erstaunt sein über die schiere Menge Möglichkeiten, wie Sie Ihre Lieblings-Web-Anwendungen automatisieren können. Wenn dies dann das: Verbinden und automatisieren zwei Ihrer Lieblings-Web-Apps Wenn dies dann das: Connect & Automate Zwei Ihrer Lieblings-Web-Apps Verbinden Sie zwei Ihrer Lieblings-Web-Apps auf kreative Weise miteinander. Eine Art "digitales Klebeband" nach Linden Tibbets, dem Schöpfer der App, "If This Then That" (ifttt) lässt Sie neue Anwendungen für ... Read More.

Richten Sie ein neues Applet ein. Wählen Sie unter "Dies" die Option Alle neuen E-Mails im Posteingang aus dem Google Mail- Kanal aus. Wählen Sie für "That" Maker-Webhooks und eine Webanforderung aus .

Im URL-Bereich nennen wir unseren Benachrichtigungs-Pin. Sie müssen die URL ändern, um mit Ihrem Projekt zu arbeiten. Das Format ist http: // BlynkIpAddress / YourAuthCode / pin / V5 . Sie können die Blynk-IP-Adresse finden, indem Sie in der Eingabeaufforderung ping blynk-cloud.com eingeben.

ifttt URL

Wählen Sie PUT als Methode und application / json als Inhaltstyp . Fügen Sie schließlich ["1"] zum Abschnitt " Body " hinzu und klicken Sie dann auf "Aktion erstellen" .

Jedes Mal, wenn eine E-Mail im Posteingang der Google Mail-Adresse von IFTTT eingeht, wird eine "1" -Nachricht an Virtual Pin 5 auf dem Blynk-Server gesendet, wodurch unsere Benachrichtigung ausgelöst wird. Versuchen Sie, eine E-Mail zu senden, um es zu testen. Haben Sie Geduld, IFTTT kann einige Zeit dauern!

Sie können jetzt die Test-Schaltfläche in Ihrer Blynk-App loswerden, wenn Sie möchten.

Alles zusammenfügen

Jetzt, da wir alles getestet haben, ist es an der Zeit, unsere Hardware fertigzustellen und zu installieren. Bewegen Sie Ihr Projekt vom Steckbrett auf das Proto-Board. Wenn Sie neu beim Löten sind und nach ein paar Tipps suchen, lesen Sie unsere Anleitung zum Löten Lernen Sie, wie man lötet, mit diesen einfachen Tipps und Projekten Erfahren Sie, wie man lötet, mit diesen einfachen Tipps und Projekten Sind Sie ein wenig eingeschüchtert durch den Gedanken von einem heißen Eisen und geschmolzenem Metall? Wenn Sie mit Elektronik arbeiten wollen, müssen Sie lernen, zu löten. Lasst uns helfen. Weiterlesen .

Bevor Sie Ihren Molex-Stecker an die Platine anschließen, achten Sie darauf, welche Pins Sie verwenden. Der Stecker, der von Ihrem PC-Netzteil kommt, hat vier Kabel. Die zwei schwarzen Kabel sind gemeinsame Massekabel, das gelbe Kabel ist + 12V und das rote ist + 5V. Stellen Sie sicher, dass Sie die entsprechenden Stifte der Buchse an die Platine anschließen. Ich entschied mich, nur zwei Stifte zu befestigen, um ein versehentliches Braten von Board und LEDs zu vermeiden!

Molex

Ich entschied mich, DuPont-Kabel zwischen meiner Platine und den LEDs zu befestigen, so dass die Seite des PC-Gehäuses immer noch vollständig entfernt werden kann, ohne das Proto-Board entfernen zu müssen. Ich empfehle Ihnen, Ihre LEDs am Gehäuse anzubringen und sie zunächst mit Klebeband zu sichern, nur um zu überprüfen, ob sie richtig in das Gehäuse passen, wenn sie geschlossen sind.

Hinweis: Wenn Sie Ihre LED-Streifen zusammenlöten, müssen die Datenleitungen alle in die gleiche Richtung fließen. Dies wird auf dem Streifen angegeben.

Löt-LED-Streifen

Schließlich, montieren Sie Ihre Proto-Board in Ihrem PC Tower. Da dies ein temporärer Build für mich ist, habe ich beschlossen, die Rückseite des Boards zu isolieren und mit einem Reißverschluss an der Rückseite meines Gehäuses zu befestigen. Wie auch immer Sie sich entscheiden, die Platine anzubringen, achten Sie darauf, keine Kurzschlüsse zu verursachen, und achten Sie auf die Gefahr durch statische Elektrizität an internen Komponenten.

Erleuchtet

erleuchtete LED-Beleuchtung abgeschlossen

Alles in Ordnung, sollten Sie eine voll funktionsfähige Wi-Fi-Licht mit automatischen E-Mail-Benachrichtigungen haben. Jetzt, da Sie dieses System installiert haben, können Sie den Kill-Schalter auf der Platine verwenden, um Ihren NodeMCU sicher über USB anzuschließen und den Code zu ändern. Sie könnten versuchen, eine weitere mit IFTTT integrierte Benachrichtigung hinzuzufügen (beispielsweise blaues Licht für Erwähnungen auf Twitter oder Facebook) oder Sie experimentieren mit benutzerdefinierten Einstellungen in der FastLED-Bibliothek, um Ihren Lichtern ein wenig Bewegung zu geben.

Haben Sie LEDs in Ihren PC Tower eingebaut? Hast du eine tolle Automatisierung für sie eingerichtet? Lassen Sie uns im folgenden Kommentarbereich von Ihren Projekten und Plänen wissen!

Bildquelle: David Brown / Flickr

In this article