ESP32 Tutorial 49/55 - DC-Motor über das Internet mit Adafruit IoT steuern | SunFounders ESP32-Kit

ESP32 Tutorial 49/55 - DC-Motor über das Internet mit Adafruit IoT steuern | SunFounders ESP32-Kit

In diesem Tutorial werden wir erkunden, wie man einen Gleichstrommotor über das Internet mit dem ESP32 und dem Adafruit IO MQTT-Dienst steuert. Die Geschwindigkeit und Richtung des Gleichstrommotors können aus der Ferne manipuliert werden, was eine effiziente Steuerung von überall mit einer Internetverbindung ermöglicht. Dieses Projekt demonstriert die Möglichkeiten des ESP32-Mikrocontrollers, der über integriertes Wi-Fi verfügt und somit ideal für Anwendungen im Internet der Dinge (IoT) ist.

esp32-49-DC-Motor-mqtt-Haupt

Wir werden ein System implementieren, bei dem der Motor über eine Webschnittstelle, die mit Adafruit IO verbunden ist, gestartet, gestoppt und seine Geschwindigkeit angepasst werden kann. Benutzer können sich für spezifische Themen zur Motorsteuerung anmelden und die entsprechenden Parameter anpassen. Um den Prozess besser zu verstehen, sollten Sie sich das Video ansehen, das dieses Tutorial begleitet (im Video bei :00).

Hardware erklärt

Für dieses Projekt werden wir den ESP32-Mikrocontroller verwenden, der das Herz unseres Systems ist. Der ESP32 ist in der Lage, Wi-Fi-Kommunikation zu verarbeiten, was ihn perfekt für unsere IoT-Anwendung macht. Er verbindet sich mit der Adafruit IO-Plattform, sodass wir Nachrichten über das MQTT-Protokoll senden und empfangen können.

Darüber hinaus werden wir den L293D-Motorcontroller verwenden, der für die Steuerung des Gleichstrommotors entscheidend ist. Der L293D kann zwei Gleichstrommotoren antreiben und ermöglicht die Steuerung sowohl der Richtung als auch der Geschwindigkeit durch Pulsweitenmodulation (PWM). Er fungiert im Wesentlichen als Schnittstelle zwischen dem ESP32 und dem Motor, verwaltet den höheren Strom, der vom Motor benötigt wird, und isoliert den ESP32 von potenziell schädlichen Rückspannungs-signalen.

Datenblattdetails

Hersteller Texas Instruments
Teilenummer L293D
Logik/IO-Spannung 4,5 - 36 V
Versorgungsspannung 4,5 - 36 V
Ausgangsstrom (pro Kanal) 600 mA
Spitzenstrom (pro Kanal) 1.2 A
PWM-Frequenzrichtlinien 10 kHz (typ.)
Eingangswertgrenzen 0,8 V (hoch), 2,0 V (niedrig)
Spannungsabfall / RDS(on)/ Sättigung 1,5 V max
Thermische Grenzen 150 °C
Paket DIP-16
Hinweise / Varianten Quadrupler Hochstrom-Halb-H-Treiber

  • Sorgen Sie für eine angemessene Wärmeableitung für den kontinuierlichen Betrieb.
  • Verwenden Sie PWM, um die Motordrehzahl effektiv zu steuern.
  • Beachten Sie die Eingangs-Spannungsgrenzen, um Schäden zu vermeiden.
  • Überprüfen Sie die ordnungsgemäßen Erdverbindungen zwischen allen Komponenten.
  • Sei vorsichtig mit Rück-EMK; nutze bei Bedarf Dioden.
  • Überprüfen Sie die Verkabelung, da die Polarität die Motorrichtung beeinflussen kann.
  • Testen Sie mit einer niedrigeren Spannung, bevor Sie den vollständigen Betrieb aufnehmen.
  • Achten Sie auf Überhitzung bei längerer Benutzung.
  • Stellen Sie sicher, mechanische Schalter zu entprellen, wenn sie verwendet werden.
  • Stellen Sie sicher, dass der ESP32 nicht durch den Strom des Motors überlastet wird.

