Adicione luzes controladas por Wi-Fi ao seu computador com o NodeMCU

Aprenda a animar o gabinete do seu computador construindo um sistema Neopixel controlado por Wi-Fi com o NodeMCU e alguns programas básicos.

Aprenda a animar o gabinete do seu computador construindo um sistema Neopixel controlado por Wi-Fi com o NodeMCU e alguns programas básicos.
Propaganda

As torres de computadores de mesa percorreram um longo caminho desde os dias das torres de plástico cinza escondidas sob as mesas. Ao lado de casos que cumprem funções diferentes, os gabinetes de PC evoluíram com um senso de estética, com painéis de vidro orgulhosamente exibindo componentes e fortes designs futuristas tomando o centro das atenções em qualquer mesa do totó.

Instalações de LED estão se tornando cada vez mais comuns. Uma tira simples de 12v RGB pode ser comprada por apenas US $ 1 por metro e acenderá perfeitamente o interior de uma caixa (junto com quase qualquer outra coisa).

No entanto, queremos fazer algo um pouco mais especial do que isso! Hoje, usaremos LEDs Pixel para criar iluminação de caixa controlável por Wi-Fi, com notificações personalizadas If This Then That (IFTTT). Todo este sistema é alimentado usando um conector Molex sobressalente dentro da torre, tornando-o totalmente auto-contido. O melhor de tudo, todo esse projeto custa menos de US $ 10 para ser feito.

Este tutorial está disponível em formato de vídeo abaixo, ou continue lendo para a versão escrita.

Luzes com cérebros

Nós estaremos usando LEDs endereçáveis ​​individualmente para este projeto. Às vezes conhecido como Neopixels, existem vários modelos para escolher. Os LEDs usados ​​aqui são de uma tira WS2812B, disponível por cerca de US $ 4 por metro.

Nós estaremos usando a placa NodeMCU para controlá-los. Embora você possa usar qualquer placa compatível com Arduino com Wi-Fi, o NodeMCU é nosso favorito como um matador de Arduino Conheça o Arduino Killer: ESP8266 Conheça o Arduino Killer: ESP8266 E se eu dissesse que há uma placa de desenvolvimento compatível com Arduino com Wi-Fi embutido por menos de US $ 10? Bem, existe. Consulte Mais informação .

O que você precisa

  1. Fita LED de 1x5v Pixel, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 no AliExpress)
  3. 1 resistor 220 x 500 Ohm
  4. 1 x 100-1000 capacitor microFarad
  5. 1 x interruptor de alavanca ou disjuntor
  6. 1 x conector fêmea Molex
  7. 1 x tábua de pão
  8. 1 x 5v fonte de alimentação (para teste)
  9. 1 x Proto-board e wire (para instalação do circuito)
  10. Vários fios de conexão
  11. Ferro de solda e solda

A única coisa nesta lista que é fora do comum aqui é o conector Molex . Muitos donos de PCs atualmente não usam uma unidade de CD em suas versões, embora as fontes de alimentação ainda tenham uma conexão para elas. Podemos usar essas linhas de energia a nosso favor. Recuperei meu conector fêmea de uma unidade de disco antiga, embora eles estejam disponíveis por apenas US $ 0, 30.

Construa seu circuito

Para evitar bisbilhotar desnecessariamente no nosso caso, vamos testar nossa configuração usando uma fonte de alimentação externa. Configure sua breadboard assim.

caso de papelão led

Se esta for sua primeira vez configurando este tipo de LEDs, eu aconselharia a procurar nosso guia detalhado para usar estas tiras com o Arduino primeiro.

O interruptor simplesmente quebra o NodeMCU do circuito. Neste build eu vou realmente usar um disjuntor simples no lugar do switch. Sua função é permitir que isolemos o pino VIN da placa enquanto ela estiver conectada via USB. Embora a quantidade de energia que os nossos LEDs vão consumir seja relativamente pequena, é uma boa prática evitar puxar muita energia via USB.

Uma vez que sua breadboard esteja configurada, ela deve ser algo como isto:

configuração de tábua de pão

No meu exemplo, o capacitor e o resistor já estão em placa protetora, uma vez que foi recuperado de um projeto antigo, embora o circuito seja exatamente o mesmo.

Agora que temos o hardware configurado, vamos criar nosso código.

Os cérebros da operação

Você estará codificando seu NodeMCU usando o Arduino IDE. Para este exemplo, vamos configurar dois modos de operação, um interruptor liga / desliga mestre e um sinal de notificação quando um e-mail é recebido. Estaremos usando o Blynk, um serviço da Web para dispositivos da Internet of Things para se comunicar com nossa diretoria.

