Change a DC Motor Speed From Your Cell Phone Using ESP32 and Blynk (Step-by-Step Guide)

by sss2022 in Circuits > Wireless

26 Views, 1 Favorites, 0 Comments

Change a DC Motor Speed From Your Cell Phone Using ESP32 and Blynk (Step-by-Step Guide)

20251222_144020 - Copy.jpg

In this project, we will learn how to remotely change the speed of a 6V DC motor using a smartphone.

We will use an ESP32 board, an L298N motor driver, and the Arduino IDE for programming. The mobile control interface will be created using the Blynk IoT platform, which allows you to build a smartphone app easily without complex coding.

The system is based on Pulse Width Modulation (PWM): by changing the duty cycle of the signal sent from the ESP32 to the L298N, we can precisely change the motor speed. A slider widget on the smartphone is used to adjust the motor speed in real time, in a simple and intuitive way..

This project is perfect for beginners in embedded systems, and it can also serve as a foundation for more advanced applications such as mobile robots, RC cars, or connected motorized systems.

------------------------------------------------------------------------------------------

Dans ce projet, nous allons apprendre à contrôler la vitesse d’un moteur à courant continu (DC) 6V à distance à l’aide d’un smartphone.

Pour cela, nous utiliserons une carte ESP32, un driver moteur L298N, et l’IDE Arduino pour la programmation. L’interface de contrôle sera réalisée avec la plateforme Blynk IoT, qui permet de créer facilement une application mobile sans développement complexe.

Le principe repose sur la modulation de largeur d’impulsion (MLI) : en faisant varier le rapport cyclique du signal envoyé par l’ESP32 au L298N, on peut faire varier la vitesse de rotation du moteur. Grâce à un curseur (slider) sur le smartphone, l’utilisateur peut modifier la vitesse du moteur en temps réel, de manière simple et intuitive.

Ce projet est idéal pour les débutants en électronique embarquée, mais aussi comme base pour des applications plus avancées comme les robots mobiles, les voitures télécommandées ou les systèmes motorisés connectés.

Supplies

-----------------------------------------------------------------------

  1. ESP32 development board
  2. 30 pin esp32 expansion board
  3. USB-A to Micro-USB cable
  4. 6V DC motor
  5. L298N motor driver module
  6. 4 × 1.5 V AA batteries
  7. AA battery holder
  8. Jumper wires

-----------------------------------------------------------------------

  1. Carte de développement ESP32
  2. Carte d'extension ESP32 à 30 broches
  3. Câble USB-A vers micro-USB
  4. Moteur à courant continu (MCC) 6V
  5. Module driver de moteur L298N
  6. 4 piles AA de 1,5 V
  7. Support de piles AA
  8. Fils de connexion

----------------------------------------------------------------------

Sign in to Blynk Cloud / Connectez-vous À Blynk Cloud

step1.png

Go to https://blynk.cloud/ and sign in to your Blynk account. If you don’t have an account yet, create one for free.

-------------------------------------------------------------------------------------------

Rendez-vous sur https://blynk.cloud/ et connectez-vous à votre compte Blynk. Si vous n’en avez pas encore, créez-en un gratuitement.

Open the Developer Zone / Ouvrir La Zone Des Développeurs

step2.png

On the left menu, click on Developer Zone to access the tools for creating templates and device configurations.

-------------------------------------------------------------------------------------------

Dans le menu de gauche, cliquez sur Zone des développeurs pour accéder aux outils permettant de créer des modèles et de configurer les appareils.

Create a New Template / Créer Un Nouveau Modèle

step3_1.png
step3_2.png
step3_3.png

Click on New Template.

Fill in the fields:

  1. Name: dc motor esp32
  2. Hardware: ESP32 (or the board used in your project)
  3. Connection Type: WiFi
  4. Then click on Done.
  5. Click on Save

-------------------------------------------------------------------------------------------

Cliquez sur Nouveau modèle.

Remplissez les champs :

  1. Nom : dc motor esp32
  2. Matériel : ESP32 (ou la carte utilisée dans votre projet)
  3. Type de connexion : WiFi
  4. Puis cliquez sur Fait.
  5. Cliquez sur Sauvegarder

