Tutorial ESP32 54/55 - Defina a Cor da Fita de LED WS2812 via Wifi | Kit de Aprendizado IoT ESP32 da SunFounder

Tutorial ESP32 54/55 - Defina a Cor da Fita de LED WS2812 via Wifi | Kit de Aprendizado IoT ESP32 da SunFounder

Neste tutorial, aprenderemos como controlar a cor de uma fita de LED RGB WS2812 usando um microcontrolador ESP32 via Wi-Fi. Ao utilizar um seletor de cores, você pode escolher diferentes cores do seu dispositivo móvel ou desktop e enviar essas informações para a fita de LED. Este projeto demonstra as capacidades do ESP32, permitindo uma interação fluida com a iluminação LED através de uma interface web.

ESP32-54-tela-móvel-principal

O microcontrolador ESP32 é equipado com Wi-Fi e Bluetooth, tornando-o uma escolha versátil para aplicações IoT. Neste projeto, vamos nos concentrar na funcionalidade do Wi-Fi para controlar a fita de LED. Os usuários poderão escolher cores dinamicamente, criando uma experiência visualmente envolvente. Para mais clareza sobre este projeto, não deixe de conferir o vídeo (no vídeo em 00:00).

Hardware Explicado

Os componentes principais deste projeto incluem o microcontrolador ESP32 e a fita de LED WS2812. O ESP32 é um microcontrolador poderoso com capacidades de Wi-Fi integradas, permitindo comunicação e controle sem fio.

A fita LED WS2812 consiste em LEDs RGB endereçáveis individualmente, permitindo que você defina a cor de cada LED de forma independente. Cada LED incorpora um circuito de controle e um LED RGB dentro de um único pacote, o que simplifica a fiação e o controle de múltiplos LEDs.

Detalhes da Ficha Técnica

Fabricante Worldsemi
Número da peça WS2812B
Tensão de lógica/entrada e saída 3,5-5,3 V
Tensão de alimentação 5 V
Corrente de saída (por canal) 20 mA
Corrente de pico (por canal) 60 mA
Orientação sobre a frequência PWM 400 Hz
Lugares de limiar lógico de entrada 0,3 × VDD (baixo), 0,7 × VDD (alto)
Queda de tensão / RDS(on)/ saturação 0,5 V
Limites térmicos -40 a +80 °C
Pacote 5050 SMD
Notas / variantes Disponível em vários comprimentos e configurações.

  • Garanta uma alimentação elétrica adequada para evitar danos aos LEDs.
  • Use um terra comum entre o ESP32 e a fita de LED.
  • Mantenha as linhas de dados curtas para evitar a degradação do sinal.
  • Considere adicionar um capacitor (1000 µF) entre a fonte de alimentação para estabilidade.
  • Use um resistor (470 Ω) na linha de dados para integridade do sinal.

Instruções de Fiação

ESP32-12-WS2812-wiring

Para conectar o ESP32 à fita de LED WS2812, conecte os componentes da seguinte forma: Primeiro, conecte o pino de 5V da fita de LED à saída de 5V do ESP32. Em seguida, conecte o pino de terra (GND) da fita de LED a um pino GND no ESP32. Por fim, conecte o pino de dados da fita de LED (geralmente rotulado como DI ou Data In) ao pino GPIO 13 no ESP32. Certifique-se de que todas as conexões estejam seguras para garantir o funcionamento adequado.

No vídeo, métodos alternativos de fiação são brevemente mencionados, mas a configuração descrita aqui é a configuração recomendada para desempenho ideal (no vídeo às 03:00).

Exemplos de Código e Passo a Passo

O código começa incluindo as bibliotecas necessárias para controlar a fita de LED WS2812 e configurar o servidor web. O pino do LED é definido comoLED_PINe o número de LEDs na fita é definido comNUM_LEDS.

#define LED_PIN 13 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800); 

Este trecho inicializa a biblioteca NeoPixel e configura a fita de LED no pino especificado.Adafruit_NeoPixelobjeto,strip, é o que você usará para controlar as cores do LED.

Em seguida, o código inicializa o Wi-Fi e configura um servidor web para gerenciar solicitações recebidas. O SSID e a senha da rede são definidos, permitindo que o ESP32 se conecte ao Wi-Fi.

const char *ssid = "your_SSID";
const char *password = "your_PASSWORD";
WebServer server(80);

Neste excerto, substituayour_SSIDeyour_PASSWORDcom suas credenciais de Wi-Fi atuais. Essa conexão permite que o ESP32 se comunique com dispositivos na mesma rede, possibilitando o controle remoto da fita de LED.

A função principal para mudar a cor do LED ésetColor(), que itera por cada LED e define sua cor com base nos valores RGB selecionados.

void setColor() {
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, valueR, valueG, valueB); // Set the color of the i-th LED
    strip.show(); // Update the LED strip with the new colors
    delay(10); // Wait for 10 milliseconds
  }
}

Esta função garante que cada LED na fita seja atualizado com a cor selecionada. O atraso permite que os LEDs mudem de cor suavemente. À medida que você interage com a interface web, esta função será chamada para refletir suas escolhas de cor.

Demonstração / O que Esperar

ESP32-54-tela-móvel-1
ESP32-54-tela-móvel-t-2

Quando a configuração estiver concluída, você deverá conseguir acessar a interface da web pelo endereço IP do ESP32. Você verá um seletor de cores que permite escolher qualquer cor, que será então enviada para a fita de LED. Se o ESP32 perder a conexão Wi-Fi, a fita irá piscar uma cor de alerta, indicando o problema (no vídeo às 14:30).

Os erros comuns incluem ligações incorretas, que podem fazer com que os LEDs não acendam, ou o uso de combinações incorretas de SSID/senha que impedem o ESP32 de se conectar à rede. Sempre verifique suas conexões e credenciais.

Marcação de tempo do vídeo

  • 00:00 Iniciar
  • 2:01 Introdução ao projeto
  • 3:09 Docs
  • 3:47 Explicação da cor RGB
  • 7:47 Fiação
  • Código Arduino para WS2812 com WIFI explicado às 8:40
  • 19:35 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 21:17 Demonstração de controle de fita de LED via wifi

Imagens

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-54-movile-screen-1
ESP32-54-movile-screen-1
ESP32-54-movile-screen-t-2
ESP32-54-movile-screen-t-2
ESP32-54-movile-screen-main
ESP32-54-movile-screen-main
855-ESP32 Tutorial 54/55- Arduino code Set WS2812 LED Strip Color over Wifi
Idioma: C++
Copiado!

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.