Tutorial ESP32 47/55 - Luzes CheerLights WS2812 usando MQTT pela Internet | Kit IoT ESP32 da SunFounder

Tutorial ESP32 47/55 - Luzes CheerLights WS2812 usando MQTT pela Internet | Kit IoT ESP32 da SunFounder

Neste tutorial, criaremos um sistema de iluminação sincronizado usando o ESP32 e LEDs WS2812 que podem ser controlados remotamente via MQTT. Este sistema permite que múltiplos usuários mudem a cor das luzes simultaneamente, criando uma experiência conectada, independentemente da localização. O projeto utiliza o kit IoT SunFounder ESP32, que inclui um microcontrolador poderoso com capacidades Wi-Fi, tornando-o ideal para aplicações de IoT.

WS2812_strip.LIGADO

Ao longo do vídeo, iremos percorrer a configuração necessária, a fiação e a implementação do código para alcançar esse efeito. Se você precisar de mais esclarecimentos, não deixe de conferir o vídeo em momentos específicos (no vídeo em mm:ss).

Hardware Explicado

Os componentes principais deste projeto incluem o microcontrolador ESP32, a fita de LED WS2812 e um broker MQTT. O ESP32 é um microcontrolador versátil com capacidades de Wi-Fi e Bluetooth integradas, permitindo que se conecte à Internet facilmente. Ele serve como o cérebro do nosso projeto, gerenciando a comunicação e controlando a fita de LED.

A fita LED WS2812 consiste em LEDs RGB endereçáveis individualmente, que podem ser controlados para exibir uma ampla gama de cores. Cada LED pode ser ligado ou desligado e configurado para qualquer cor usando uma única linha de dados, tornando-a perfeita para efeitos de iluminação dinâmicos. O broker MQTT facilita a comunicação entre diferentes clientes, permitindo que os usuários publiquem e assinem tópicos que controlam as cores dos LEDs.

Detalhes do Ficha Técnica

Fabricante Adafruit
Número da peça WS2812B
Tensão de lógica/IO 3,5 - 5,5 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 frequência PWM 400 Hz
Limiares de lógica de entrada 0,2Vcc (baixo), 0,7Vcc (alto)
Queda de tensão / RDS(on)saturação 0,5 V
Limites térmicos Temperatura de operação: -25 a 85 °C
pacote Individual 5050 SMD
Notas / variantes Disponível em várias comprimentos e configurações

  • Garanta um fornecimento de energia adequado para a fita WS2812 para evitar quedas de tensão.
  • 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 usar um capacitor (1000μF) entre a fonte de alimentação para suavizar picos de tensão.
  • Use resistores apropriados na linha de dados para prevenir a reflexão do sinal.
  • Esteja atento à corrente total do LED strip; utilize alimentação externa quando necessário.

Instruções de Fiação

Para conectar o ESP32 à fita de LED WS2812, comece ligando a fonte de alimentação. Conecte o fio vermelho da fita de LED a uma fonte de 5V e o fio preto ao chão. Em seguida, conecte a linha de dados (fio amarelo) da fita WS2812 ao pino 14 do ESP32. Certifique-se de que o ESP32 também esteja conectado ao mesmo chão que a fita de LED para manter uma referência comum.

Após configurar as conexões de energia e dados, conecte o ESP32 ao seu computador usando um cabo micro USB para programação. Você precisará garantir que o ESP32 esteja ligado durante a programação para estabelecer uma conexão. Uma vez conectado, você pode prosseguir para carregar o código e testar a configuração.

esp32-47-cheer-light-wiring

Exemplos de Código e Passo a Passo

O código começa incluindo bibliotecas necessárias para funcionalidade de Wi-Fi e MQTT. Os identificadoresssidepasswordsão usados para armazenar suas credenciais de Wi-Fi, enquantomqtt_servercontém o endereço do broker MQTT.

const char* ssid = "SSID";
const char* password = "PASSWORD";
const char* mqtt_server = "mqtt.cheerlights.com";

Em seguida, definimos as cores CheerLights suportadas e seus correspondentes valores RGB usando arrays. Isso permite que o programa acesse facilmente as configurações de cor com base na entrada do usuário.

String colorName[] = {"red", "pink", "green", "blue", "cyan", "white", "warmwhite", "oldlace", "purple", "magenta", "yellow", "orange"};
int colorRGB[][3] = { 255, 0, 0,  // "red"
                      255, 192, 203,  // "pink" ...};

Osetup()a função inicializa a comunicação serial, configura a conexão Wi-Fi e prepara o cliente MQTT. Ela também inicia a fita de LED.

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  pixels.begin();
  pixels.show(); 
}

O loop principal verifica continuamente a conexão MQTT e processa as mensagens recebidas que controlam as cores do LED.callback()a função é acionada quando uma mensagem é recebida no tópico inscrito.

Demonstração / O Que Esperar

Uma vez que tudo esteja configurado e o código tenha sido enviado, você deve ser capaz de mudar a cor dos LEDs WS2812 enviando mensagens para o tópico MQTT. Se outro usuário mudar a cor, todos os dispositivos conectados refletirão a mudança simultaneamente. Tenha cuidado com problemas potenciais, como polaridade invertida ou conexões inadequadas, que podem impedir que os LEDs funcionem corretamente (no vídeo em mm:ss).

Marcadores de vídeo

  • 00:00 Início
  • 2:00 Introdução
  • 3:48 Página de documentação
  • 6:33 Explicação da fiação
  • 7:35 Código Arduino explicado
  • 15:03 Selecionando a placa ESP32 e a porta COMP no Arduino IDE
  • 16:46 Demonstração CheerLighs

Imagens

WS2812_strip.ON
WS2812_strip.ON
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
848-ESP32 Tutorial 47/55- Arduino code for cheer light
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.