Tutoriel ESP32 31/55 - Projet Bande LED avec évitement d'obstacles | Kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 31/55 - Projet Bande LED avec évitement d'obstacles | Kit d'apprentissage IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons créer un projet utilisant un microcontrôleur ESP32 et une bande LED WS2812 qui peut changer de direction en fonction de la détection d'obstacles. Lorsque la bande LED avance, elle affichera des couleurs aléatoires, et en détectant un obstacle, elle passera à une couleur prédéterminée et inversera sa direction. Ce projet met en valeur les capacités de l'ESP32 en combinaison avec un capteur infrarouge de détection d'obstacles.

ESP32-31-lumière-fluide-principal2

Tout au long de ce tutoriel, nous aborderons les composants matériels nécessaires, les instructions de câblage et le code requis pour donner vie à ce projet. Pour une explication plus visuelle, assurez-vous de regarder la vidéo liée ci-dessous (dans la vidéo à :00).

Matériel expliqué

Ce projet nécessite plusieurs composants, y compris le microcontrôleur ESP32, une bande LED WS2812 et un capteur d'évitement d'obstacles infrarouge. L'ESP32 est un microcontrôleur puissant qui dispose du Wi-Fi et du Bluetooth intégrés, ce qui le rend parfait pour les applications IoT. La bande LED WS2812 est une bande LED RGB programmable qui permet un contrôle individuel de chaque LED, nous permettant de créer des effets d'éclairage dynamiques.

Le capteur d'évitement d'obstacles infrarouges fonctionne en émettant de la lumière infrarouge et en détectant les réflexions des objets proches. Lorsqu'un obstacle est détecté, le capteur change son état de sortie, permettant à l'ESP32 de réagir en conséquence en modifiant le comportement de la bande LED.

Détails de la fiche technique

Fabricant WS2812B
Numéro de pièce WS2812B
Tension logique/IO 3,3 V (typ.)
Tension d'alimentation 5 V (typiquement)
Courant de sortie (par canal) 20 mA (max)
Courant de pointe (par canal) 60 mA (max)
Directives sur la fréquence PWM 400 Hz (typ.)
Seuils logiques d'entrée 0,3 Vcc (haut), 0,1 Vcc (bas)
Chute de tension / RDS(on)/ saturation 1,2 V (max)
Limites thermiques 85 °C (max)
Paquet Montage en surface
Remarques / variantes Disponible en différentes longueurs et densités.

  • Assurez-vous que la bande LED est alimentée avec 5 V pour des performances optimales.
  • Utilisez une résistance appropriée pour la broche de données afin de prévenir des problèmes d'intégrité du signal.
  • Soyez prudent quant aux limites de courant de sortie pour éviter la surchauffe.
  • Détachez correctement l'alimentation pour prévenir les pics de tension.
  • Ajustez le capteur infrarouge avec soin pour atteindre la plage de détection souhaitée.

Instructions de câblage

ESP32-31-flowing-light-wiring

Pour câbler les composants, commencez par le capteur d'évitement d'obstacles infrarouge. Connectez la broche de sortie du capteur à la broche.25sur l'ESP32. La broche du milieu doit être connectée à la masse, et la dernière broche (VCC) doit être connectée à une source d'alimentation de 3,3 V.

ESP32-31-schéma-lumière-fluide

Ensuite, pour la bande LED WS2812, connectez la broche de données (généralement le fil jaune) à la broche14sur l'ESP32. Le fil rouge doit être connecté à une source d'alimentation de 5 V, et le fil noir doit être connecté à la masse. Assurez-vous de bien sécuriser toutes les connexions pour éviter tout fil lâche.

Exemples de code et guide étape par étape

Voici un aperçu bref du code qui fait fonctionner ce projet. Tout d'abord, nous définissons le nombre de pixels dans la bande LED et la broche de données utilisée pour la communication :

#define NUM_PIXELS 8
#define DATA_PIN 14

Dans lesetup()fonction, nous initialisons la bande LED et le capteur infrarouge :

void setup() {
  pixels.begin();
  pinMode(AVOID_PIN, INPUT_PULLUP);
  uint32_t color = pixels.Color(random(256), random(256), random(256));
  pixels.fill(color);
  pixels.show();
}

Dans leloop()fonction, nous vérifions si un obstacle est détecté et contrôlons la bande LED en conséquence :

if (avoid_value) {
    for (int i = 0; i < NUM_PIXELS; i++) {
      pixels.setPixelColor(i, color);
      pixels.show();
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  } else {
    for (int i = NUM_PIXELS - 1; i >= 0; i--) {
      pixels.setPixelColor(i, color);
      pixels.show();
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  }

Ce code permet à la bande LED d'afficher des couleurs aléatoires lorsqu'elle avance et de changer de direction lorsqu'un obstacle est détecté. Le code complet est chargé en dessous de l'article, alors n'oubliez pas de le consulter pour tous les détails.

Démonstration / À quoi s'attendre

Lorsque la configuration est complète et que le code est téléchargé, la bande LED doit commencer à afficher des couleurs aléatoires tout en avançant. Lorsqu'un obstacle est détecté, la bande passera à une couleur prédéfinie (comme le vert) et inversera sa direction. Si l'obstacle est retiré, la bande recommencera à avancer avec des couleurs aléatoires. Soyez conscient que la portée de détection du capteur infrarouge peut varier en fonction de l'alimentation utilisée (dans la vidéo à 10:30).

Horodatages vidéo

  • 00:00 Début
  • 2:14 Introduction au projet
  • 4:58 Câblage expliqué
  • 7:41 Ajustement du capteur d'évitement d'obstacles
  • 10:03 Explication du code Arduino
  • 15:40 Sélection de la carte ESP32 et du port COM dans l'Arduino IDE
  • 17:22 Projet 1 : Démonstration
  • 18:17 Channing la couleur de retour

Images

ESP32-31-flowing-light-main2
ESP32-31-flowing-light-main2
ESP32-31-flowing-light-main
ESP32-31-flowing-light-main
ESP32-31-flowing-light-schematic
ESP32-31-flowing-light-schematic
ESP32-31-flowing-light-wiring
ESP32-31-flowing-light-wiring
832-ESP32 Tutorial 31/55- Arduino code flowing light
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.