Zuletzt geändert: 2018-08-20

Esp8266 Http Client als Arduino Tab.

HttpClient.ino

// ****************************************************************
// Sketch Esp8266 Http Client Modular(Tab)
// created: Jens Fleischer, 2018-08-20
// last mod: Jens Fleischer, 2018-08-20
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp8266
// Getestet auf: Nodemcu, Wemos D1 Mini Pro
/******************************************************************
  Copyright (c) 2018 Jens Fleischer. All rights reserved.

  This file is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
*******************************************************************/
// Diese Version von HttpClient sollte als Tab eingebunden werden.
// #include <ESP8266WebServer.h> oder #include <ESP8266WiFi.h> muss im Haupttab aufgerufen werden
// Die Funktion "Connect();" muss im Setup eingebunden sein.
// Die Funktion "httpClient();" kann nach dem Verbindungsaufbau aufgerufen werden.
/**************************************************************************************/

#include <ESP8266HTTPClient.h>

void httpClient() {
  const char* url = "http://192.168.178.33/bme280";        // trage hier die URL deines ESP... mit Bme280 Sketch ein

  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    Serial.printf("\nFunktion: %s meldet in Zeile: %d -> HttpClient Begin\n", __PRETTY_FUNCTION__, __LINE__);
    http.begin(url);
    int16_t httpCode = http.GET();
    if (httpCode > 0) {
      Serial.println("HTTP / 1.1 " + (String)httpCode);
      if (httpCode == HTTP_CODE_OK) {
        String payload = http.getString();
        Serial.println("Antwort: " + payload);

        int tempint = payload.substring(2, payload.length()).toInt();
        Serial.printf("Aussentemperatur: %d°C\n", tempint);
        float tempfloat = payload.substring(2, payload.length()).toFloat();
        Serial.printf("Aussentemperatur: %.1f°C\n", tempfloat);               // ab Core Version 2.4.0 -> ältere können kein float mit prinf ausgeben
        //Serial.println("Aussentemperatur: " + String(tempfloat,1) + "°C");  // bis Core Version 2.3.0
      }
    }
    else {
      Serial.println("Fehler: " + http.errorToString(httpCode));
    }
    http.end();
  }
}
  

Du kannst den Http Client in jedem beliebigen Programmteil aufrufen.
Du kannst httpClient() nach dem Verbindungsaufbau in deinem Sketch einbinden.

Beispiele



*************** einmalig im setup ****************

httpClient();




******************** in loop *********************

 const unsigned long interval = 1000UL * 20;               // Interval in Sekunden einstellen
  static unsigned long letzteMillis = 0;
  unsigned long aktuelleMillis = millis();
  if (aktuelleMillis - letzteMillis >= interval) {
    letzteMillis = aktuelleMillis;
    httpClient();
  }


Zurück