Verdrahtungsanweisungen

ESP32-15_L293D_Motorschaltplan

Beginnen Sie mit dem Anschließen der Stromversorgung. Schließen Sie den positiven Anschluss Ihrer externen Stromquelle an den VCC-Pin des L293D (Pin 8) und den Ground an den GND-Pin (Pin 4) an. Stellen Sie sicher, dass der ESP32 separat mit Strom versorgt wird, falls erforderlich, normalerweise über eine Micro-USB-Verbindung.

Als nächstes verbinden Sie den Motor mit dem L293D. Ein Terminal des Motors sollte mit Ausgangspin 3 (Pin 2 des L293D) verbunden sein und das andere Terminal mit Ausgangspin 6 (Pin 7 des L293D). Für Steuersignale verbinden Sie Pin 13 des ESP32 mit Eingangs-Pin 2 (Pin 1 des L293D) und Pin 14 mit Eingangs-Pin 7 (Pin 2 des L293D). Der Aktivierungs-Pin (Pin 1) sollte ebenfalls mit der 5V-Stromversorgung verbunden werden, um den Treiber zu aktivieren. Stellen Sie schließlich sicher, dass die GND-Leitung des ESP32 mit der GND-Leitung des L293D verbunden ist, um einen gemeinsamen Bezug zu haben.

Codebeispiele und Anleitung

Der bereitgestellte Code initialisiert die erforderlichen Bibliotheken und richtet den Wi-Fi- und MQTT-Client ein. Wichtige Identifikatoren umfassenmotorSpeed,motorDirection, undmotorStart, die den Betrieb des Motors basierend auf den von Adafruit IO empfangenen Befehlen steuern.

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

In diesem Auszug werden die Motorpins zusammen mit den Anfangsvariablen zur Steuerung von Geschwindigkeit, Richtung und dem Start-/Stopzustand des Motors definiert. Die VariablemotorSpeedwird basierend auf den Eingaben von Adafruit IO angepasst.

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

In der Setup-Funktion wird die serielle Kommunikation initiiert, und der ESP32 verbindet sich mit dem angegebenen Wi-Fi-Netzwerk. Diese Verbindung ist entscheidend für die Ermöglichung der MQTT-Kommunikation.

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

Diese Loop-Funktion stellt die MQTT-Verbindung her und verarbeitet eingehende Pakete, um den Motor basierend auf den zuletzt erhaltenen Befehlen zu steuern. Die FunktionrunMotor()wird aufgerufen, um die aktuellen Einstellungen auf den Motor anzuwenden.

Demonstration / Was Sie erwarten können

Wenn die Einrichtung abgeschlossen und der Code hochgeladen ist, sollten Sie in der Lage sein, den Motor über das Adafruit IO-Dashboard zu steuern. Sie können die Motorgeschwindigkeit mit einem Schieberegler anpassen und die Richtung mit einem Kippschalter ändern. Wenn alles richtig verkabelt ist, wird der Motor in Echtzeit auf diese Befehle reagieren und die niedrige Latenz des Systems demonstrieren (im Video bei 00:00).

Häufige Probleme sind eine umgekehrte Motorrichtung aufgrund einer falschen Verkabelung. Überprüfen Sie die Verbindungen daher noch einmal, wenn der Motor sich nicht wie erwartet verhält. Stellen Sie außerdem sicher, dass Ihre MQTT-Themen in Adafruit IO korrekt eingerichtet sind, um mit dem Code übereinzustimmen.

Video-Zeitstempel

  • 00:00 Start
  • 2:21 Einführung in das Projekt
  • 4:20 Wie DC-Motoren gesteuert werden
  • 6:39 L293D Motorsteuerung
  • 11:42 Was ist MQTT?
  • 15:03 Adafruit IO Einrichtung
  • 19:17 Verdrahtung Erklärt
  • 22:42 Code erklärt
  • 35:28 Projektvorführung

Bilder

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
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Keine Dateien verfügbar.