Ajouter un éclairage contrôlé Wi-Fi à votre ordinateur avec NodeMCU

Apprenez à animer votre boîtier d'ordinateur en construisant un système Neopixel contrôlé par Wi-Fi DIY avec NodeMCU et une programmation de base.

Apprenez à animer votre boîtier d'ordinateur en construisant un système Neopixel contrôlé par Wi-Fi DIY avec NodeMCU et une programmation de base.
Publicité

Les tours de PC de bureau ont parcouru un long chemin depuis les jours de tours en plastique gris cachés sous des bureaux. En plus des boîtiers qui remplissent différentes fonctions, les boîtiers PC ont évolué avec un sens de l'esthétique, avec des panneaux de verre exhibant fièrement des composants, et de forts designs futuristes prenant le devant de la scène sur n'importe quel bureau de geek.

Les installations LED deviennent de plus en plus courantes. Une simple bande RVB 12v peut être achetée pour aussi peu que 1 $ par mètre et allume parfaitement l'intérieur d'un boîtier (avec presque tout le reste).

Cependant, nous voulons faire quelque chose d'un peu plus spécial que ça! Aujourd'hui, nous utiliserons des LED Pixel pour créer un éclairage de boîtier contrôlable Wi-Fi, avec des notifications personnalisées If If Then That (IFTTT). Tout ce système est alimenté par un connecteur Molex de rechange à l'intérieur de la tour, ce qui le rend totalement autonome. Le meilleur de tous, tout ce projet coûte moins de 10 $ à faire.

Ce tutoriel est disponible sous forme de vidéo ci-dessous, ou continuez à lire pour la version écrite.

Lumières avec des cerveaux

Nous utiliserons des LED adressables individuellement pour ce projet. Parfois connu sous le nom Neopixels, il existe différents modèles à choisir. Les LED utilisées ici proviennent d'une bande WS2812B, disponible pour environ 4 $ par mètre.

Nous allons utiliser le tableau NodeMCU pour les contrôler. Alors que vous pourriez utiliser n'importe quelle carte compatible Arduino avec Wi-Fi, le NodeMCU est un de nos préférés en tant que tueur Arduino Rencontrez le tueur Arduino: ESP8266 Rencontrez le tueur Arduino: ESP8266 Et si je vous disais qu'il y a une carte de développement compatible Arduino avec Wi-Fi intégré pour moins de 10 $? Eh bien, il y a. Lire la suite .

