Utiliser un ESP32 comme client HTTP pour envoyer des informations via WiFi à un serveur distant.
Dans ce tutoriel, nous allons explorer comment utiliser le microcontrôleur ESP32 comme client HTTP pour envoyer des données à un serveur distant via WiFi. L'ESP32 est une carte de développement puissante qui combine des capacités WiFi et Bluetooth, ce qui la rend idéale pour les applications IoT. À la fin de ce tutoriel, vous serez en mesure d'envoyer des requêtes HTTP avec des paramètres définis par l'utilisateur et de recevoir des réponses d'un serveur.
Nous allons utiliser l'IDE Arduino pour programmer l'ESP32, et je vais vous guider à travers les étapes nécessaires pour configurer votre environnement. Pour un guide visuel, je vous recommande de consulter la vidéo associée (dans la vidéo à :00).
Matériel expliqué
Le composant principal de ce projet est le microcontrôleur ESP32, spécifiquement le module WROOM32. Ce module dispose de 38 broches pouvant être utilisées pour diverses opérations d'entrée/sortie. Il fonctionne à 3,3 volts et inclut des capacités WiFi et Bluetooth intégrées. L'ESP32 est polyvalent et peut être utilisé dans de nombreuses applications, grâce à ses broches GPIO et ses protocoles de communication.
En plus de l'ESP32, vous pourriez avoir besoin d'un convertisseur USB-vers-série pour la programmation et le débogage. Le module contient également un régulateur de tension, qui garantit que le microcontrôleur reçoit une alimentation stable de 3,3V d'une source de tension plus élevée. Dans l'ensemble, l'ESP32 est un microcontrôleur bien équipé, adapté à divers projets.
Détails de la fiche technique
| Fabricant | Espressif Systems |
|---|---|
| Numéro de pièce | ESP32-WROOM-32 |
| Tension Logic/IO | 3,3 V |
| Tension d'alimentation | 5 V (max) |
| Courant de sortie (par canal) | 12 mA |
| Courant de pointe (par canal) | 160 mA |
| Directives sur la fréquence PWM | 1 kHz |
| Seuils de logique d'entrée | 0,3 * VDD(bas), 0,7 * VDD(élevé) |
| Chute de tension / RDS(on)/ saturation | 0,5 V |
| Limites thermiques | 125 °C |
| Colis | QFN |
| Notes / variantes | Plusieurs tailles de flash disponibles |
- Assurez-vous de niveaux de tension corrects (3,3V) pour éviter d'endommager l'ESP32.
- Utilisez des condensateurs de découplage appropriés près des broches d'alimentation pour une opération stable.
- Implémentez un dissipateur de chaleur si le module fonctionne près de ses valeurs de courant maximal.
- Utilisez le WiFi intégré de l'ESP32 pour une connectivité réseau facile.
- Soyez prudent avec les configurations des broches GPIO pour éviter les courts-circuits.
- Testez avec des croquis simples pour confirmer la fonctionnalité avant des intégrations complexes.
Instructions de câblage
Pour câbler l'ESP32 pour ce projet, commencez par connecter la broche de mise à la terre de l'ESP32 à la mise à la terre de votre alimentation. Ensuite, connectez l'alimentation de 5V à la broche Vin ou V5 de l'ESP32, ce qui alimentera le régulateur de tension interne et fournira 3,3V au microcontrôleur.
Pour la fonctionnalité de client HTTP, assurez-vous que votre ESP32 est connecté à un réseau WiFi. Vous devrez connecter les broches appropriées pour tout composant supplémentaire que vous pourriez utiliser, comme des capteurs ou des LED. Par exemple, connectez une LED à la broche GPIO 2, avec une résistance en série pour limiter le courant. La jambe la plus longue (anode) de la LED doit être connectée à la broche 2, tandis que la jambe la plus courte (cathode) se connecte à la masse.
Exemples de code et guide étape par étape
Dans l'extrait de code fourni, nous initialisons le client HTTP et définissons des identifiants clés tels quemainURL, qui contient l'URL à laquelle nous envoyons la requête, etuser, qui contient des informations utilisateur. Le code configure également l'ESP32 pour se connecter à un réseau WiFi spécifié.
String mainURL ="http://ddas.cc/httpTest/?";
String user="user=ahmad22";Ici,mainURLest le point de terminaison que nous visons, tandis queusercontient le paramètre utilisateur qui sera envoyé dans la requête HTTP.
Dans lesetup()fonction, nous commençons la communication série et établissons la connexion WiFi. Nous préparons également la requête HTTP en créant une instance du client HTTP.
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("Robojax", "Your password");
}Cette section initialise le moniteur série pour le débogage et se connecte au réseau WiFi. Les identifiants sont définis dans leaddAP()méthode.
Dans leloop()fonction, nous vérifions une connexion WiFi réussie et procédons à l'envoi de la requête HTTP GET. Les paramètres incluent les valeurs de l'utilisateur et de la température.
if (http.begin(client, mainURL+user+"&temp="+temperature+"&type="+type)) {
int httpCode = http.GET();}Ce code construit l'URL complète avec les paramètres de requête et exécute la requête GET. Si elle est réussie, elle récupère la réponse du serveur.
Démonstration / À quoi s'attendre
Lorsque l'ESP32 est alimenté et que le programme s'exécute, il doit se connecter au réseau WiFi spécifié et envoyer une requête HTTP GET au serveur. Vous pouvez surveiller la sortie dans le Moniteur Série, où vous verrez le code d'état HTTP et le chargement utile de la réponse du serveur. Les problèmes courants peuvent inclure des identifiants WiFi incorrects ou un serveur inaccessible (dans la vidéo à 12:30).
Horodatage vidéo
- 00:00 Début
- 00:53 Introduction
- 05:04 broches 5V et 3,3V
- 08:38 Caractéristiques expliquées
- 14:03 Épingles sur la fiche technique
- 17:00 Exemple de clignotement
- 19:14 Exemples de clignotement avec LED externe
- 21:00 Test du Client HTTP
Ce dont vous pourriez avoir besoin
-
AliExpressAcheter une caméra ESP32 sur AliExpress 2s.click.aliexpress.com
Ressources et références
-
DocumentationPage de documentation officielle de l'ESP32docs.espressif.com
Fichiers📁
Fiche technique (pdf)
-
esp32_datasheet_en
esp32_datasheet_en.pdf0.94 MB