Create a Datastream (Virtual Pin) / Créer Un Flux De Données (épingle Virtuelle)

step4_1.png
step4_2.png
step4_3.png
step4_4.png

In your template, open Datastreams and click New Datastream → Virtual Pin.

Set the following:

  1. Name: V0
  2. Pin: V0
  3. Data Type: Integer
  4. Min: 0
  5. Max: 255
  6. Click on Create.
  7. Click on Save

-------------------------------------------------------------------------------------------

Dans votre modèle, ouvrez Flux de données puis cliquez sur Nouveau flux de données → Epingle virtuelle.

Configurez :

  1. Name : V0
  2. Pin : V0
  3. Data Type : Integer
  4. Min : 0
  5. Max : 255
  6. Cliquez sur Créer.
  7. Cliquez sur Sauvegarder

Build the Web Dashboard / Contruire Le Tableau De Bord Web

step5_1.png
step5_2.png
step5_3.png
step5_4.png

Go to Web Dashboard, then click Edit.

Add a Slider widget to the dashboard.

Open its settings and assign the datastream:

  1. Title: Duty Cycle
  2. Datastream: V0 (V0)
  3. Save your dashboard.

Next, click on a second Save button

-------------------------------------------------------------------------------------------

Allez dans Tableau de bord web, puis cliquez sur Modifier.

Ajoutez le widget Glissière sur le tableau de bord.

Ouvrez ses paramètres et assignez le flux de données :

  1. Titre: Duty Cycle
  2. Flux de données : V0 (V0)
  3. Enregistrez votre tableau de bord.

Ensuite cliquez sur un deuxième bouton Sauvegarder

Create a Device From the Template / Créer Un Appareil À Partir Du Modèle

step6_1.png
step6_2.png
step6_3.png
step6_4.png

Open the Devices section.

Click New Device → Create From Template.

Choose dc motor esp32, then click Create.

Copy :

#define BLYNK_TEMPLATE_ID "....."

#define BLYNK_TEMPLATE_NAME "led controller esp32"

#define BLYNK_AUTH_TOKEN "....."

they will be used in your code

-------------------------------------------------------------------------------------------

Ouvrez la section Dispositifs.

Cliquez sur Nouvel appareil → Créer à partir du modèle.

Choisissez dc motor esp32, puis cliquez sur Créer.

Copiez:

#define BLYNK_TEMPLATE_ID "....."

#define BLYNK_TEMPLATE_NAME "led controller esp32"

#define BLYNK_AUTH_TOKEN "....."

Elles seront utilisées dans votre code.

Circuit Diagram / Schéma & Installing ESP32 in Arduino IDE / Installation De L'ESP32 Dans L'IDE De L'arduino

For more details about the used wiring diagram, the operating principle of the L298N motor driver, and the installation process of the ESP32 board support package in the Arduino IDE, please refer to the following article, where these topics are explained step by step :

https://www.instructables.com/How-to-Drive-a-DC-Motor-Using-L298N-and-ESP32-With/

------------------------------------------------------------------------------------------

Pour plus d’informations sur le schéma de câblage utilisé, le principe de fonctionnement du driver moteur L298N, ainsi que la procédure d’installation de la bibliothèque ESP32 dans l’IDE Arduino, je vous invite à consulter l’article suivant, dans lequel ces notions sont expliquées en détail :

https://www.instructables.com/How-to-Drive-a-DC-Motor-Using-L298N-and-ESP32-With/

Upload the Code to the ESP32 / Téléverser Le Code Sur Votre ESP32

Open your Arduino IDE (or your MicroPython editor).

Paste your program, add your Wi-Fi credentials and the three lines of code you copied from Blynk (Step 6), then upload the code to your ESP32.

-------------------------------------------------------------------------------------------

Ouvrez votre Arduino IDE (ou votre éditeur MicroPython).

Collez votre programme, ajoutez les identifiants de votre WiFi ainsi que les trois ligne de code que vous avez copié depuis Blynk (étape 6), puis téléversez le code sur votre ESP32.

