Tutoriel ESP32 52/55 - Synchronisation globale WS2812 CheerLights MQTT avec LCD | Kit IoT SunFounder ESP32

Tutoriel ESP32 52/55 - Synchronisation globale WS2812 CheerLights MQTT avec LCD | Kit IoT SunFounder ESP32

Dans ce tutoriel, nous allons créer un projet CheerLights en utilisant l'ESP32, qui synchronisera les couleurs à l'échelle mondiale via MQTT. Ce projet changera non seulement les couleurs en fonction des entrées d'autres utilisateurs, mais affichera également la couleur actuelle et le nombre de fois qu'elle a été mise à jour sur un écran LCD. Le résultat est une démonstration amusante des capacités de l'IoT, montrant comment les appareils peuvent interagir et maintenir les utilisateurs connectés à distance. Pour plus de précisions, regardez la vidéo à (dans la vidéo à 00:00).

esp32-52-lumière-encouragement-lcd-principal

Matériel expliqué

Pour réaliser ce projet, vous aurez besoin d'un microcontrôleur ESP32, d'une bande LED WS2812 et d'un écran LCD. L'ESP32 sert de cerveau à l'opération, utilisant ses capacités Wi-Fi intégrées pour se connecter à Internet et recevoir des messages MQTT. Cela permet des mises à jour en temps réel des couleurs des LED en fonction d'une entrée globale d'autres utilisateurs.

La bande LED WS2812 est un choix populaire pour les projets nécessitant des LEDs RGB adressables. Chaque LED peut être contrôlée indépendamment, permettant des affichages de couleurs riches. L'écran LCD fournira une confirmation visuelle de la couleur actuelle et du nombre de fois qu'elle a été changée, améliorant l'interaction avec l'utilisateur.

cheeLights_LCD

Détails de la fiche technique

Fabricant SunFounder
Numéro de pièce ESP32
Tension logique/IO 3,3 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 de logique d'entrée 0,15 V (faible), 0,8 V (élevé)
Chute de tension / RDS(on)/ saturation 0,2 V
Limites thermiques 85 °C
Paquet module ESP32
Notes / variantes Comprend le Wi-Fi et le Bluetooth intégrés

  • Assurez-vous d'une alimentation appropriée pour l'ESP32 (5 V) et la bande WS2812 (5 V).
  • Utilisez un sol commun entre l'ESP32 et la bande LED.
  • Implémentez un broker MQTT approprié pour la synchronisation des couleurs.
  • Faites attention à la connexion de la broche de données pour le WS2812 (broche 14 selon le code).
  • Soyez prudent avec le nombre de LED ; dépasser les limites de puissance nécessite des sources d'alimentation supplémentaires.

Instructions de câblage

ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring

Pour câbler les composants, commencez par connecter la bande LED WS2812. Connectez la broche de masse (habituellement noire) de la bande LED à la broche de masse de l'ESP32. Ensuite, connectez la broche VCC (habituellement rouge) de la bande LED à la sortie 5V de l'ESP32. Enfin, connectez la broche de données (souvent jaune) à la broche GPIO 14 sur l'ESP32.

Pour l'écran LCD, connectez la broche de masse (souvent noire) à la masse sur l'ESP32. La broche VCC (généralement rouge) doit être connectée à la sortie 5V. La broche SDA (typiquement grise) se connecte à la broche GPIO 21, tandis que la broche SCL (généralement blanche) se connecte à la broche GPIO 22. Cette configuration permet à l'ESP32 de communiquer avec l'écran LCD et d'afficher des informations au besoin.

Exemples de code et guide étape par étape

Dans la fonction de configuration, nous initialisons l'écran LCD et nous connectons au Wi-Fi. Le code ci-dessous montre comment définir les bibliothèques nécessaires et configurer l'écran LCD :

#include  
#include 
LiquidCrystal_I2C lcd(0x27, 16,2);  // set the LCD address
void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
}

Cela initialise l'écran LCD pour une utilisation, lui permettant d'afficher des messages. L'extrait suivant montre comment la connexion Wi-Fi est établie :

void setup_wifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    lcdConnect(); //for LCD
    delay(500);
  }
  Serial.println("WiFi connected");
}

Cette fonction établit une connexion au réseau Wi-Fi spécifié, affichant un message sur l'écran LCD pendant la connexion. Enfin, la logique de changement de couleur est gérée dans la fonction de rappel :

void callback(char* topic, byte* message, unsigned int length) {
  String messageTemp;
  for (int i = 0; i < length; i++) {
    messageTemp += (char)message[i];
  }
  if (String(topic) == "cheerlights") {
    setColor(messageTemp);
  }
}

Cette fonction écoute les messages entrants sur le sujet "cheerlights" et met à jour la couleur en conséquence. Le code complet se charge en dessous de l'article, alors assurez-vous de le consulter pour l'implémentation complète.

Démonstration / À quoi s'attendre

À la fin du projet, vous pouvez vous attendre à ce que la bande LED change de couleurs en fonction des entrées d'un flux MQTT mondial. L'écran LCD affichera le nom de la couleur actuelle et combien de fois elle a été changée. Si vous déconnectez Internet, l'écran LCD indiquera "Connexion..." jusqu'à ce qu'une connexion soit rétablie (dans la vidéo à 12:30).

Les pièges courants incluent s'assurer que les broches correctes sont utilisées pour les connexions de données et vérifier que les identifiants Wi-Fi sont exacts. S'il y a des divergences dans le SSID ou le mot de passe, l'ESP32 échouera à se connecter, et l'affichage continuera à montrer le message de connexion.

Horodatages vidéo

  • 00:00 Début
  • 1:59 Introduction au projet
  • 6:16 Explication du câblage
  • 8:13 Explication du code Arduino
  • 14:26 Sélection de la carte ESP32 et du port COM sur l'IDE Arduino
  • 16:07 Démonstration CheerLight avec LCD

Images

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
esp32-52-cheer-light-lcd-main
cheeLights_LCD
cheeLights_LCD
853-ESP32 Tutorial 52/55- CheerLight MQTT and LCD
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.