esp 01 speichert keine variablen

Hallo Community,
ich habe mir ein Esp 01 zugelegt und spiele gerade mit requests und einer Led rum.
Das Problem ist, das er die variable led_state auf false lässt und trz die led anmacht.

/**
   BasicHTTPClient.ino

    Created on: 24.05.2015

*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#include <WiFiClient.h>

ESP8266WiFiMulti WiFiMulti;
const char* ssid = ""; //Enter SSID
const char* password = ""; //Enter Password
bool led_state = false;
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
  Serial.begin(115200);
  // Serial.setDebugOutput(true);

  Serial.println();
  Serial.println();
  Serial.println();

  for (uint8_t t = 4; t > 0; t--) {
    Serial.printf("[SETUP] WAIT %d...\n", t);
    Serial.flush();
    delay(1000);
  }

  WiFi.mode(WIFI_STA);
  WiFiMulti.addAP(ssid, password);

}

void loop() {
  // wait for WiFi connection
  if ((WiFiMulti.run() == WL_CONNECTED)) {

    WiFiClient client;

    HTTPClient http;

    Serial.print("[HTTP] begin...\n");
    if (http.begin(client, "http://192.168.178.72:8000/test")) {  // HTTP


      Serial.print("[HTTP] GET...\n");
      // start connection and send HTTP header
      int httpCode = http.GET();

      // httpCode will be negative on error
      if (httpCode > 0) {
        // HTTP header has been send and Server response header has been handled
        //Serial.printf("[HTTP] GET... code: %d\n", httpCode);

        // file found at server
        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
          String payload = http.getString();
          if (payload == "on") {
            led_state=true;
          }
          else if (payload == "off") {
            led_state=false;
          }
          Serial.println(payload);
        }
      } else {
        Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
      }

      http.end();
    } else {
      Serial.printf("[HTTP} Unable to connect\n");
    }
  }
  if (led_state) {
    digitalWrite(LED_BUILTIN, HIGH);

  } else {
    digitalWrite(LED_BUILTIN, LOW);

  }
  Serial.println(led_state);
  delay(10000);
}

Ich frag mich jetzt wieso dieser nicht die Variable ändert und wieso die Led auch nicht ausgeht.
Hier der Output aus dem Seriellen Monitor

[HTTP] begin...
[HTTP] GET...
"on"
0
[HTTP] begin...
[HTTP] GET...
"on"
0
[HTTP] begin...
[HTTP] GET...
"on"
0
[HTTP] begin...
[HTTP] GET...
"on"
0
[HTTP] begin...
[HTTP] GET...
"off"
0
[HTTP] begin...
[HTTP] GET...
"off"
0

Ich hoffe irgendwer kann mir weiter helfen.

Falls das im Sketch Deine realen Zugangsdaten sind, solltest Du die löschen und zu Hause ändern.

Gruß Tommy

ohh f*ck .. danke

Hallo,

dann bau doch mal ein bis zwei Serial.print ´() hier ein

Serial.println(playload);
if (payload == "on") {
            led_state=true;
            Serial.println("on erkannt")
          }

vermutlich klappt die if Bedingung mit dem Vergleich schon nicht

Nachtrag einen hast Du ja schon , dann noch die hex Zeichen dazu vermutlich hängt noch was dran das Du nicht siehst

Heinz

ok der fehler ist echt dumm. Der python webserver returned mit return "on" on der esp hat die " mit als string gezählt .

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.