Test the DC Motor Speed Using the Web Dashboard / Tester La Vitesse Du Moteur DC À L'aide Du Tableau De Bord Web

step7_1.png
step7_2.png

Return to Devices, click on your device (it should be online), then move the slider to change the motor speed.

By adjusting the slider value from 0 to 255, you modify the PWM duty cycle sent to the ESP32, allowing the motor speed to increase or decrease in real time.

-------------------------------------------------------------------------------------------

Retournez sur Dispositifs, cliquez sur votre appareil (il doit être en ligne), puis déplacez la glissière (slider) pour modifier la vitesse du moteur.

En faisant varier la valeur de 0 à 255, vous changez le rapport cyclique (PWM) envoyé à l’ESP32, ce qui permet d’augmenter ou de diminuer la vitesse du moteur en temps réel.

Add Control From the Mobile App

Screenshot_20251220_144634_Blynk IoT.jpg
Screenshot_20251220_144659_Blynk IoT.jpg
Screenshot_20251220_144712_Blynk IoT.jpg
Screenshot_20251220_145134_Blynk IoT.jpg
Screenshot_20251220_145424_Blynk IoT.jpg
Screenshot_20251220_145443_Blynk IoT.jpg
Screenshot_20251220_145521_Blynk IoT.jpg
Screenshot_20251220_145225_Blynk IoT.jpg
Screenshot_20251220_145637_Blynk IoT.jpg
Screenshot_20251220_145656_Blynk IoT.jpg
Screenshot_20251220_145752_Blynk IoT.jpg
Screenshot_20251220_145901_Blynk IoT.jpg

Open the Blynk mobile app.

  1. Select your device from the list.
  2. Tap the green button in the top-right corner, then press “+” to add a widget.
  3. In the Widget Box, search for a Step Slider and add it.
  4. Place the slider anywhere on your dashboard and resize it if needed.
  5. Tap on the slider, open the Datastream settings, and select V0 (V0).
  6. Then go to the Design tab to rename the slider. In my case, I named it Duty Cycle and placed it in the center of the dashboard.
  7. Next, in the Widget Box, search for a Value Display widget and add it.
  8. Position the value display anywhere on your dashboard and resize it if needed.
  9. Tap on the value display, open the Datastream settings, and select V0 (V0).
  10. Then go to the Design tab to choose between a dark or light theme.
  11. Your interface is now ready. By adjusting the slider value from 0 to 255, you modify the PWM duty cycle sent to the ESP32, allowing the motor speed to increase or decrease in real time.

------------------------------------------------------------------------------------------

Ouvrez l’application mobile Blynk.

  1. Sélectionnez votre appareil dans la liste.
  2. Appuyez sur le bouton vert situé en haut à droite, puis sur « + » pour ajouter un widget.
  3. Dans la Widget Box, recherchez un Step Slider et ajoutez-le.
  4. Placez la glissière où vous le souhaitez sur le tableau de bord et redimensionnez-la si nécessaire.
  5. Appuyez sur la glissière, ouvrez les paramètres Datastream, puis sélectionnez V0 (V0).
  6. Ensuite, allez dans l’onglet Design pour renommer la glissière. Dans mon cas, je l’ai nommée Duty Cycle et placée au centre du tableau de bord.
  7. Ensuite, dans la Widget Box, recherchez le widget Value Display et ajoutez-le.
  8. Positionnez l’afficheur de valeur où vous le souhaitez sur le tableau de bord et redimensionnez-le si nécessaire.
  9. Appuyez sur l’afficheur de valeur, ouvrez les paramètres Datastream, puis sélectionnez V0 (V0).
  10. Puis, allez dans l’onglet Design pour choisir entre un thème clair ou sombre.
  11. Votre interface est maintenant prête. En faisant varier la valeur de la glissière de 0 à 255, vous modifiez le rapport cyclique PWM envoyé à l’ESP32, ce qui permet d’augmenter ou de diminuer la vitesse du moteur en temps réel.