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.
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.
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 |
- 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
Dinge, die Sie vielleicht brauchen
-
AliExpressESP32-Kamera von AliExpress kaufen 2s.click.aliexpress.com
Ressourcen & Referenzen
-
DokumentationESP32 offizielle Dokumentationsseitedocs.espressif.com
Dateien📁
Datenblatt (pdf)
-
esp32_datasheet_en
esp32_datasheet_en.pdf0.94 MB