Certifique-se de verificar nosso artigo introdutório sobre Blynk Introdução ao Blynk: Dispositivos IOT DIY simples Introdução ao Blynk: dispositivos DIY IoT simples O Blynk é um serviço de Internet das Coisas (IoT) projetado para fazer controle remoto e ler dados de sensores de seus dispositivos. rápido e fácil quanto possível. Leia mais se você nunca usou antes.

No aplicativo Blynk, configure um novo projeto e selecione NodeMCU como sua placa. Um código de autorização será enviado para o seu endereço de e-mail registrado no Blynk. Adicione 3 botões e 3 controles deslizantes .

sliders e botões do aplicativo blynk

Esses botões e controles deslizantes devem ser configurados para enviar valores para os Virtual Pins V0-V5. O botão "Test" testará nossa notificação por e-mail por enquanto. Rotule os outros dois botões Power e Auto / Manual ou algo semelhante, e os três controles deslizantes são para Vermelho, Verde e Azul .

Agora abra o Arduino IDE. Você precisará das bibliotecas Blynk e FastLED para este projeto, portanto, certifique-se de ter ambos instalados. Se você está apenas começando com o Arduino IDE, confira nosso guia para iniciantes do Arduino Introdução ao Arduino: um guia para iniciantes Introdução ao Arduino: um guia para iniciantes Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em flexível, fácil de usar hardware e software. É destinado a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. Consulte Mais informação .

Vamos dividir o código em pedaços aqui, mas se você preferir simplesmente baixar o código completo, você pode encontrá-lo no GitHub.

Se você decidir fazer isso, adicione seus próprios detalhes de Wi-Fi, código de autorização e o pino NodeMCU relevante e o Número de LEDs ao script. Se você está apenas começando a aprender a programar, eu passaria por ele do zero para aprender como cada parte funciona. Esta é uma das muitas maneiras de se familiarizar com a codificação Como aprender programação sem todo o estresse Como aprender programação sem todo o estresse Talvez você tenha decidido seguir a programação, seja para uma carreira ou apenas como um hobby. Ótimo! Mas talvez você esteja começando a se sentir sobrecarregado. Não é tão bom. Aqui está a ajuda para facilitar sua jornada. Consulte Mais informação .

Crie um novo esboço e salve-o com um nome apropriado. Certifique-se de selecionar a placa e a porta corretas nos menus Ferramentas > Placa e Ferramentas > Porta . Comece incluindo os espaços de nome relevantes Blynk e FastLED:

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

Em seguida, adicione algumas definições para o 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]; 

Em seguida, vamos declarar variáveis ​​para nossos valores RGB, nosso modo automático / manual e nosso interruptor mestre. Também adicionamos um valor para uma cor base exigida pela predefinição FastLED que usaremos posteriormente.

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

Ao adicionar seus detalhes do Blynk, preencha seus próprios detalhes do Wi-Fi aqui:

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

Usamos nossa função de configuração para adicionar nossos LEDs ao FastLED e estabelecer comunicação com o 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); } 

Use instruções if na sua função Loop para fazer coisas diferentes, dependendo do modo em que você está.

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

Agora, use as funções BLYNK_WRITE para alterar essas variáveis ​​dependendo do que você selecionar no aplicativo 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(); } 

Finalmente, faça uma função que faça com que uma seqüência repetida de luzes vermelhas seja usada como sua notificação por email. Isso foi projetado para acionar independentemente do que estiver acontecendo, o que significa que você sempre receberá a notificação, mesmo que as luzes estejam apagadas.

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

Depois de ter esse código completo no lugar, use o interruptor / disjuntor para isolar o NodeMCU do circuito e conecte-o via USB. Carregue o esboço no quadro. Depois de carregado, desconecte o cabo USB e conecte sua fonte de alimentação de 5v. Estando tudo bem, a faixa de LEDs deve iniciar no modo automático, que é o modo fill_rainbow do FastLED. Você pode testar o sinal de notificação usando o botão de teste.

testando luzes led

Como você pode ver aqui, eu coloquei meus LEDs mais ou menos do lado do meu gabinete, então eu sabia quantos precisaria. No meu caso, era 44, embora eu use uma mini torre, então você pode usar muito mais. Apenas certifique-se de levar em consideração o consumo de energia dos LEDs que você usa e o quanto a fonte de alimentação de seu PC pode fornecer.

