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)
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
-----------------------------------------------------------------------
- ESP32 development board
- 30 pin esp32 expansion board
- USB-A to Micro-USB cable
- 6V DC motor
- L298N motor driver module
- 4 × 1.5 V AA batteries
- AA battery holder
- Jumper wires
-----------------------------------------------------------------------
- Carte de développement ESP32
- Carte d'extension ESP32 à 30 broches
- Câble USB-A vers micro-USB
- Moteur à courant continu (MCC) 6V
- Module driver de moteur L298N
- 4 piles AA de 1,5 V
- Support de piles AA
- Fils de connexion
----------------------------------------------------------------------
Sign in to Blynk Cloud / Connectez-vous À Blynk Cloud
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
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
Click on New Template.
Fill in the fields:
- Name: dc motor esp32
- Hardware: ESP32 (or the board used in your project)
- Connection Type: WiFi
- Then click on Done.
- Click on Save
-------------------------------------------------------------------------------------------
Cliquez sur Nouveau modèle.
Remplissez les champs :
- Nom : dc motor esp32
- Matériel : ESP32 (ou la carte utilisée dans votre projet)
- Type de connexion : WiFi
- Puis cliquez sur Fait.
- Cliquez sur Sauvegarder
Create a Datastream (Virtual Pin) / Créer Un Flux De Données (épingle Virtuelle)
In your template, open Datastreams and click New Datastream → Virtual Pin.
Set the following:
- Name: V0
- Pin: V0
- Data Type: Integer
- Min: 0
- Max: 255
- Click on Create.
- Click on Save
-------------------------------------------------------------------------------------------
Dans votre modèle, ouvrez Flux de données puis cliquez sur Nouveau flux de données → Epingle virtuelle.
Configurez :
- Name : V0
- Pin : V0
- Data Type : Integer
- Min : 0
- Max : 255
- Cliquez sur Créer.
- Cliquez sur Sauvegarder
Build the Web Dashboard / Contruire Le Tableau De Bord Web
Go to Web Dashboard, then click Edit.
Add a Slider widget to the dashboard.
Open its settings and assign the datastream:
- Title: Duty Cycle
- Datastream: V0 (V0)
- 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 :
- Titre: Duty Cycle
- Flux de données : V0 (V0)
- 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
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.
Downloads
Test the DC Motor Speed Using the Web Dashboard / Tester La Vitesse Du Moteur DC À L'aide Du Tableau De Bord Web
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
Open the Blynk mobile app.
- Select your device from the list.
- Tap the green button in the top-right corner, then press “+” to add a widget.
- In the Widget Box, search for a Step Slider and add it.
- Place the slider anywhere on your dashboard and resize it if needed.
- Tap on the slider, open the Datastream settings, and select V0 (V0).
- 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.
- Next, in the Widget Box, search for a Value Display widget and add it.
- Position the value display anywhere on your dashboard and resize it if needed.
- Tap on the value display, open the Datastream settings, and select V0 (V0).
- Then go to the Design tab to choose between a dark or light theme.
- 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.
- Sélectionnez votre appareil dans la liste.
- Appuyez sur le bouton vert situé en haut à droite, puis sur « + » pour ajouter un widget.
- Dans la Widget Box, recherchez un Step Slider et ajoutez-le.
- Placez la glissière où vous le souhaitez sur le tableau de bord et redimensionnez-la si nécessaire.
- Appuyez sur la glissière, ouvrez les paramètres Datastream, puis sélectionnez V0 (V0).
- 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.
- Ensuite, dans la Widget Box, recherchez le widget Value Display et ajoutez-le.
- Positionnez l’afficheur de valeur où vous le souhaitez sur le tableau de bord et redimensionnez-le si nécessaire.
- Appuyez sur l’afficheur de valeur, ouvrez les paramètres Datastream, puis sélectionnez V0 (V0).
- Puis, allez dans l’onglet Design pour choisir entre un thème clair ou sombre.
- 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.