Arduino:
Einen HTTP-Request senden

Wie geht das:

Mit dem ESP8266/ESP32 und der entsprechenden Bibliothek sieht das so aus:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "DEIN_WIFI_NAME";
const char* password = "DEIN_WIFI_PASSWORT";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Verbindung mit WLAN...");
  }

  if (WiFi.status() == WL_CONNECTED) { 
    HTTPClient http;
    http.begin("http://jsonplaceholder.typicode.com/users/1"); // Deine Ziel-URL
    int httpCode = http.GET();

    if (httpCode > 0) { 
      String payload = http.getString();
      Serial.println(httpCode);
      Serial.println(payload);
    }
    http.end();
  }
}

void loop() {
  // Hier ist nichts weil die HTTP-Anfrage nur einmal in 'setup()' gemacht wird.
}

Hier bekommst du eine Ausgabe wie:

200
{
  "id": 1,
  "name": "Leanne Graham",
  ...
}

200 ist der HTTP Statuscode für “OK” – deine Anfrage war erfolgreich.

Tiefere Einblicke

Das Senden von HTTP-Anfragen mit einem Arduino begann mit einfacheren Netzwerkmodulen, wie dem Ethernet Shield. Heute sind Boards wie der ESP8266 und der ESP32 populärer. Sie integrieren WLAN-Funktionalität, was das Ganze kompakter und kostengünstiger macht.

Alternativen zum ESP8266/ESP32 wären etwa der Arduino MKR1000 oder Ethernet-Shields, die allerdings oft komplizierter in der Handhabung sind.

Wichtig bei der Implementierung: Sicherheit. HTTP ohne S (HTTPS) ist nicht verschlüsselt. Für sensible Daten also lieber HTTPS verwenden. ESP8266/ESP32 unterstützen das mit der WiFiClientSecure-Bibliothek.

Siehe auch

Für mehr Details sieh dir die offizielle ESP8266/ESP32-Dokumentation an. Hier findest du Infos zu Funktionen und Beispielen:

Möchtest du tiefer in das Thema einsteigen, sind folgende Ressourcen hilfreich:

Einen einfachen Server, um Anfragen zu testen und Beispielausgaben zu sehen, bietet: