Das ist nicht ganz so einfach. Das nodeMCU ist etwas langsam. Ich hatte schon mal gelesen, dass die keine sher hohe Datenübertragungsrate per WiFi haben, aber mich stellt das so nicht ganz zufrieden. Einen Anfang habe ich gemacht, bis ich jetzt gesehen habe, wie lang das mit der Übertragung der Seite dauert.
Hier mal der vorläufige Code:
Code:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char* ssid = "....";
const char* password = "....";
ESP8266WebServer server(80); //instantiate server at port 80 (http port)
String page = "";
//the HTML of the web page
String s1="<div style='display:block;overflow:visible;'><div role='presentation' style='display:table'>";
String s2="<div style='display:table-row;'>";
String s3="<div style='display:table-cell;position:relative;vertical-align:top;width:1.5em;padding:0.1em;'><form style='height:0.65em;'><input type='text' name='but' value='";
String s31="' maxlength='1' style='visibility:hidden;width:0;height:0;'><input id='but#0' type='submit' value='*' style='margin:0;height:1.5em;width:1.6em;font-family:monospace;font-style:normal;font-size:133%;color:#000000;font-weight:700;text-align:center;line-height:170%;border-radius:0.375em;border-width:1px;'></form></div>";
String s4="</div>";
int tableWidth=7;
int tableHeight=7;
void setup(void){
Serial.begin(115200);
delay(10);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); //begin WiFi connection
WiFi.config(IPAddress(xxx,xxx,x,xx), IPAddress(xxx,xxx,x,xx), IPAddress(255,255,255,0), IPAddress(xxx,xxx,x,xxx));
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", [](){
page = s1;
int but = 0;
for(int x=0; x < tableHeight; x++){
page += s2;
for(int j=0; j < tableWidth; j++){
page += s3 + String(but) + s31;
but++;
}
page += s4;
}
page += s4;
server.send(200, "text/html", page);
});
server.begin();
Serial.println("Web server started!");
}
void loop(void){
server.handleClient();
yield();
}
Es wäre in der Größe, per CSS, noch optimierbar, aber besser wär's mit JavaScript auf der Seite zu arbeiten und einem unsichtbaren Frame, zwecks Datenübertragung.
MfG
Lesezeichen