Tutoriel ESP32 47/55 - CheerLights WS2812 utilisant MQTT sur Internet | Kit IoT ESP32 de SunFounder

Tutoriel ESP32 47/55 - CheerLights WS2812 utilisant MQTT sur Internet | Kit IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons créer un système d'éclairage synchronisé utilisant l'ESP32 et des LED WS2812 qui peuvent être contrôlées à distance via MQTT. Ce système permet à plusieurs utilisateurs de changer simultanément la couleur des lumières, créant une expérience connectée, quelle que soit la localisation. Le projet utilise le kit IoT SunFounder ESP32, qui comprend un puissant microcontrôleur avec des capacités Wi-Fi, ce qui le rend idéal pour les applications IoT.

WS2812_strip.ALLUMÉ

Tout au long de la vidéo, nous allons passer en revue la configuration nécessaire, le câblage et l'implémentation du code pour obtenir cet effet. Si vous avez besoin de plus de précisions, n'hésitez pas à consulter la vidéo à des moments spécifiques (dans la vidéo à mm:ss).

Matériel expliqué

Les principaux composants de ce projet comprennent le microcontrôleur ESP32, la bande LED WS2812 et un courtier MQTT. L'ESP32 est un microcontrôleur polyvalent avec des capacités Wi-Fi et Bluetooth intégrées, ce qui lui permet de se connecter facilement à Internet. Il sert de cerveau à notre projet, gérant la communication et contrôlant la bande LED.

La bande LED WS2812 se compose de LED RGB adressables individuellement, qui peuvent être contrôlées pour afficher une large gamme de couleurs. Chaque LED peut être allumée ou éteinte et réglée sur n'importe quelle couleur à l'aide d'une seule ligne de données, ce qui la rend parfaite pour des effets d'éclairage dynamiques. Le courtier MQTT facilite la communication entre différents clients, permettant aux utilisateurs de publier et de s'abonner à des sujets qui contrôlent les couleurs des LED.

Détails de la fiche technique

Fabricant Adafruit
Numéro de pièce WS2812B
Tension logique/IO 3,5 - 5,5 V
Tension d'alimentation 5 V
Courant de sortie (par canal) 20 mA
Courant de pointe (par canal) 60 mA
Directives sur la fréquence PWM 400 Hz
Seuils logiques d'entrée 0,2Vcc (bas), 0,7Vcc (haut)
Chute de tension / RDS(on)/ saturation 0,5 V
Limites thermiques Température de fonctionnement : -25 à 85 °C
Paquet Individuel 5050 SMD
Remarques / variantes Disponible en différentes longueurs et configurations.

  • Assurez une alimentation électrique adéquate pour la bande WS2812 afin d'éviter les chutes de tension.
  • Utilisez un point commun entre l'ESP32 et la bande LED.
  • Maintenez les lignes de données courtes pour éviter la dégradation du signal.
  • Envisagez d'utiliser un condensateur (1000μF) sur l'alimentation pour lisser les pics de tension.
  • Utilisez des résistances appropriées sur la ligne de données pour éviter la réflexion du signal.
  • Soyez attentif à la consommation totale actuelle de la bande LED ; utilisez une alimentation externe si nécessaire.

Instructions de câblage

Pour câbler l'ESP32 avec la bande LED WS2812, commencez par connecter l'alimentation. Connectez le fil rouge de la bande LED à une source d'alimentation de 5V et le fil noir à la masse. Ensuite, connectez la ligne de données (fil jaune) de la bande WS2812 à la broche 14 de l'ESP32. Assurez-vous que l'ESP32 est également connecté à la même masse que la bande LED pour maintenir une référence commune.

Après avoir établi les connexions d'alimentation et de données, connectez l'ESP32 à votre ordinateur à l'aide d'un câble micro USB pour la programmation. Vous devez vous assurer que l'ESP32 est sous tension pendant la programmation pour établir une connexion. Une fois câblé, vous pouvez procéder à l'envoi du code et tester la configuration.

esp32-47-cheer-light-wiring

Exemples de code et guide pas à pas

Le code commence par inclure les bibliothèques nécessaires pour la fonctionnalité Wi-Fi et MQTT. Les identifiantsssidetpasswordsont utilisés pour stocker vos identifiants Wi-Fi, tandis quemqtt_servertient l'adresse du courtier MQTT.

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

Ensuite, nous définissons les couleurs CheerLights prises en charge et leurs valeurs RGB correspondantes à l'aide de tableaux. Cela permet au programme d'accéder facilement aux paramètres de couleur en fonction des entrées de l'utilisateur.

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" ...};

Lesetup()La fonction initialise la communication série, configure la connexion Wi-Fi et prépare le client MQTT. Elle commence également la bande LED.

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

La boucle principale vérifie en continu la connexion MQTT et traite les messages entrants qui contrôlent les couleurs des LED. Lecallback()La fonction est déclenchée lorsqu'un message est reçu sur le sujet abonné.

Démonstration / À quoi s'attendre

Une fois que tout est configuré et que le code est téléchargé, vous devriez pouvoir changer la couleur des LEDs WS2812 en envoyant des messages au sujet MQTT. Si un autre utilisateur change la couleur, tous les appareils connectés refléteront simultanément ce changement. Faites attention aux problèmes potentiels tels que la polarité inversée ou les connexions incorrectes, ce qui pourrait empêcher les LEDs de fonctionner correctement (dans la vidéo à mm:ss).

Horodatages vidéo

  • 00:00 Début
  • 2:00 Introduction
  • 3:48 Page de documentation
  • 6:33 Explication du câblage
  • 7:35 Code Arduino expliqué
  • 15:03 Sélectionner la carte ESP32 et le port COM dans Arduino IDE
  • 16:46 Démonstration CheerLighs

Images

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
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.