Configurando o IFTTT

Usaremos a integração do Gmail do IFTTT para acionar nossa sequência de notificação. Se você nunca usou o IFTTT antes, ficará surpreso com a grande quantidade de maneiras de automatizar seus aplicativos da Web favoritos. Se isso, então: Conecte e automatize quaisquer dois de seus aplicativos favoritos da Web se isso, então: Conecte e automatize Quaisquer dois de seus aplicativos da Web favoritos Conecte quaisquer dois de seus aplicativos da Web favoritos de maneiras criativas. Uma espécie de "fita adesiva digital", de acordo com Linden Tibbets, o criador do aplicativo, If This Then That (ifttt) permite que você encontre novos usos para ... Leia Mais.

Configure um novo applet. Para "This", escolha Qualquer novo email na caixa de entrada do canal do Gmail . Para “That”, selecione Maker Webhooks e faça uma solicitação da web .

A seção de URL é onde nós chamamos nosso pino de notificação. Você precisará modificar o URL para trabalhar com seu projeto. O formato é http: // BlynkIpAddress / YourAuthCode / pin / V5 . Você pode encontrar o ip Blynk digitando ping blynk-cloud.com no prompt de comando.

ifttt url

Escolha PUT como o método e application / json como o tipo de conteúdo . Por fim, adicione [“1”] à seção Corpo e clique em Criar ação .

Agora, toda vez que um email chegar na caixa de entrada do endereço do Gmail associado ao IFTTT, ele enviará uma mensagem "1" para o Virtual Pin 5 no servidor Blynk, o que acionará nossa notificação. Tente enviar um e-mail para testá-lo. Seja paciente, o IFTTT pode levar algum tempo!

Agora você pode se livrar do botão de teste em seu aplicativo Blynk, se desejar.

Juntando Tudo

Agora que temos tudo testado, é hora de terminar e instalar nosso hardware. Mova seu projeto da placa de montagem para o proto-board. Se você é novo em soldagem e está procurando por algumas dicas, confira nosso guia de solda Aprenda como soldar, com estas dicas e projetos simples Aprenda como soldar, com estas dicas e projetos simples Você está um pouco intimidado pelo pensamento? de ferro quente e metal fundido? Se você quiser começar a trabalhar com eletrônicos, precisará aprender a soldar. Deixe-nos ajudar. Consulte Mais informação .

Antes de conectar seu conector Molex à placa, observe quais pinos você usará. O conector macho vindo da fonte de alimentação do seu PC terá quatro cabos. Os dois cabos pretos são cabos de aterramento comuns, o cabo amarelo é + 12v e o vermelho é + 5v. Certifique-se de conectar os pinos correspondentes do conector fêmea à placa. Eu escolhi unir apenas dois pinos para evitar fritar acidentalmente minha placa e os LEDs!

molex

Decidi conectar os cabos da DuPont entre minha placa e os LEDs para que o lado da caixa do PC ainda possa ser removido totalmente sem ter que remover a placa protetora. Eu sugiro colocar seus LEDs no estojo e prendê-los com fita adesiva para começar, apenas para verificar se eles se encaixam corretamente dentro do estojo quando fechados.

Nota: Quando você está soldando suas fitas LED, as linhas de dados precisam fluir na mesma direção. Isso será denotado na faixa.

tiras conduzidas da solda

Finalmente, monte o seu protótipo dentro da sua torre de PC. Como essa é uma construção temporária para mim, optei por isolar o verso do quadro e prendê-lo à parte de trás do meu caso. No entanto, você decide prender a placa, tenha cuidado para não causar nenhum curto-circuito e desconfie do perigo representado pela eletricidade estática nos componentes internos.

Iluminado

iluminação led iluminada completa

Estando tudo bem, você deve ter uma luz totalmente funcional operada por Wi-Fi com notificações automáticas por e-mail. Agora que você tem este sistema no lugar, você pode usar o interruptor kill na placa para conectar seu NodeMCU com segurança via USB e mudar o código. Você poderia tentar adicionar outra notificação integrada com o IFTTT (luz azul para menções no Twitter ou no Facebook, por exemplo) ou experimentar configurações personalizadas na biblioteca do FastLED para dar um pouco de movimento às suas luzes.

Você instalou LEDs na sua torre de PC? Você configurou alguma automação incrível para eles? Deixe-nos saber sobre seus projetos e planos na seção de comentários abaixo!

Crédito de imagem: David Brown / Flickr

In this article