Hier ist noch der Code =)
den musste ich leider auf einen 2. Eintrag machen da zu vielen Zeichen =)
#include <WiFi.h>
#include <ESPmDNS.h>
#include <SPIFFS.h>
#include <WiFiClient.h>
#include <string.h>
#include <FS.h>
#include <WebServer.h>
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#include <esp_wifi.h>
const char* WertAnalog = "" ;
const char* Spannung = "" ;
const char* serial = "Sensor1"; // Seriennummer
float Faktor = 71.133333; // Für die Berechnung A0 --> Spannung
float Korrektur = 0.35; // Korrekturwert
const char* hostname="www.meinserver.de";
int countUp = 0;
#define uS_TO_S_FACTOR 1000000 /* Conversion factor for u seconds to seconds */
#define TIME_TO_SLEEP 300 /* Time ESP32 will go to sleep (in seconds) */
WiFiClient client;
WebServer server(80);
#define debug true
#define SetupPin 14 // INI wifimanager starten mit LOW-Pegel an SetupPin
#include "INIwifimanager.h"
String ssid,ssid2, password,password2,host ;
float korr1,korr2,korr3,korr4,korr5,korr6,korr7,korr8,korr9,korr10,korr11,korr12,korr13,korr14,korr15,korr16,korr17,korr18,korr19,korr20,korr21,korr22;
//**********
// Diese Funktion wird beim lesen jeder Zeile der INI-Datei ausgeführt *
//***********
void DatenLaden (String argument, String Wert)
{
String wert1, wert2;
if (argument.indexOf ( "wifidata" ) >= 0)
{
int inx = Wert.indexOf ( "/" ) ; // 2 Werte getrent durch "/" Zeichen
wert1 = Wert.substring ( 0, inx ) ; // Zugangsdaten = MeinWiFi/MeinPasswort
wert2 = Wert.substring ( inx + 1 ) ;
wifiMulti.addAP(wert1.c_str(), wert2.c_str());
}
if (argument.indexOf ( "hostname" ) >= 0) host = Wert;
if (argument.indexOf ( "korr1" ) >= 0) korr1 = Wert.toFloat();
if (argument.indexOf ( "korr2" ) >= 0) korr2 = Wert.toFloat();
if (argument.indexOf ( "korr3" ) >= 0) korr3 = Wert.toFloat();
if (argument.indexOf ( "korr4" ) >= 0) korr4 = Wert.toFloat();
if (argument.indexOf ( "korr5" ) >= 0) korr5 = Wert.toFloat();
if (argument.indexOf ( "korr6" ) >= 0) korr6 = Wert.toFloat();
if (argument.indexOf ( "korr7" ) >= 0) korr7 = Wert.toFloat();
if (argument.indexOf ( "korr8" ) >= 0) korr8 = Wert.toFloat();
if (argument.indexOf ( "korr9" ) >= 0) korr9 = Wert.toFloat();
if (argument.indexOf ( "korr10" ) >= 0) korr10 = Wert.toFloat();
if (argument.indexOf ( "korr11" ) >= 0) korr11 = Wert.toFloat();
if (argument.indexOf ( "korr12" ) >= 0) korr12 = Wert.toFloat();
if (argument.indexOf ( "korr13" ) >= 0) korr13 = Wert.toFloat();
if (argument.indexOf ( "korr14" ) >= 0) korr14 = Wert.toFloat();
if (argument.indexOf ( "korr15" ) >= 0) korr15 = Wert.toFloat();
if (argument.indexOf ( "korr16" ) >= 0) korr16 = Wert.toFloat();
if (argument.indexOf ( "korr17" ) >= 0) korr17 = Wert.toFloat();
if (argument.indexOf ( "korr18" ) >= 0) korr18 = Wert.toFloat();
if (argument.indexOf ( "korr19" ) >= 0) korr19 = Wert.toFloat();
if (argument.indexOf ( "korr20" ) >= 0) korr20 = Wert.toFloat();
if (argument.indexOf ( "korr21" ) >= 0) korr21 = Wert.toFloat();
if (argument.indexOf ( "korr22" ) >= 0) korr22 = Wert.toFloat();
}
void IRAM_ATTR isr() {
digitalWrite(LED_BUILTIN, LOW);
Einstellen();
}
void setup()
{
Serial.println("Wifi Status");
Serial.println(WiFi.status());
pinMode(LED_BUILTIN, OUTPUT);
attachInterrupt(SetupPin, isr, FALLING);
char inser;
Serial.begin(115200);
Serial.println("ini lesen");
esp_wifi_start();
if (!INI_Einlesen()) Einstellen(); // INI -Datei einlesen, wenn geht nicht, starte INI WiFiManager
Serial.println("Wifi Status");
Serial.println(WiFi.status());
//*******
//pinMode(SetupPin, INPUT_PULLUP); // starte INI WiFiManager wenn SetupPin Low ist
//digitalWrite(SetupPin,HIGH);
delay(3000);
if (!digitalRead(SetupPin)) Einstellen();
//*******
// Starte WiFi Verbindung *
//*****
if (debug)Serial.println("Warte auf Verbindung");
Serial.println("jetzt Starten Wifi");
delay(300);
// if (wifiMulti.run() != WL_CONNECTED) Einstellen();
while (wifiMulti.run() != WL_CONNECTED) {
delay(500);
Serial.print(".");
countUp = countUp+1;// Zähler hochzählen falls keine Verbindung
if(countUp >= 60){
//esp_wifi_stop();
//esp_wifi_deinit();
Serial.println("Wifi Status");
Serial.println(WiFi.status());
Serial.println("Schlafmodus ");
delay(3000);
esp_wifi_disconnect();
delay(100);
esp_wifi_stop();
delay(100);
esp_wifi_deinit();
delay(3000);
Serial.println("Wifi Status");
Serial.println(WiFi.status());
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
esp_deep_sleep_start();
//ESP.restart();//Wenn größer gleich 240(2Minuten) dann Neustart
}
}
if (debug) Serial.println("Verbunden mit " + WiFi.SSID());
if (debug) Serial.print("IP Addresse: ");
if (debug) Serial.println(WiFi.localIP());
MDNS.begin(host.c_str());
if (debug) Serial.println("Offnen Sie http://" + host + ".local in Ihrem Browser");
server.onNotFound([]() {
server.send(404, "text/plain", "FileNotFound");
});
server.on("/", []() { // index.html an Browser senden
File file = SPIFFS.open("/index.html", "r");
size_t sent = server.streamFile(file, "text/html");
file.close();
});
server.begin();
if (debug)Serial.println("HTTP Server gestartet");
}
void loop()
{
server.handleClient();
delay(4000);
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
//## Spannung senden
// Faktor an Wert anpassen
if(sensorValue >= 100 && sensorValue < 499) {
Faktor = 86.9461279;
Korrektur = korr1;
}
else if(sensorValue <700){
Faktor = 89.1172161;
Korrektur = korr2;
}
else if(sensorValue <800){
Faktor = 94.2958333;
Korrektur = korr3;
}
else if(sensorValue <1000){
Faktor = 97.6452242;
Korrektur = korr4;
}
else if(sensorValue <1100){
Faktor = 101.202381;
Korrektur = korr5;
}
else if(sensorValue <1300){
Faktor = 103.892732;
Korrektur = korr6;
}
else if(sensorValue <1400){
Faktor = 105.523077;
Korrektur = korr7;
}
else if(sensorValue <1600){
Faktor = 107.384723;
Korrektur = korr8;
}
else if(sensorValue <1700){
Faktor = 108.983871;
Korrektur = korr9;
}
else if(sensorValue <1900){
Faktor = 109.890969;
Korrektur = korr10;
}
else if(sensorValue <2000){
Faktor = 110.869841;
Korrektur = korr11;
}
else if(sensorValue <2200){
Faktor = 111.8725;
Korrektur = korr12;
}
else if(sensorValue <2320){
Faktor = 112.667683;
Korrektur = korr13;
}
else if(sensorValue <2500){
Faktor = 113.080607;
Korrektur = korr14;
}
else if(sensorValue <2630){
Faktor = 113.71256;
Korrektur = korr15;
}
else if(sensorValue <2830){
Faktor = 114.398267;
Korrektur = korr16;
}
else if(sensorValue <2960){
Faktor = 115.047059;
Korrektur = korr17;
}
else if(sensorValue <3200){
Faktor = 115.954667;
Korrektur = korr18;
}
else if(sensorValue <3330){
Faktor = 117.42013;
Korrektur = korr19;
}
else if(sensorValue <3600){
Faktor = 119.585322;
Korrektur = korr20;
}
else if(sensorValue <3700){
Faktor = 121.933333;
Korrektur = korr21;;
}
else if(sensorValue <4400){
Faktor = 124.987564458;
Korrektur = korr22;
}
float voltage = sensorValue / Faktor + Korrektur;
Serial.println("\nStarting connection to server...");
Serial.println(sensorValue);
//URL wird erzeugt und gesendet
WiFiClient client;
if (client.connect(hostname, 80)) {
String url = "Eintragen.php";
url += "?serialnumber=";
url += serial;
url += "&wert=";
url += voltage;
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + hostname + "\r\n" +
"Connection: close\r\n\r\n");
client.println(); //Verbindungs mit Server aufbauen und HTTP Anfrage senden
}
client.stop();
//Beenden der Verbindung
Serial.println("Wifi Status");
Serial.println(WiFi.status());
Serial.println("Schlafmodus 3 sek warten");
delay(3000);
esp_wifi_disconnect();
delay(100);
esp_wifi_stop();
delay(100);
esp_wifi_deinit();
delay(3000);
Serial.println("Wifi Status");
Serial.println(WiFi.status());
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
esp_deep_sleep_start();
}