De quoi as-tu besoin

  1. Bande LED 1 x 5v Pixel, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU (3 $ sur AliExpress)
  3. 1 x 220-500 Ohm résistance
  4. 1 x 100-1000 condensateur microFarad
  5. 1 x interrupteur à bascule ou disjoncteur
  6. 1 x connecteur Molex femelle
  7. 1 x planche à pain
  8. 1 x alimentation 5v (pour tester)
  9. 1 x Proto-board et fil (pour l'installation du circuit)
  10. Divers fils de raccordement
  11. Fer à souder et à souder

La seule chose dans cette liste qui sort de l'ordinaire est le connecteur Molex . De nos jours, de nombreux propriétaires de PC n'utilisent pas du tout un lecteur de CD dans leurs versions, même si les blocs d'alimentation sont toujours équipés d'une connexion pour eux. Nous pouvons utiliser ces lignes électriques de rechange à notre avantage. J'ai récupéré mon connecteur femelle à partir d'un ancien lecteur de disque, mais ils sont disponibles pour aussi peu que 0, 30 $.

Construisez votre circuit

Pour éviter de fouiller inutilement dans notre cas, nous allons tester notre configuration en utilisant une alimentation externe. Configurez votre planche à pain comme ça.

planche à pain menée

Si c'est la première fois que vous installez ce type de LED, je vous conseille de regarder d'abord notre guide détaillé pour utiliser ces bandes avec Arduino.

Le commutateur casse simplement le NodeMCU du circuit. Dans cette construction, je vais utiliser un simple disjoncteur à la place de l'interrupteur. Sa fonction est de nous permettre d'isoler la broche VIN de la carte pendant qu'elle est connectée via USB. Bien que la quantité de puissance que nos LED dessinent soit relativement faible, il est recommandé d'éviter de tirer trop d'énergie via USB.

Une fois que votre maquette est installée, elle devrait ressembler à ceci:

configuration de la maquette

Dans mon exemple, le condensateur et la résistance sont déjà sur le proto-board car ils ont été récupérés à partir d'un projet plus ancien, bien que le circuit soit exactement le même.

Maintenant que nous avons le matériel configuré, créons notre code.

Les cerveaux de l'opération

Vous allez coder votre NodeMCU en utilisant l'IDE Arduino. Pour cet exemple, nous allons configurer deux modes de fonctionnement, un interrupteur principal marche / arrêt, et un signal de notification lorsqu'un email est reçu. Nous utiliserons Blynk, un service Web pour les appareils de l'Internet des Objets, pour communiquer avec notre conseil d'administration.

Assurez-vous de jeter un œil à notre article d'introduction Blynk Premiers pas avec Blynk: Simple DIY IoT Devices Premiers pas avec Blynk: Simple DIY IoT Devices Blynk est un service d'Internet des objets (IoT) conçu pour contrôler et lire à distance les données des capteurs de vos appareils. rapide et facile que possible. Lire la suite si vous ne l'avez jamais utilisé auparavant.

Dans l'application Blynk, configurez un nouveau projet et sélectionnez NodeMCU comme carte. Un code d'autorisation sera envoyé à votre adresse email enregistrée chez Blynk. Ajoutez 3 boutons et 3 curseurs .

curseurs et boutons de l'application blynk

Ces boutons et curseurs doivent être réglés pour envoyer des valeurs à Virtual Pins V0-V5. Le bouton "Test" testera notre notification par email pour le moment. Étiquetez les deux autres boutons Alimentation et Auto / Manuel ou quelque chose de similaire, et les trois curseurs sont pour Rouge, Vert et Bleu .

Maintenant, ouvrez l'IDE Arduino. Vous aurez besoin des bibliothèques Blynk et FastLED pour ce projet, alors assurez-vous d'avoir installé les deux. Si vous débutez avec l'IDE Arduino, consultez notre guide du débutant Arduino Premiers pas avec Arduino: Guide du débutant Premiers pas avec Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique open-source basée sur un système flexible et facile à utiliser matériel et logiciel. Il est destiné aux artistes, designers, amateurs et toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite .

Nous diviserons le code en morceaux ici, mais si vous préférez simplement télécharger le code complet, vous pouvez le trouver sur GitHub.

Si vous décidez de le faire, assurez-vous d'ajouter vos propres détails Wi-Fi, le code d'autorisation et la broche NodeMCU et le nombre de voyants correspondants au script. Si vous commencez tout juste à apprendre la programmation, je la passerais de zéro afin d'apprendre comment fonctionne chaque partie. C'est l'une des nombreuses façons de se familiariser avec le codage Comment apprendre la programmation sans tout le stress Comment apprendre la programmation sans tout le stress Peut-être que vous avez décidé de poursuivre la programmation, que ce soit pour une carrière ou tout simplement un passe-temps. Génial! Mais peut-être que vous commencez à vous sentir dépassé. Pas si bien. Voici de l'aide pour faciliter votre voyage. Lire la suite .

Créez une nouvelle esquisse et enregistrez-la avec un nom approprié. Veillez à sélectionner la carte et le port corrects dans les menus Outils > Carte et Outils > Port . Commencez par inclure les espaces de noms Blynk et FastLED pertinents:

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

Ensuite, ajoutez quelques définitions pour 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]; 

Ensuite, nous allons déclarer des variables pour nos valeurs RVB, notre mode automatique / manuel, et notre commutateur principal. Nous ajoutons également une valeur pour une couleur de base requise par le préréglage FastLED que nous utiliserons plus tard.

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

Lorsque vous ajoutez vos coordonnées Blynk, assurez-vous de remplir vos propres informations Wi-Fi ici:

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

Nous utilisons notre fonction Setup pour ajouter nos LED à FastLED et établir une communication avec 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); } 

Utilisez if-statements dans votre fonction Loop pour faire des choses différentes selon le mode dans lequel vous vous trouvez.

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

Maintenant, utilisez les fonctions BLYNK_WRITE pour modifier ces variables en fonction de ce que vous sélectionnez dans l'application Blynk:

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

Enfin, créez une fonction qui provoque l'utilisation d'une séquence répétée de lumières rouges comme notification par e-mail. Ceci est conçu pour déclencher n'importe quoi d'autre, ce qui signifie que vous recevrez toujours la notification, même si les lumières sont éteintes.

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

Une fois que vous avez ce code complet en place, utilisez le commutateur / disjoncteur pour isoler le NodeMCU du circuit, et branchez-le via USB. Téléchargez l'esquisse au tableau. Une fois téléchargé, déconnectez le câble USB et connectez votre alimentation 5v. Tout va bien la bande LED devrait démarrer en mode automatique, qui est le mode fill_rainbow de FastLED. Vous pouvez tester le signal de notification en utilisant le bouton de test.

essais led lumières

Comme vous pouvez le voir ici, j'ai étalé mes LEDs sur le côté de mon boîtier, donc je savais combien j'en aurais besoin. Dans mon cas, il était 44, bien que j'utilise une mini-tour, donc vous pouvez en utiliser beaucoup plus. Assurez-vous simplement de prendre en compte la consommation d'énergie des LED que vous utilisez et la quantité d'énergie fournie par votre PC.

