Tutoriel ESP32 49/55 - Contrôlez un moteur à courant continu via Internet en utilisant Adafruit IoT | Kit ESP32 de SunFounder

Tutoriel ESP32 49/55 - Contrôlez un moteur à courant continu via Internet en utilisant Adafruit IoT | Kit ESP32 de SunFounder

Dans ce tutoriel, nous allons explorer comment contrôler un moteur CC sur Internet en utilisant l'ESP32 et le service MQTT d'Adafruit IO. La vitesse et la direction du moteur CC peuvent être manipulées à distance, permettant un contrôle efficace depuis n'importe où avec une connexion Internet. Ce projet démontre les capacités du microcontrôleur ESP32, qui dispose du Wi-Fi intégré, le rendant idéal pour les applications de l'Internet des Objets (IoT).

esp32-49-moteur-DC-mqtt-principal

Nous mettrons en place un système permettant de démarrer, d'arrêter le moteur et d'ajuster sa vitesse via une interface web connectée à Adafruit IO. Les utilisateurs peuvent s'abonner à des sujets spécifiques pour le contrôle du moteur et ajuster les paramètres en conséquence. Pour mieux comprendre le processus, n'hésitez pas à consulter la vidéo accompagnant ce tutoriel (dans la vidéo à 00:00).

Matériel expliqué

Pour ce projet, nous utiliserons le microcontrôleur ESP32, qui est le cœur de notre système. L'ESP32 est capable de gérer les communications Wi-Fi, ce qui le rend parfait pour notre application IoT. Il se connecte à la plateforme Adafruit IO, nous permettant d'envoyer et de recevoir des messages via le protocole MQTT.

De plus, nous utiliserons le pilote de moteur L293D, qui est essentiel pour contrôler le moteur à courant continu. Le L293D peut piloter deux moteurs à courant continu et permet de contrôler à la fois la direction et la vitesse grâce à la modulation de largeur d'impulsion (PWM). Il agit essentiellement comme une interface entre l'ESP32 et le moteur, gérant le courant plus élevé nécessaire au moteur tout en isolant l'ESP32 de tout signal de contre-électromotrice potentiellement dommageable.

Détails de la fiche technique

Fabricant Texas Instruments
Numéro de pièce L293D
Tension logique/IO 4,5 - 36 V
Tension d'alimentation 4,5 - 36 V
Courant de sortie (par canal) 600 mA
Courant de pointe (par canal) 1,2 A
Guide de fréquence PWM 10 kHz (typ.)
Seuils de logique d'entrée 0,8 V (haut), 2,0 V (bas)
Chute de tension / RDS(on)/ saturation 1,5 V max
Limites thermiques 150 °C
Colis DIP-16
Remarques / variantes Pilote demi-H à courant élevé quadruple

  • Assurez un bon dissipation thermique pour un fonctionnement continu.
  • Utilisez la PWM pour contrôler efficacement la vitesse du moteur.
  • Respectez les limites de tension d'entrée pour éviter d'endommager l'appareil.
  • Vérifiez les connexions à la terre appropriées entre tous les composants.
  • Soyez prudent avec la contre-EMF ; utilisez des diodes si nécessaire.
  • Vérifiez le câblage car la polarité peut affecter la direction du moteur.
  • Testez avec une tension inférieure avant le fonctionnement complet.
  • Surveillez la surchauffe lors d'une utilisation prolongée.
  • Assurez-vous de dé-bouncer les interrupteurs mécaniques s'ils sont utilisés.
  • Assurez-vous que l'ESP32 n'est pas surchargé par le courant du moteur.

Instructions de câblage

ESP32-15_L293D_schéma_moteur

Commencez par connecter l'alimentation. Connectez la borne positive de votre source d'alimentation externe à la broche VCC du L293D (broche 8) et la masse à la broche GND (broche 4). Assurez-vous que l'ESP32 est alimenté séparément si nécessaire, généralement par une connexion micro USB.

Ensuite, connectez le moteur au L293D. Un terminal du moteur doit être connecté à la broche de sortie 3 (broche 2 du L293D) et l'autre terminal à la broche de sortie 6 (broche 7 du L293D). Pour les signaux de contrôle, connectez la broche 13 de l'ESP32 à la broche d'entrée 2 (broche 1 du L293D) et la broche 14 à la broche d'entrée 7 (broche 2 du L293D). La broche d'activation (broche 1) doit également être connectée à l'alimentation 5V pour activer le pilote. Enfin, assurez-vous que la masse de l'ESP32 est connectée à la masse du L293D pour une référence commune.

Exemples de code et guide pas à pas

Le code fourni initialise les bibliothèques nécessaires et configure le Wi-Fi et le client MQTT. Les identifiants clés incluentmotorSpeed,motorDirection, etmotorStart, qui gèrent le fonctionnement du moteur en fonction des commandes reçues d'Adafruit IO.

bool debug = false;
#define motor1A 13
#define motor2A 14
int motorSpeed = 0;
int motorDirection = 1;
int motorStart = 1;

Dans cet extrait, les broches du moteur sont définies avec des variables initiales pour contrôler la vitesse, la direction et l'état de marche/arrêt du moteur. La variablemotorSpeedsera ajusté en fonction des données d'Adafruit IO.

void setup() {
  Serial.begin(115200);
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  delay(2000);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

Dans la fonction de configuration, la communication série est initiée et l'ESP32 se connecte au réseau Wi-Fi spécifié. Cette connexion est cruciale pour permettre la communication MQTT.

void loop() {
  MQTT_connect();
  mqtt.processPackets(500);
  runMotor();
}

Cette fonction de boucle établit la connexion MQTT et traite les paquets entrants pour contrôler le moteur en fonction des dernières commandes reçues. La fonctionrunMotor()est appelé à appliquer les réglages actuels au moteur.

Démonstration / À Quoi S'Attendre

Lorsque la configuration est terminée et que le code est téléchargé, vous devriez être en mesure de contrôler le moteur via le tableau de bord Adafruit IO. Vous pouvez ajuster la vitesse du moteur à l'aide d'un curseur et changer sa direction avec un interrupteur à bascule. Si tout est câblé correctement, le moteur réagira à ces commandes en temps réel, montrant la faible latence du système (dans la vidéo à 00:00).

Les problèmes courants incluent une direction de moteur inversée en raison d'un câblage incorrect, donc vérifiez à nouveau les connexions si le moteur ne se comporte pas comme prévu. De plus, assurez-vous que vos sujets MQTT sont correctement configurés dans Adafruit IO pour correspondre au code.

Horodatages vidéo

  • 00:00 Début
  • 2:21 Introduction au projet
  • 4:20 Comment le moteur à courant continu est contrôlé
  • 6:39 L293D Pilote de moteur
  • 11:42 Qu'est-ce que MQTT ?
  • 15:03 Configuration d'Adafruit IO
  • 19:17 Explication du câblage
  • 22:42 Code expliqué
  • 35:28 Démonstration de projet

Images

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
esp32-49-DC-motor-mqtt-main
esp32-49-DC-motor-mqtt-main
851-ESP32 Tutorial 49/55- Arduino code using ESP32 to DC Motor using MQTT service of Adafruit
Langue: C++
Copié !

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.