Dans ce tutoriel, vous apprendrez à créer un serveur web avec l’ESP32 pour contrôler à distance un moteur pas à pas. Le serveur Web affiche une page Web avec un formulaire HTML qui vous permet de sélectionner la direction et le nombre de pas que vous souhaitez que le moteur se déplace.
Table des matières
- Contrôler le moteur pas à pas avec le formulaire HTML (configuration minimale)
- Contrôlez le moteur pas à pas avec HTML Form + CSS (en utilisant SPIFFS)
- Contrôlez le moteur pas à pas avec WebSockets (HTML, CSS, JavaScript)
Dans l’image ci-dessous, vous pouvez voir les trois projets de serveur Web que nous allons construire (le numéro 3 est dans cet article).
Il s’agit d’un didacticiel didactique où vous en apprendrez plus sur la création de pages Web et l’interaction entre l’ESP32 et le client. Nous allons vous montrer comment créer la page Web étape par étape avec HTML et envoyer les résultats du formulaire à l’ESP32 via HTTP POST pour contrôler le moteur pas à pas.
Plus tard, vous ajouterez du CSS pour styliser la page Web afin d’améliorer son apparence.
Enfin, nous vous montrerons comment utiliser Websockets pour une communication bidirectionnelle entre le serveur et le client. Cela nous permettra de savoir sur l’interface web si le moteur tourne ou s’est arrêté. Cette section ajoutera du JavaScript pour gérer la communication WebSocket et ajoutera des animations sympas à la page Web.
Les articles suivants peuvent être utiles pour comprendre les concepts abordés tout au long de ce didacticiel :
Conditions préalables
Avant de poursuivre le didacticiel, assurez-vous de vérifier les prérequis suivants.
1) Pièces requises
Pour suivre ce tutoriel, vous avez besoin des pièces suivantes :
Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !
2) Complément pour les cartes Arduino IDE et ESP32
Nous allons programmer l’ESP32 à l’aide de l’IDE Arduino. Donc, vous devez avoir installé le module complémentaire ESP32. Suivez le tutoriel suivant si vous ne l’avez pas déjà fait :
Si vous souhaitez utiliser VS Code avec l’extension PlatformIO, suivez plutôt le tutoriel suivant pour apprendre à programmer l’ESP32 :
3) Plugin de téléchargement de système de fichiers
Pour télécharger les fichiers HTML, CSS et JavaScript nécessaires à la construction de ce projet sur le système de fichiers ESP32 (SPIFFS), nous utiliserons un plug-in pour Arduino IDE : SPIFFS Filesystem Uploader. Suivez le tutoriel suivant pour installer le plugin filesystem uploader si vous ne l’avez pas déjà fait :
Si vous utilisez VS Code avec l’extension PlatformIO, lisez le didacticiel suivant pour savoir comment télécharger des fichiers sur le système de fichiers :
4) Bibliothèques
Pour compiler ce projet, vous devez installer les bibliothèques suivantes :
Les bibliothèques ESPAsyncWebServer et AsynTCP ne peuvent pas être installées via le gestionnaire de bibliothèque Arduino. Vous devez cliquer sur les liens précédents pour télécharger les fichiers de la bibliothèque. Ensuite, dans votre IDE Arduino, allez dans Sketch> Inclure la bibliothèque> Ajouter une bibliothèque .zip et sélectionnez les bibliothèques que vous venez de télécharger.
Installation de bibliothèques (VS Code + PlatformIO)
Si vous programmez l’ESP32 à l’aide de PlatformIO, vous devez ajouter les lignes suivantes au fichier platformio.ini pour inclure les bibliothèques (modifiez également la vitesse du moniteur série à 115200) :
monitor_speed=115200
lib_deps = ESP Async WebServer
arduino-libraries/Arduino_JSON @ 0.1.0
arduino-libraries/Stepper @ ^1.1.3
5) Diagramme schématique
Le diagramme schématique suivant montre les connexions entre le moteur pas à pas et l’ESP32.
Remarque : Vous devez alimenter le pilote de moteur à l’aide d’une alimentation externe de 5 V.
Pilote de moteur | ESP32 |
EN 1 | GPIO 19 |
EN 2 | GPIO 18 |
IN3 | GPIO 5 |
IN4 | GPIO 17 |
1. Contrôlez le moteur pas à pas avec le formulaire HTML
Dans cette section, vous apprendrez à créer un formulaire HTML simple pour contrôler le moteur pas à pas.
Voici comment cela fonctionne:
- Sur la page Web, vous pouvez choisir si vous voulez que le moteur tourne dans le sens des aiguilles d’une montre ou dans le sens inverse des aiguilles d’une montre. Ce sont des boutons radio. Les boutons radio sont généralement affichés sous forme de petits cercles, qui sont remplis ou mis en surbrillance lorsqu’ils sont sélectionnés. Vous ne pouvez sélectionner qu’un seul bouton radio dans un groupe donné à la fois.
- Il existe un champ de saisie de type nombre dans lequel l’utilisateur peut saisir un nombre, dans ce cas, le nombre d’étapes.
- Enfin, un bouton appelé GO! de type submit envoie les données au serveur via une requête HTTP POST.
Formulaire HTML et champs de saisie
Dans cette section, nous allons examiner le code HTML pour créer le formulaire.
En HTML, la balise