Hallo,
ich versuche seit einiger Zeit Werte vom Webserver an den Arduino zu übertragen.
Habe das ganze Netz durchsucht und finde keine passende Lösung/Erklärung.
Zu meinem Problem:
Ich baue mir über HTML eine Seite auf, wo ich einen Namen und ein Passwort eingebe und diese dann übertrage.
Nun würde ich gerne 2 Variablen im Arduino definieren, die mir den Namen und das Passwort vom Webserver speichern.
Und hier komme ich gerade nicht weiter.
Anbei mein Code für Diskussionen.
Hoffe ihr könnt mir helfen.
Zum Aufbau:
Benutze einen Arduino Uno mit ESP-E01
#include <SPI.h>
#include <Ethernet.h>
#include <ESP8266WiFi.h>
/*byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,128);
EthernetServer server(80);
*/
const char* ssid = "ESP-Accesspoint";
const char* password = "12345678";
WiFiServer server(80);
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password);
server.begin();
/* Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
*/
}
void loop() {
// listen for incoming clients
WiFiClient client = server.available();
// EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<body>");
client.println("</form>");
client.println("USER NAME:<input type='text' name='firstname'>
");
client.println("PASSWORD:<input type='password' name='pwd'>
");
client.println("<input type='submit'>");
client.println("</form>");
client.println("<body>");
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
Der Befehl Serial.write(c) gibt mir nur das Grundgerüst der HTML Seite wieder, aber keine Information der eingetragen Texte im Inputfeld.
Wie muss ich da vorgehen?
Erfüllt die Submit Funktion doch nicht das Übertragen der Daten?
Benötige ich eine weitere Bibliothek?
Danke & Gruß,
Muki