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.
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.
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.
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-49-DC-motor-mqtt-main
ESP32-15_L293D_motor_schematic
esp32-49-DC-motor-mqtt-main
851-ESP32 Tutorial 49/55- Arduino code using ESP32 to DC Motor using MQTT service of Adafruit