Navigation

    makesmart

    • Registrieren
    • Anmelden
    • Suche
    • Aktuell
    • Tags
    • Kategorien
    • Ungelesen
    • Beobachtet
    • Beliebt
    • Gespeichert
    • Gruppen

    ESP8266 HTTP-GET Request

    Tipps, Tricks & Tutorials
    code esp8266 get http request
    1
    1
    466
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • cooper
      cooper Content Creator zuletzt editiert von cooper

      Eine HTTP-GET Request macht eigentlich nichts anderes, als einen Link aufzurufen- meinetwegen den Link http://makesmart-server/meine/api.

      Mal angenommen hinter diesem Link steckt ein PHP-Script, was beim Aufruf der URL ausgeführt wird und anschließend einen Text im Webbrowser anzeigt z.B

      operation_successful
      

      Der folgende Code dient als Basic-Code für Projekte mit deinem ESP8266. Der Code führt solch eine HTTP GET-Request aus. Ob hinter der aufgerufenen URL ein PHP-Script läuft oder auch was anderes, spielt keine Rolle. Der ESP übernimmt lediglich den Part des Aufrufens der URL.

      Der Rückgabewert der URL (falls vorhanden) wird in einer Variable gespeichert und kann mit dem ESP8266 weiterverarbeitet werden. Ein Weiterarbeiten mit dem Rückgabewert ist nicht zwingend Notwendig.

      Der folgende Code unterstützt nur die Request an einen HTTP-Server.

      /*
          HTTP-GET Request
          Basic-Code für GET-Request an einen HTTP-Server
          Created by cooper, 2020
          makesmart.net
      */
      
      #include <ESP8266WiFi.h>
      #include <ESP8266HTTPClient.h>
      
      HTTPClient sender;
      
      // WLAN-Daten
      const char* ssid = "WLAN_SSID";
      const char* password = "WLAN_PASSWD";
      
      
      void setup() {
        Serial.begin(115200);
        
        WiFi.begin(ssid, password);
      
        while (WiFi.status() != WL_CONNECTED) {
          delay(200);
          Serial.print(".");
        }
      
        Serial.println("Verbunden!");
      
      
        if (sender.begin("http://makesmart-server/meine/api")) {
      
          // HTTP-Code der Response speichern
          int httpCode = sender.GET();
         
      
          if (httpCode > 0) {
            
            // Anfrage wurde gesendet und Server hat geantwortet
            // Info: Der HTTP-Code für 'OK' ist 200
            if (httpCode == HTTP_CODE_OK) {
      
              // Hier wurden die Daten vom Server empfangen
      
              // String vom Webseiteninhalt speichern
              String payload = sender.getString();
      
              // Hier kann mit dem Wert weitergearbeitet werden
             // ist aber nicht unbedingt notwendig
              Serial.println(payload);
              
              
              
            }
            
          }else{
            // Falls HTTP-Error
            Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str());
          }
      
          // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet
          sender.end();
          
        }else {
          Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!");
        }
        
      }
      
      
      void loop() {
      
      }
      

      Anpassungen


      Zuerst müssen die WLAN-Daten angepasst werden

      const char* ssid = "WLAN_SSID";
      const char* password = "WLAN_PASSWD";
      

      Die API, die aufgerufen wird, ist in folgender Funktion definiert:

      sender.begin("http://makesmart-server/meine/api");
      

      Der zurückgegebene String wird mithilfe der getString()-Funktion gespeichert.

      String returned_data = sender.getString();
      

      Disclaimer

      Der Code funktioniert nur bei einer Request an einen HTTP-Server. Ich habe bereits eine zweite Version geschrieben, die Request an einen HTTPS-Server unterstützt. Dazu wird ein extra Basic-Code folgen.

      Anwendung

      Der Code kann wie bereits erwähnt u.a dafür verwendet werden, Scripte oder Programme hinter einem Webserver auszuführen und zu starten.


      Mit dieser Methode könnten auch Variablen und Werte übertragen werden - z.B von Sensoren oder anderem Stuff: ESP8266 GET-Variablen auslesen


      Schon allein das Aufrufen einer URL per Knopfdruck, kann den ESP zu einer Fernbedienung machen. 😉


      … usw. usw.

      Beispiele

      Anbei ein paar Links & Inspirationen zur Verwendung dieses Codes.

      • Battlescore - Spielstand-Zähler: ESP8266 Projekt
      • ESP8266 D1 Mini WLAN-Relais mit API
      • ESP8266 GET-Variablen auslesen

      Die Links werden aktualisiert, wenn ich weiteres passende finde. 🙂


      Viel Spaß mit euren Projekten,

      cooper

      1 Antwort Letzte Antwort Antworten Zitieren 1
      • 1 / 1
      • First post
        Last post