Hallo! Ich möchte von einem ESP8266 über mein Wlan ein Relais schalten. Mit dem angehängten Code schaltet das Relais das erste mal im Setup. in der Loop gibt es keine Reaktion mehr. Bitte helft mir. Was mache ich falsch?
String off = "http://192.168.1.143/relay_off";
String on = "http://192.168.1.143/relay_on";
String Befehl = on;
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
HTTPClient sender;
WiFiClient wifiClient;
// WLAN-Daten
const char* ssid = "xyz";
const char* password = "1234;
void setup() {
Serial.begin(115200);
Serial.println();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(200);
Serial.print(".");
}
Serial.println("Verbunden!");
if (sender.begin(wifiClient, Befehl))
{
Serial.println("Befehl=" +Befehl);
// Optional; Falls Header für Authentifizierung o.ä gesetzt werden sollen
// sender.addHeader("Authorization", "Bearer dein_token_hier");
// 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()
{
Befehl = "on";
Serial.println(Befehl);
senden();
delay(1999);
Befehl = "off";
Serial.println(Befehl);
senden();
delay(1000);
}
void senden()
{
// sender.begin;
if (sender.begin(wifiClient, Befehl))
{
// Optional; Falls Header für Authentifizierung o.ä gesetzt werden sollen
// sender.addHeader("Authorization", "Bearer dein_token_hier");
// 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();
}