#include <WiFi.h>
#include <HTTPClient.h>
#include <esp_sleep.h>
const char* ssid = "Wokwi-GUEST"; // Name des WLAN-Netzwerks
const char* password = ""; // Passwort des WLAN-Netzwerks
const char* server = "https://esp8266-server.de/"; // URL des Servers
#define gpioWakeUp GPIO_NUM_7 // GPIO-Pin für den Wake-Up-Signal
void setup() {
Serial.begin(115200); // Initialisiere serielle Kommunikation
Serial.println(F("Start")); // Sende "Start"-Meldung über die serielle Schnittstelle
WiFi.begin(ssid, password); // Verbinde dich mit dem WLAN-Netzwerk
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(F("."));
}
Serial.println("");
Serial.println(F("WiFi verbunden"));
// Sende POST-Anfrage an den Server
if (postToServer()) {
Serial.println(F("POST-Anfrage erfolgreich"));
} else {
Serial.println(F("POST-Anfrage fehlgeschlagen"));
}
// Konfiguriere GPIO7 als Wake-Up-Pin mit Pull-Down-Widerstand
pinMode(gpioWakeUp, INPUT_PULLDOWN);
// Aktiviere den externen Wake-Up auf GPIO7 mit niedrigem Pegel
esp_sleep_enable_ext0_wakeup(gpioWakeUp, 0);
// Starte den Deep-Sleep-Modus
esp_deep_sleep_start();
}
bool postToServer() {
HTTPClient http;
http.begin(server);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String postData = "UBatt=50";
int httpCode = http.POST(postData);
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(F("Payload: "));
Serial.println(payload);
return true;
} else {
Serial.print(F("HTTP-Fehler: "));
Serial.println(httpCode);
return false;
}
} else {
Serial.println(F("Verbindung zum Server fehlgeschlagen"));
return false;
}
}
void loop() {
// Im Deep-Sleep-Modus
}