Les tours pour PC de bureau ont parcouru un long chemin depuis l'époque des tours en plastique gris cachées sous les bureaux. Parallèlement aux boîtiers qui remplissent différentes fonctions, les boîtiers pour PC ont développé un sens de l'esthétique, avec des panneaux de verre montrant fièrement les composants et des conceptions futuristes fortes occupant le devant de la scène sur le bureau de tout fier geek.
Les installations LED sont de plus en plus courantes. Un simple 12v RVB la bande peut être achetée pour aussi peu que 1 $ par mètre et éclairera 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 cela ! Aujourd'hui, nous allons utiliser des LED Pixel pour créer un éclairage de boîtier contrôlable par Wi-Fi, avec If This Then That personnalisé (IFTTT). L'ensemble de ce système est alimenté à l'aide d'un connecteur Molex de rechange à l'intérieur de la tour, ce qui le rend totalement autonome. Mieux encore, tout ce projet coûte moins de 10 $ à réaliser.
Ce didacticiel est disponible sous forme de vidéo ci-dessous, ou continuez à lire pour la version écrite.
Nous utiliserons des LED adressables individuellement pour ce projet. Parfois connu sous le nom de Néopixels , vous avez le choix entre plusieurs modèles. Les LED utilisées ici proviennent d'un WS2812B bande, disponible pour environ 4 $ par mètre.
Nous utiliserons le NodeMCU conseil d'administration pour les contrôler. Bien que vous puissiez utiliser n'importe quelle carte compatible Arduino avec Wi-Fi, le NodeMCU est l'un de nos préférés en tant que tueur Arduino.
La seule chose dans cette liste qui sort de l'ordinaire ici est le Molex connecteur. De nos jours, de nombreux propriétaires de PC n'utilisent pas du tout de lecteur de CD dans leurs versions, bien que les alimentations soient toujours équipées d'une connexion pour eux. Nous pouvons utiliser ces lignes électriques de rechange à notre avantage. J'ai récupéré mon connecteur femelle d'un ancien lecteur de disque, bien qu'il soit disponible pour seulement 0,30 $.
Pour éviter de fouiller inutilement dans notre cas, nous allons tester notre configuration à l'aide d'une alimentation externe. Configurez votre maquette comme ceci.
Si c'est la première fois que vous configurez ce type de LED, je vous conseille de consulter d'abord notre guide détaillé sur l'utilisation de ces bandes avec Arduino.
Le commutateur coupe simplement le NodeMCU du circuit. Dans cette version, j'utiliserai en fait un simple disjoncteur à la place de l'interrupteur. Sa fonction est de nous permettre d'isoler le VIN de la carte broche alors qu'il est connecté via USB. Bien que la quantité d'énergie consommée par nos LED soit relativement faible, il est recommandé d'éviter de consommer trop d'énergie via USB.
Une fois votre maquette configurée, elle devrait ressembler à ceci :
Dans mon exemple, le condensateur et la résistance sont déjà sur la carte proto car ils ont été récupérés d'un projet plus ancien, bien que le circuit soit exactement le même.
Maintenant que le matériel est configuré, créons notre code.
Vous allez coder votre NodeMCU à l'aide de l'IDE Arduino. Pour cet exemple, nous allons configurer deux modes de fonctionnement, un interrupteur principal marche/arrêt et un signal de notification lors de la réception d'un e-mail. Nous utiliserons Blynk [Broken URL Removed], un service Web pour les appareils de l'Internet des objets pour communiquer avec notre carte.
Assurez-vous de consulter notre article d'introduction Blynk 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 e-mail enregistrée auprès de Blynk. Ajouter 3 boutons et 3 curseurs .
Ces boutons et curseurs doivent être configurés pour envoyer des valeurs aux broches virtuelles V0-V5. Le bouton "Tester" testera notre notification par e-mail 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 .
Ouvrez maintenant l'IDE Arduino. Vous aurez besoin des bibliothèques Blynk et FastLED pour ce projet, alors assurez-vous que les deux sont installées. Si vous débutez avec l'IDE Arduino, consultez notre guide du débutant Arduino.
Nous allons décomposer 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, votre code d'autorisation, ainsi que la broche NodeMCU et le nombre de LED pertinents au script. Si vous commencez tout juste à apprendre la programmation, je la parcourrais à partir de zéro afin d'apprendre comment chaque partie fonctionne. C'est l'une des nombreuses façons de se familiariser avec le codage.
Créez une nouvelle esquisse et enregistrez-la sous un nom approprié. Assurez-vous de sélectionner la bonne carte et le bon port dans les Outils> Conseil et Outils> Port menus. Commencez par inclure les espaces de noms Blynk et FastLED pertinents :
#define BLYNK_PRINT Série
#include
#include
#include "FastLED.h"
Ensuite, ajoutez quelques définitions pour FastLED :
//---Définitions FastLED et CRGB---
#define LED_PIN 3 // Broche GPIO pour les LED RVB.
#define NUM_LEDS 44 // Nombre de LED connectées.
#define BRIGHTNESS 64 // Luminosité des LED par défaut.
# définir LED_TYPE WS2812B
#define COLOR_ORDER GRB
LED CRGB[NUM_LEDS] ;
Ensuite, nous déclarerons 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 pour nos valeurs RVB (0-1023) ---
entier r =500 ;
entier g =500 ;
entier b =500 ;
//---variables pour Marche/Arrêt et basculement Auto/Manuel
int masterSwitch =1;
int autoMode =1 ;
//--- int/byte pour l'incrémentation automatique de la teinte ---
uint8_t gHue =0 ; // rotation de la "couleur de base" utilisée par de nombreux motifs
Lorsque vous ajoutez vos informations Blynk, assurez-vous de remplir vos propres informations Wi-Fi ici :
//---Code d'authentification Blynk et détails wifi---
char auth[] ="YourAuthCode";//Autorisation Blynk
char ssid[] ="VotreNomWifi" ;
char pass[] ="VotreMotDePasseWifi";
Nous utilisons notre fonction de configuration pour ajouter nos LED à FastLED et établir la communication avec Blynk.
void setup() {
// délai de sécurité à la mise sous tension
retard (3000);
Série.begin(9600);
//--- ajoutez les LEDS à FastLED et réglez la luminosité---
FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalSMD5050);
FastLED.setBrightness(LUMINOSITÉ);
#define FRAMES_PER_SECOND 120
//---démarrer la communication avec le serveur Blynk ---
Blynk.begin(auth, ssid, pass);
}
Utilisez des instructions if dans votre fonction Loop pour faire différentes choses selon le mode dans lequel vous vous trouvez.
boucle vide() {
Blynk.run();
si (masterSwitch ==0) {
pour (int je =0; je leds[i] =CRGB::Noir ;
FastLED.show();
retard(30);
}
}
if(autoMode ==0 &&masterSwitch ==1) {
pour (int je =0; je leds[i] =CRGB(r, g, b);
FastLED.show();
retard(30);
}
}
if(autoMode ==1 &&masterSwitch ==1) {
fill_rainbow( leds, NUM_LEDS, gHue, 7);
// envoie le tableau 'leds' à la bande LED réelle
FastLED.show();
// insère un délai pour garder le framerate modeste
FastLED.delay(1000/FRAMES_PER_SECOND);
TOUTES_N_MILLISECONDES(20) {
gHue++ ; // cycle lentement la "couleur de base" à travers l'arc-en-ciel
}
}
}
Maintenant, utilisez le BLYNK_WRITE fonctions pour modifier ces variables en fonction de ce que vous sélectionnez dans l'application Blynk :
//---Maître activé/désactivé---
BLYNK_WRITE(V0) {
masterSwitch =param.asInt();
}
//--- Valeur du curseur rouge---
BLYNK_WRITE(V1) {
r =param.asInt();
}
//--- Valeur du curseur vert---
BLYNK_WRITE(V2) {
g =param.asInt();
}
//--- Valeur du curseur bleu---
BLYNK_WRITE(V3) {
b =param.asInt();
}
//--- Basculer entre les modes Auto/Manuel ---
BLYNK_WRITE(V4) {
autoMode =param.asInt();
}
Enfin, créez une fonction qui provoque l'utilisation d'une séquence répétée de feux rouges comme notification par e-mail. Ceci est conçu pour se déclencher quoi qu'il arrive, ce qui signifie que vous recevrez toujours la notification, même si les lumières sont actuellement éteintes.
//---Voyant de notification par e-mail---
BLYNK_WRITE(V5) {
int g =param.asInt();
si(g ==1) {
for(int a =0; a <10; a++) {
pour (int je =0; je led[i] =CRGB(1023, 0, 0);
FastLED.show();
retard(10);
FastLED.clear();
retard(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 le croquis sur le 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 fill_rainbow mode de FastLED. Vous pouvez tester le signal de notification à l'aide du bouton de test.
Comme vous pouvez le voir ici, j'ai disposé mes LED à peu près sur le côté de mon boîtier pour savoir combien j'aurais besoin. Dans mon cas, c'était 44, bien que j'utilise une mini-tour, vous pourrez donc peut-être 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 que peut fournir l'alimentation de votre PC.
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é de la quantité de façons dont vous pouvez automatiser vos applications Web préférées.
Configurez une nouvelle applet. Pour "Ceci", choisissez Tout nouvel e-mail dans la boîte de réception depuis Gmail canal. Pour "Ça", sélectionnez Maker Webhooks et Faire une demande Web .
La section URL est l'endroit où nous appelons notre épingle 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.
Choisissez METTRE comme Méthode , et application/json comme type de contenu . Enfin, ajoutez ["1"] au corps section, puis cliquez sur Créer une action .
Désormais, chaque fois qu'un e-mail arrivera 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 e-mail pour le tester. Soyez patient, IFTTT peut prendre du temps !
Vous pouvez maintenant vous débarrasser du bouton Tester dans votre application Blynk si vous le souhaitez.
Maintenant que nous avons tout testé, il est temps de terminer et d'installer notre matériel. Déplacez votre projet de la planche à pain vers le proto-board. Si vous débutez dans la soudure et que vous cherchez quelques conseils, consultez notre guide de soudure.
Avant de fixer votre connecteur Molex à la carte, notez les broches que vous utiliserez. Le connecteur mâle provenant de l'alimentation de votre PC comportera 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 à la carte. J'ai choisi de n'attacher que deux broches pour éviter de griller accidentellement ma carte et mes LED !
J'ai décidé de fixer des câbles DuPont entre ma carte et les LED afin que le côté du boîtier du PC puisse toujours être entièrement retiré sans avoir à retirer la carte proto. Je vous 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'intègrent correctement dans le boîtier lorsqu'elles sont fermées.
Remarque : Lorsque vous soudez vos bandes LED ensemble, les lignes de données doivent toutes circuler dans la même direction. Cela sera indiqué sur la bande.
Enfin, montez votre carte proto à l'intérieur de votre tour PC. Comme il s'agit d'une construction temporaire pour moi, j'ai choisi d'isoler l'arrière de la planche et de l'attacher à l'arrière de mon boîtier. Quelle que soit la façon dont vous décidez de fixer la carte, veillez à ne pas provoquer de courts-circuits et méfiez-vous du danger posé par l'électricité statique sur les composants internes.
Tout va bien, vous devriez avoir une lumière Wi-Fi entièrement fonctionnelle avec des notifications automatiques par e-mail. Maintenant que vous avez ce système en place, vous pouvez utiliser le kill switch 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 des commentaires ci-dessous !
Crédit image :David Brown/Flickr