Tutorial ESP32 49/55 - Controlla un motore DC su Internet utilizzando Adafruit IoT | Kit ESP32 di SunFounder

Tutorial ESP32 49/55 - Controlla un motore DC su Internet utilizzando Adafruit IoT | Kit ESP32 di SunFounder

In questo tutorial, esploreremo come controllare un motore DC tramite internet utilizzando l'ESP32 e il servizio Adafruit IO MQTT. La velocità e la direzione del motore DC possono essere manipolate da remoto, consentendo un controllo efficiente da qualsiasi luogo con una connessione internet. Questo progetto dimostra le capacità del microcontrollore ESP32, che include il Wi-Fi integrato, rendendolo ideale per applicazioni di Internet delle cose (IoT).

esp32-49-motore-DC-mqtt-principale

Implementeremo un sistema in cui il motore può essere avviato, fermato e la sua velocità regolata tramite un'interfaccia web connessa a Adafruit IO. Gli utenti possono iscriversi a specifici argomenti per il controllo del motore e regolare i parametri di conseguenza. Per comprendere meglio il processo, assicurati di dare un'occhiata al video che accompagna questo tutorial (nel video a 00:00).

Spiegazione dell'hardware

Per questo progetto, utilizzeremo il microcontrollore ESP32, che è il cuore del nostro sistema. L'ESP32 è in grado di gestire le comunicazioni Wi-Fi, rendendolo perfetto per la nostra applicazione IoT. Si collega alla piattaforma Adafruit IO, permettendoci di inviare e ricevere messaggi tramite il protocollo MQTT.

Inoltre, utilizzeremo il driver per motori L293D, che è essenziale per controllare il motore DC. Il L293D può alimentare due motori DC e consente di controllare sia la direzione che la velocità attraverso la modulazione dell'ampiezza dell'impulso (PWM). Agisce essenzialmente come un'interfaccia tra l'ESP32 e il motore, gestendo la corrente più alta necessaria per il motore mentre isola l'ESP32 da eventuali segnali di contro-elettromotrice potenzialmente dannosi.

Dettagli della scheda tecnica

Produttore Texas Instruments
Numero di parte L293D
Tensione logica/IO 4,5 - 36 V
Tensione di alimentazione 4,5 - 36 V
Corrente di uscita (per canale) 600 mA
Corrente di picco (per canale) 1.2 A
Linee guida sulla frequenza PWM 10 kHz (tip.)
Soglie di logica di ingresso 0,8 V (alto), 2,0 V (basso)
Caduta di tensione / RDS(on)/ saturazione 1,5 V max
Limiti termici 150 °C
Pacchetto DIP-16
Note / varianti Driver half-H ad alta corrente quadrupla

  • Garantire un adeguato dissipatore di calore per un funzionamento continuo.
  • Utilizza il PWM per controllare efficacemente la velocità del motore.
  • Osservare i limiti di tensione di ingresso per evitare danni.
  • Controlla le corrette connessioni a terra tra tutti i componenti.
  • Fai attenzione all'autoinduzione; usa i diodi se necessario.
  • Verifica nuovamente il cablaggio poiché la polarità può influenzare la direzione del motore.
  • Testa con una tensione inferiore prima del funzionamento completo.
  • Fai attenzione al surriscaldamento durante l'uso prolungato.
  • Assicurati di utilizzare un debounce per gli interruttori meccanici se utilizzati.
  • Assicurati che l'ESP32 non sia sovraccarico dalla corrente del motore.

Istruzioni per il cablaggio

ESP32-15_L293D_schema_motor

Inizia collegando l'alimentatore. Collega il terminale positivo della tua fonte di alimentazione esterna al pin VCC dell'L293D (pin 8) e il comune al pin GND (pin 4). Assicurati che l'ESP32 sia alimentato separatamente, se necessario, tipicamente attraverso una connessione micro USB.

Successivamente, collega il motore all'L293D. Un terminale del motore deve essere collegato al pin di uscita 3 (pin 2 dell'L293D) e l'altro terminale al pin di uscita 6 (pin 7 dell'L293D). Per i segnali di controllo, collega il pin 13 dell'ESP32 al pin di ingresso 2 (pin 1 dell'L293D) e il pin 14 al pin di ingresso 7 (pin 2 dell'L293D). Il pin di abilitazione (pin 1) deve essere inoltre collegato all'alimentazione di 5V per attivare il driver. Infine, assicurati che il terreno dell'ESP32 sia collegato al terreno dell'L293D per un riferimento comune.

Esempi di codice e guida passo passo

Il codice fornito inizializza le librerie necessarie e configura il client Wi-Fi e MQTT. Gli identificatori chiave includonomotorSpeed,motorDirection, emotorStart, che gestiscono il funzionamento del motore in base ai comandi ricevuti da Adafruit IO.

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

In questo estratto, i pin del motore sono definiti insieme a variabili iniziali per controllare la velocità, la direzione e lo stato di avvio/arresto del motore. La variabilemotorSpeedsarà regolato in base ai dati forniti da Adafruit IO.

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

Nella funzione di configurazione, la comunicazione seriale viene avviata e l'ESP32 si connette alla rete Wi-Fi specificata. Questa connessione è fondamentale per abilitare la comunicazione MQTT.

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

Questa funzione di loop stabilisce la connessione MQTT e gestisce i pacchetti in arrivo per controllare il motore in base agli ultimi comandi ricevuti. La funzionerunMotor()è chiamato ad applicare le impostazioni attuali al motore.

Dimostrazione / Cosa Aspettarsi

Quando la configurazione è completa e il codice è caricato, dovresti essere in grado di controllare il motore tramite la dashboard di Adafruit IO. Puoi regolare la velocità del motore utilizzando un cursore e cambiare la sua direzione con un interruttore a levetta. Se tutto è cablato correttamente, il motore risponderà a questi comandi in tempo reale, dimostrando la bassa latenza del sistema (nel video a 00:00).

Problemi comuni includono la direzione del motore invertita a causa di un cablaggio errato, quindi controlla nuovamente le connessioni se il motore non si comporta come previsto. Inoltre, assicurati che i tuoi argomenti MQTT siano configurati correttamente in Adafruit IO per corrispondere al codice.

Timestamp video

  • 00:00 Inizio
  • 2:21 Introduzione al progetto
  • 4:20 Come viene controllato il motore DC
  • 6:39 Driver del Motore L293D
  • 11:42 Che cos'è MQTT?
  • 15:03 Configurazione di Adafruit IO
  • 19:17 Spiegazione del cablaggio
  • 22:42 Codice spiegato
  • 35:28 Dimostrazione del progetto

Immagini

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
Lingua: C++
Copia!

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Nessun file disponibile.