Certaines parties de ce site Web ne sont pas encore disponibles dans votre langue. Nous travaillons à résoudre ce problème et nous nous excusons pour tout inconvénient.
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-wiringesp32-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 :
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