Bodenkontaktzeiten auf der Webseite darstellen

* Zeiten ausrechnen
  * Die letzten 20 Zeiten in einer Liste darstellen
This commit is contained in:
Christoph Sterz 2024-10-24 19:12:29 +02:00
parent 7076dddda3
commit 1c8df52823
1 changed files with 39 additions and 28 deletions

View File

@ -10,6 +10,7 @@
int sensorValue = 0; int sensorValue = 0;
int letzteWerte[100]; int letzteWerte[100];
int niedrigsterWert = 1024;
int idWert = 0; int idWert = 0;
@ -36,7 +37,7 @@ int kontaktzeiten[20];
int idx = 0; int idx = 0;
String websiteA = "<!doctype html><html lang=en><head><meta charset=utf-8><title>Sensor</title></head><body style='background:#2d2d2d'>" String websiteA = "<!doctype html><html lang=en><head><meta charset=utf-8><title>Sensor</title></head><body style='background:#2d2d2d'>"
"<div style='position:fixed;top:10%;left:10%;width:80%;height:80%;color:#ffffff;text-align:left;vertical-align:left;line-height:400%;font-size:400%;font-family:Arial,Helvetica,sans-serif;''> <ul style='list-style-type:none;'> "; "<div style='position:fixed;top:10%;left:10%;width:80%;height:80%;color:#ffffff;text-align:left;vertical-align:left;line-height:100%;font-size:300%;font-family:Arial,Helvetica,sans-serif;''> <ul style='list-style-type:none;'> ";
String websiteB = "</ul></div><div style='position:fixed;bottom:0;left:0;width:100%;height:20%;background:#9ade00;color:#00252c;text-align:center;vertical-align:middle;line-height:400%;font-size:400%'> <p><b>Start</b></p> </div> </body></html>"; String websiteB = "</ul></div><div style='position:fixed;bottom:0;left:0;width:100%;height:20%;background:#9ade00;color:#00252c;text-align:center;vertical-align:middle;line-height:400%;font-size:400%'> <p><b>Start</b></p> </div> </body></html>";
@ -48,9 +49,16 @@ const int led = 13;
void handleRoot() { void handleRoot() {
String liste; String liste;
for(int i = idWert; i < idWert + 100; i++) {
liste = liste + letzteWerte[i % 100] + "\r\n"; int vorherig = 1024;
int aktuell = 1024;
liste = liste + "niedrigster: " + niedrigsterWert;
liste = liste + "<li>";
for(int i = 0; i < 20; i++) {
liste = liste + "<ul>" + i + ". Kontakt:" + kontaktzeiten[i] + " ms </ul>";
} }
liste = liste + "</li>";
server.send(200, "text/html", websiteA + liste + websiteB); server.send(200, "text/html", websiteA + liste + websiteB);
} }
@ -86,44 +94,47 @@ void setup(void) {
} }
int letzterWert = 1024;
void loop(void) { void loop(void) {
sensorValue = analogRead(ANALOG_READ_PIN); sensorValue = analogRead(ANALOG_READ_PIN);
Serial.println(sensorValue); // Serial.println(sensorValue);
letzteWerte[idWert] = sensorValue; letzteWerte[idWert] = sensorValue;
idWert = (idWert + 1) % 100; idWert = (idWert + 1) % 100;
niedrigsterWert = std::min(sensorValue, niedrigsterWert);
// Hier Logik ändern if(letzterWert >= 300 && sensorValue < 300 )
/*
// read the input pin:
int buttonState = digitalRead(pushButton);
// print out the state of the button:
//Serial.println(buttonState);
//Serial.println(millis());
if(lastbuttonstate == 0 && buttonState == 1)
{ {
auftrittmillis = millis(); auftrittmillis = millis();
Serial.print("Auftritt: ");
Serial.println(auftrittmillis); // nur wenn mehr als 30ms, dann Ausgeben
if((auftrittmillis - abtrittmillis) > 30) {
Serial.print("Flugphase: ");
Serial.println(auftrittmillis - abtrittmillis);
} }
if(lastbuttonstate == 1 && buttonState == 0) }
if(letzterWert < 300 && sensorValue >= 300)
{ {
abtrittmillis = millis(); abtrittmillis = millis();
Serial.print("Abgehoben: ");
Serial.println(abtrittmillis);
Serial.print("Bodenkontakt: "); if ((abtrittmillis - auftrittmillis)> 30 ) {
Serial.println(abtrittmillis - auftrittmillis);
auftrittzeiten[idx] = auftrittmillis; auftrittzeiten[idx] = auftrittmillis;
kontaktzeiten[idx] = abtrittmillis - auftrittmillis; kontaktzeiten[idx] = abtrittmillis - auftrittmillis;
idx = (idx + 1)%20; idx = (idx + 1)%20;
}
lastbuttonstate = buttonState;
*/
delay(10); // delay in between reads for stability Serial.print(idx);
Serial.print(". Bodenkontakt: ");
Serial.println(abtrittmillis - auftrittmillis);
}
}
letzterWert = sensorValue;
delay(20); // delay in between reads for stability
server.handleClient(); server.handleClient();
MDNS.update();
} }