Verwendung eines ESP32 als HTTP-Client, um Informationen über WiFi an einen entfernten Server zu senden

Verwendung eines ESP32 als HTTP-Client, um Informationen über WiFi an einen entfernten Server zu senden

In diesem Tutorial werden wir erkunden, wie man den ESP32-Mikrocontroller als HTTP-Client verwendet, um Daten über WiFi an einen entfernten Server zu senden. Der ESP32 ist eine leistungsstarke Entwicklungsplatine, die WiFi- und Bluetooth-Funktionen kombiniert und sich ideal für IoT-Anwendungen eignet. Am Ende dieses Tutorials werden Sie in der Lage sein, HTTP-Anfragen mit benutzerdefinierten Parametern zu senden und Antworten von einem Server zu empfangen.

ESP32-38pin-1

Wir werden die Arduino IDE zur Programmierung des ESP32 verwenden, und ich werde Sie durch die notwendigen Schritte führen, um Ihre Umgebung einzurichten. Für eine visuelle Anleitung empfehle ich, das zugehörige Video anzusehen (im Video bei 00:00).

Hardware erklärt

Die Hauptkomponente dieses Projekts ist der ESP32-Mikrocontroller, speziell das WROOM32-Modul. Dieses Modul verfügt über 38 Pins, die für verschiedene Eingabe-/Ausgabeoperationen verwendet werden können. Es arbeitet mit 3,3 Volt und umfasst integrierte WiFi- und Bluetooth-Funktionen. Der ESP32 ist vielseitig einsetzbar und kann dank seiner GPIO-Pins und Kommunikationsprotokolle in vielen Anwendungen verwendet werden.

ESP32-3

Zusätzlich zum ESP32 benötigen Sie möglicherweise einen USB-zu-Seriell-Converter zum Programmieren und Debuggen. Das Modul enthält auch einen Spannungsregler, der sicherstellt, dass der Mikrocontroller eine stabile 3,3 V Versorgung aus einer höheren Spannungsquelle erhält. Insgesamt ist der ESP32 ein gut ausgestatteter Mikrocontroller, der sich für verschiedene Projekte eignet.

Datenblattdetails

Hersteller Espressif Systems
Teilnummer ESP32-WROOM-32
Logik/I/O-Spannung 3,3 V
Versorgungsspannung 5 V (max)
Ausgangsstrom (pro Kanal) 12 mA
Spitzenstrom (pro Kanal) 160 mA
PWM-Frequenzrichtlinien 1 kHz
Eingangslogikschwellen 0,3 * VDD(niedrig), 0,7 * VDD(hoc)
Spannungsabfall / RDS(on)/ Sättigung 0,5 V
Thermische Grenzen 125 °C
Paket QFN
Hinweise / Varianten Mehrere Blitzgrößen verfügbar
ESP32-2
  • Stellen Sie sicher, dass die Spannungspegel korrekt sind (3,3 V), um eine Beschädigung des ESP32 zu vermeiden.
  • Verwenden Sie geeignete Entkopplungskondensatoren in der Nähe der Stromanschlüsse für einen stabilen Betrieb.
  • Implementieren Sie eine Wärmeableitung, wenn das Modul nahe seiner maximalen Strombelastung betrieben wird.
  • Nutzen Sie das integrierte WiFi des ESP32 für eine einfache Netzwerkverbindung.
  • Seien Sie vorsichtig mit den GPIO-Pin-Konfigurationen, um Kurzschlüsse zu vermeiden.
  • Teste mit einfachen Skizzen, um die Funktionalität vor komplexen Integrationen zu bestätigen.

Verdrahtungsanweisungen

Um das ESP32 für dieses Projekt zu verdrahten, beginnen Sie damit, den Massepin des ESP32 mit der Masse Ihrer Stromversorgung zu verbinden. Verbinden Sie anschließend die 5V-Stromversorgung mit dem Vin- oder V5-Pin des ESP32, der den internen Spannungsregler speist und 3,3V an den Mikrocontroller liefert.

Für die HTTP-Client-Funktionalität stellen Sie sicher, dass Ihr ESP32 mit einem WLAN-Netzwerk verbunden ist. Sie müssen die entsprechenden Pins für alle zusätzlichen Komponenten anschließen, die Sie möglicherweise verwenden, wie Sensoren oder LEDs. Schließen Sie beispielsweise eine LED an GPIO-Pin 2 an, mit einem Widerstand in Reihe, um den Strom zu begrenzen. Der längere Bein (Anode) der LED sollte mit Pin 2 verbunden werden, während das kürzere Bein (Kathode) mit Masse verbunden wird.

Codebeispiele & Anleitung

Im bereitgestellten Codeausschnitt initialisieren wir den HTTP-Client und definieren wichtige Kennzeichen wiemainURL, die die URL enthält, an die wir die Anfrage senden, unduser, das Benutzerdaten enthält. Der Code richtet außerdem den ESP32 ein, um sich mit einem bestimmten WLAN-Netzwerk zu verbinden.

String mainURL ="http://ddas.cc/httpTest/?";
String user="user=ahmad22";

Hier,mainURList der Endpoint, den wir anvisieren, währenduserhält den Benutzerparameter, der in der HTTP-Anfrage gesendet wird.

In dersetup()Funktion, wir beginnen die serielle Kommunikation und richten die WiFi-Verbindung ein. Wir bereiten auch die HTTP-Anfrage vor, indem wir eine Instanz des HTTP-Clients erstellen.

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFiMulti.addAP("Robojax", "Your password");
}

Dieser Abschnitt initialisiert den seriellen Monitor zur Fehlerbehebung und verbindet sich mit dem WiFi-Netzwerk. Die Anmeldedaten sind definiert in deraddAP()Methode.

In derloop()Funktion überprüfen wir eine erfolgreiche WiFi-Verbindung und fahren fort, die HTTP GET-Anfrage zu senden. Die Parameter umfassen die Benutzer- und Temperaturwerte.

if (http.begin(client, mainURL+user+"&temp="+temperature+"&type="+type)) {
  int httpCode = http.GET();}

Dieser Code erstellt die vollständige URL mit den Abfrageparametern und führt die GET-Anfrage aus. Bei Erfolg wird die Antwort des Servers abgerufen.

Demonstration / Was Sie erwarten können

Wenn der ESP32 eingeschaltet wird und das Programm läuft, sollte es sich mit dem angegebenen WiFi-Netzwerk verbinden und eine HTTP GET-Anfrage an den Server senden. Sie können die Ausgabe im Serial Monitor überwachen, wo Sie den HTTP-Statuscode und die Antwortpayload vom Server sehen werden. Häufige Probleme können falsche WiFi-Anmeldeinformationen oder ein unerreichbarer Server sein (im Video um 12:30).

Video-Zeiten

  • 00:00 Start
  • 00:53 Einführung
  • 05:04 5V- und 3,3V-Pins
  • 08:38 Funktionen erklärt
  • 14:03 Pins auf dem Datenblatt
  • 17:00 Blink Beispiel
  • 19:14 Blink-Beispiel mit externem LED
  • 21:00 HTTP-Client-Test

Bilder

ESP32-1
ESP32-1
ESP32-2
ESP32-2
ESP32-3
ESP32-3
ESP32-38pin-1
ESP32-38pin-1
ESP32-38pin-2
ESP32-38pin-2
241-ESP32 HTTP Client code example
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Datenblatt (pdf)