vor einiger zeit habt ihr mir ja schon mit meiner HTML Eingabeaufforderung für meine Lichtschranke geholfen.
Nun habe ich gemerkt sobald der Strom mal weg ist(was beim Elektriker ja mal öfter vorkommt ) sind ja auch die Einstellungen weg. Hmm doof…
Dann habe ich das mal mit dem Arduino UNO mal das mit dem Lesen und schreiben ausprobiert und es klappte auf Anhieb.
Hab mich schon gefeiert, denn das klappt ja sonst nie.
So dann hab ich das mit dem Nodemcu mal ausprobiert und natürlich ging nix.
Im Internet schlau bzw Dumm gelesen und nix verstanden.
20000 Grundverschiedene Beispiele und irgendwie hab ich es nicht geschafft diese auf mein Problem zurechtzuschneiden.
Dann habe ich mich daran Erinnert das es doch direkt in der Arduino IDE auch Beispiele gibt.
Es gibt dort jeweils zum lesen und zum schreiben einen Sketch.
Für den Arduino und auch für den ESP.
Das Beispiel für den Arduino läuft auch wiedermal einwandfrei.
Doch bei dem Beispiel für den ESP schreibe ich jede Sekunde eine 5 in die nächste Adresse vom ESP beim Lesen kommt aber statt 5:
48,51,52,50,51,55,99,100,100,49 usw. raus.
Woran liegt das?
Ach ja und kann mal jemand verraten, die ich den Sketch einfach in fo einen schönen Kasten anhängen kann?
Danke für die Tipps schon mal in Voraus
Schmittchen:
Doch bei dem Beispiel für den ESP schreibe ich jede Sekunde eine 5 in die nächste Adresse vom ESP beim Lesen kommt aber statt 5:
48,51,52,50,51,55,99,100,100,49 usw. raus.
Woran liegt das?
Ach ja und kann mal jemand verraten, die ich den Sketch einfach in fo einen schönen Kasten anhängen kann?
Danke für die Tipps schon mal in Voraus
Gruß Daniel
hast du den write sketch mindestens 512 Sekunden laufen lassen? denn du beschreibst jede Adresse in einem Sekunden Abstand, 512 Sekunden ist schon eine weile.
Ich habe mir nun mit anhand von Beispielen SPIFFS in meinen Sketch eingebunden.
Leider kommen auch hier beim auslesen andere Zahlen bei raus, wie beim einlesen.
Was mache ich falsch?
Der Code:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <FS.h>
#include "index.h" //Our HTML webpage conten
//SSID and Password to your ESP Access Point
const char* ssid = "Lichtschranke Stall 1";
const char* password = "12345678";
const char* filename0 = "/file.txt";
const char* filename1 = "/file1.txt";
int Eingang;
int Ausgang;
int NockeAusloestzeit = 0;
int Ausloestzeit = 0;
int NockeLaufzeit = 0;
int Laufzeit = 0;
ESP8266WebServer server(80); //Server on port 80
//==============================================================
// This rutine is exicuted when you open its IP in browser
//==============================================================
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
void handleLicht() {
if (server.arg("Laufzeit").toInt() >= 1)
{ File f = SPIFFS.open(filename0, "w");
Laufzeit = server.arg("Laufzeit").toInt();
f.print(Laufzeit);
f.close();
}
if (server.arg("Ausloesezeit").toInt() >= 1)
{ File a = SPIFFS.open(filename1, "w");
Ausloestzeit = server.arg("Ausloesezeit").toInt();
a.print(Ausloestzeit);
a.close();
}
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
//===============================================================
// SETUP
//===============================================================
void setup(void) {
Serial.begin(9600);
SPIFFS.begin ();
Serial.println("");
WiFi.mode(WIFI_AP); //Only Access point
WiFi.softAP(ssid, password); //Start HOTspot removing password will disable security
IPAddress myIP = WiFi.softAPIP(); //Get IP address
Serial.print("HotSpt IP:");
Serial.println(myIP);
server.on("/", handleRoot); //Which routine to handle at root location
server.begin(); //Start server
Serial.println("HTTP server started");
pinMode (D1, INPUT);
pinMode (16, OUTPUT);
server.on("/", HTTP_GET, handleRoot); // Rufen Sie die Funktion 'handleRoot' auf, wenn ein Client den URI "/" anfordert
server.on("/licht", HTTP_POST, handleLicht); // Rufen Sie die Funktion 'handleLogin' auf, wenn eine POST-Anfrage an den URI "/ login" gestellt wird
File f = SPIFFS.open(filename0, "r");
Laufzeit = (int)f.read();
f.close();
File a = SPIFFS.open(filename1, "r");
Ausloestzeit = (int)a.read();
a.close();
}
//===============================================================
// LOOP
//===============================================================
void loop(void) {
server.handleClient(); //Handle client requests
Eingang = digitalRead(D1);
File f = SPIFFS.open(filename0, "r");
Serial.print("Laufzeit:");
Serial.println((int)f.read());
f.close();
File a = SPIFFS.open(filename1, "r");
Serial.print("Ausloestzeit:");
Serial.println((int)f.read());
f.close();
if (Eingang == 0)
{
NockeAusloestzeit = millis();
}
if (NockeAusloestzeit + Ausloestzeit <= millis())
{
NockeLaufzeit = millis();
Ausgang = 0;
}
if (NockeLaufzeit + Laufzeit <= millis())
{
Ausgang = 1;
}
digitalWrite(16, Ausgang);
}