Configuration de IFTTT

Nous utiliserons l'intégration Gmail d'IFTTT pour déclencher notre séquence de notification. Si vous n'avez jamais utilisé IFTTT auparavant, vous serez étonné par la quantité de façons dont vous pouvez automatiser vos applications web préférées. Si cela alors: Connectez et automatisez deux de vos applications Web préférées Si c'est alors: Connectez et automatisez Deux de vos applications Web favorites Connectez deux de vos applications Web préférées de manière créative. Une sorte de "ruban adhésif numérique" selon Linden Tibbets, le créateur de l'application, If This Then That (ifttt) vous permet de trouver de nouvelles utilisations pour ... Lire la suite.

Configurez une nouvelle applet. Pour "Ceci", choisissez Tout nouvel e-mail dans la boîte de réception du canal Gmail . Pour "Cela", sélectionnez Maker Webhooks et Effectuer une requête Web .

La section URL est l'endroit où nous appelons notre broche de notification. Vous devrez modifier l'URL pour travailler avec votre projet. Le format est http: // BlynkIpAddress / YourAuthCode / pin / V5 . Vous pouvez trouver l'adresse IP de Blynk en tapant ping blynk-cloud.com dans l'invite de commande.

ifttt url

Choisissez PUT comme méthode et application / json comme type de contenu . Enfin, ajoutez ["1"] à la section Corps, puis cliquez sur Créer une action .

Maintenant, chaque fois qu'un email arrive dans la boîte de réception de l'adresse Gmail associée à IFTTT, il enverra un message "1" à Virtual Pin 5 sur le serveur Blynk, ce qui déclenchera notre notification. Essayez de vous envoyer un email pour le tester. Soyez patient, IFTTT peut prendre du temps!

Vous pouvez maintenant vous débarrasser du bouton Test dans votre application Blynk si vous le souhaitez.

Mettre tous ensemble

Maintenant que nous avons tout testé, il est temps de finir et d'installer notre matériel. Déplacez votre projet de la planche à pain sur le proto-board. Si vous êtes nouveau à la soudure et cherchez quelques conseils, consultez notre guide de soudure Apprenez à souder, avec ces simples conseils et projets Apprenez à souder, avec ces conseils simples et projets Êtes-vous un peu intimidé par la pensée d'un fer chaud et de métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous aurez besoin d'apprendre à souder. Laissez-nous vous aider. Lire la suite .

Avant de fixer votre connecteur Molex sur la carte, notez les broches que vous utiliserez. Le connecteur mâle provenant de l'alimentation de votre PC aura quatre câbles. Les deux câbles noirs sont des câbles de masse communs, le câble jaune est + 12v, et le rouge est + 5v. Assurez-vous de fixer les broches correspondantes du connecteur femelle sur la carte. J'ai choisi de ne fixer que deux broches pour éviter de frire accidentellement ma carte et les LEDs!

molex

J'ai décidé d'attacher les câbles DuPont entre ma carte et les LED de sorte que le côté du boîtier de l'ordinateur puisse encore être retiré complètement sans avoir à retirer le proto-board. Je suggère de disposer vos LED sur le boîtier et de les fixer avec du ruban adhésif pour commencer, juste pour vérifier qu'elles s'insèrent correctement dans le boîtier lorsqu'il est fermé.

Remarque: Lorsque vous soudez vos bandes de LED ensemble, les lignes de données doivent tous circuler dans la même direction. Cela sera indiqué sur la bande.

bandes à souder

Enfin, montez votre proto-board dans votre tour PC. Comme il s'agit d'une construction temporaire pour moi, j'ai choisi d'isoler le dos du tableau, et je l'ai attaché à l'arrière de mon boîtier. Cependant, vous décidez de fixer le tableau, veillez à ne pas provoquer de court-circuit, et méfiez-vous du danger que représente l'électricité statique sur les composants internes.

Éclairé

éclairage led éclairé complet

Tout va bien, vous devriez avoir une lumière entièrement fonctionnelle Wi-Fi avec des notifications par email automatiques. Maintenant que vous avez ce système en place, vous pouvez utiliser le commutateur kill sur la carte afin de brancher votre NodeMCU en toute sécurité via USB et changer le code. Vous pouvez essayer d'ajouter une autre notification intégrée à IFTTT (lumière bleue pour les mentions sur Twitter ou Facebook par exemple), ou expérimenter avec des paramètres personnalisés dans la bibliothèque FastLED pour donner un peu de mouvement à vos lumières.

Avez-vous installé des LED dans votre tour PC? Avez-vous mis en place une automatisation impressionnante pour eux? Faites-nous part de vos projets et projets dans la section commentaire ci-dessous!

Crédit d'image: David Brown / Flickr

In this article