Note
Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux avant-premières.
Réductions exclusives : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des concours et des promotions festives.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
CheerLights
CheerLights est un réseau mondial de lumières synchronisées qui peuvent être contrôlées par n’importe qui. Rejoignez la communauté @CheerLights - Twitter de changement de couleur de LED, qui permet aux LEDs du monde entier de changer de couleur simultanément. Placez vos LEDs dans un coin de votre bureau pour vous rappeler que vous n’êtes pas seul.
Dans ce cas, nous utilisons également MQTT, mais au lieu de publier nos propres messages, nous nous abonnons au sujet « cheerlights ». Cela nous permet de recevoir des messages envoyés par d’autres personnes sur le sujet « cheerlights » et d’utiliser ces informations pour changer la couleur de notre bande LED en conséquence.
Composants nécessaires
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
---|---|---|
Elite Explorer Kit |
300+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DU COMPOSANT |
LIEN D’ACHAT |
---|---|
- |
|
Câblage
Schéma
Installer la bibliothèque
Pour installer la bibliothèque, utilisez le gestionnaire de bibliothèques Arduino et recherchez « ArduinoMqttClient » et « FastLED » et installez-les.
ArduinoMqttClient.h
: Utilisé pour la communication MQTT.
FastLED.h
: Utilisé pour piloter la bande LED RGB.
Important
Avec la sortie de FastLED 3.7.0, la bibliothèque FastLED prend désormais en charge officiellement l’Arduino UNO R4. Vous n’avez donc plus besoin d’installer manuellement la version de développement. Mettez simplement à jour ou installez la bibliothèque FastLED en utilisant le gestionnaire de bibliothèques Arduino.
Avertissement
[Périmé] Étant donné que la bibliothèque FastLED n’a pas encore publié officiellement une version prenant en charge l’Arduino R4, vous devrez télécharger la dernière version de développement de la bibliothèque FastLED
et remplacer les fichiers existants de la bibliothèque FastLED. Pour des instructions détaillées sur la façon de le faire, veuillez vous référer à la section Installation manuelle. (Cette note sera retirée lorsque la bibliothèque FastLED publiera officiellement une mise à jour prenant en charge l’Arduino UNO R4.)
Exécuter le code
Note
Vous pouvez ouvrir le fichier
05_cheerlight.ino
sous le cheminelite-explorer-kit-main\iot_project\05_cheerlight
directement.Ou copier ce code dans Arduino IDE.
Note
Dans le code, le SSID et le mot de passe sont stockés dans arduino_secrets.h
. Avant de télécharger cet exemple, vous devez les modifier avec vos propres identifiants WiFi. De plus, pour des raisons de sécurité, assurez-vous que ces informations restent confidentielles lors du partage ou du stockage du code.
Contrôler les appareils @CheerLights mondiaux
Rejoignez le Discord Server et utilisez le bot CheerLights pour définir la couleur. Tapez simplement
/cheerlights
dans n’importe quel canal du serveur Discord CheerLights pour activer le bot.Suivez les instructions fournies par le bot pour définir la couleur. Cela vous permettra de contrôler les appareils CheerLights dans le monde entier.
Comment ça marche ?
Voici les principales parties du code et leurs fonctions :
Inclure les bibliothèques requises :
WiFiS3.h
: Utilisé pour gérer les connexions Wi-Fi.ArduinoMqttClient.h
: Utilisé pour gérer les connexions MQTT.FastLED.h
: Utilisé pour contrôler les bandes LED NeoPixel.
Définir quelques constantes :
NUM_LEDS
: Le nombre de LEDs sur la bande LED.DATA_PIN
: La broche de données connectée à l’Arduino pour contrôler la bande LED.arduino_secrets.h
: Fichier en-tête contenant le nom et le mot de passe du réseau Wi-Fi pour protéger les informations sensibles.broker
: Adresse du serveur MQTT.port
: Port du serveur MQTT.topic
: Le sujet MQTT auquel s’abonner.
Définir quelques variables globales :
CRGB leds[NUM_LEDS]
: Un tableau pour stocker les données de couleur des LEDs.colorName
: Un tableau de noms de couleurs pris en charge par le projet CheerLights.colorRGB
: Un tableau de codes de couleurs RGB correspondant aux noms de couleurs.
Fonction
setup()
:Initialiser la communication série.
Vérifier si le module Wi-Fi est présent et afficher sa version du firmware.
Tenter de se connecter au réseau Wi-Fi ; si cela échoue, attendre 10 secondes et réessayer.
Après une connexion réussie, se connecter au broker MQTT (serveur) et s’abonner au sujet spécifié.
Initialiser la bande LED NeoPixel.
Fonction
loop()
:Appeler périodiquement la fonction
mqttClient.poll()
pour recevoir les messages MQTT et envoyer des signaux keep-alive MQTT.Ajouter un délai de 5 secondes pour éviter une connexion continue.
Les fonctions
printWifiData()
etprintCurrentNet()
sont utilisées pour afficher les informations sur le réseau Wi-Fi et la connexion.La fonction
printMacAddress()
est utilisée pour imprimer l’adresse MAC au format hexadécimal.La fonction
onMqttMessage()
est une fonction de rappel déclenchée lorsqu’un message MQTT est reçu. Elle affiche le sujet et le contenu du message reçu, convertissant le contenu du message en minuscules. Si le sujet est « cheerlights », elle appelle la fonctionsetColor()
pour définir la couleur de la bande LED.La fonction
setColor()
prend un nom de couleur comme paramètre, puis cherche une couleur correspondante dans le tableaucolorName
. Si une couleur correspondante est trouvée, elle définit la couleur de la bande LED sur la valeur RGB correspondante et met à jour la couleur de la bande LED en utilisant la fonctionFastLED.show()
.