inputbox con ENC28J60

Buongiorno ragazzi,

Premetto che ho un ENC28J60 per collegare il mio arduino alla rete.

Sto cercando di creare una pagina che abbia 2 inputbox e 2 button per salvare il testo scritto nell'inputbox nella memoria di arduino. Ho creato i 2 controlli in html però non saprei come passare i dati dal browser all'arduino.

Come posso dire che il button deve copiarmi il testo nella barra degli indirizzi?

Non ti sò rispondere direttamente. Hai provato a veder i numerosi tutorial di Dentella ? www.lucadentella.it/category/enc28j60-arduino/

Ciao,
grazie per il collegamento al tutoria,
l’ultima guida dovrebbe essere simile a quello che voglio fare io, ma ho un problema (tanto per cambiare :smiley: )

praticamente non riesco ad “intercettare” il mio button, o meglio vede la richiesta ma non prende i dati giusti
char password[20];
char* password_position = strstr((char *)Ethernet::buffer + pos, “&salva=”);
if(password_position != 0) {
strcpy(password, password_position + 9);
Serial.print(“Found password=”);
Serial.println(password);
if(strcmp(password, led_password) == 0) Serial.println(“Valid password :)”);
else {
Serial.println(“Wrong password :(”);
password_valid = false;
}
}

eppure il nome del button (nella pagina html) è quello

questo è il codice

#include <EtherCard.h>

static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x00,0x02};
static byte myip[] = {192,168,1,125};
static byte gwip[] = {192,168,1,1};
byte Ethernet::buffer[700];

const int led_pin = 2;
char* led_password = "SesamE";
boolean led_status;

void setup () {
 
  Serial.begin(57600);
  Serial.println("Protected LED demo");
 
  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "Failed to access Ethernet controller");
  else
    Serial.println("Ethernet controller initialized");
 
 ether.staticSetup(myip, gwip);
 

  pinMode(led_pin, OUTPUT);
  digitalWrite(led_pin, LOW);
  led_status = false;
}
  
void loop() {
 
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
  
  if(pos) {
    
    Serial.println();
    boolean password_valid = true;
    
    // is it a POST request?
    if(strstr((char *)Ethernet::buffer + pos, "POST /") != 0) {
    
      Serial.println("New POST request!");
      
      // search and verify the password
      char password[20];
      char* password_position = strstr((char *)Ethernet::buffer + pos, "&str1on=");
      if(password_position != 0) {
        strcpy(password, password_position + 9);
        Serial.print("Found password=");
        Serial.println(password);
        if(strcmp(password, led_password) == 0) Serial.println("Valid password :)");
        else {
          Serial.println("Wrong password :(");
          password_valid = false;
        }
      }
   
    //inputcontrol(); //test 
    
      // search for ON= or OFF= command
      if(password_valid) {
        
        // OFF command
        if(strstr((char *)Ethernet::buffer + pos, "OFF=") != 0) {
          Serial.println("Performing OFF command");
          digitalWrite(led_pin, LOW);
          led_status = false;
        
}
      }
    }
    
    // Output HTML page
    BufferFiller bfill = ether.tcpOffset();
    bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
      "Content-Type: text/html\r\nPragma: no-cache\r\n\r\n"
      "<html><head><title>Protected LED</title></head>"
      "<html><body><form method=\"POST\">"
      "<center><table   border='1' bordercolor='#3366CC' style='background-color:#CCFFCC' width='30%' cellpadding='4' cellspacing='2' >"
"<tr><td width='40%'>Stringa 1 (ON)</td>"
		"<td><input type=\"text\" name=\"str1on\"></td></tr><tr><td>Stringa 1 (OFF)</td>"
"<td><input type=\"text\" name=\"str1off\"></div></td>"
"</tr></table>
<div><button name=\"salva\">Salva</button></div></center>"));

    ether.httpServerReply(bfill.position());
  }
}

Ho risolto il problema, adesso riesco ad intercettare una sola inputbox. Però adesso ne sorge un altro. Praticamente dovrei inserire nella mia pagina 8 inputbox e tramite un unico button devo salvare le 8 inputbox in 8 variabili separate. Con questo sistema non funziona :( non riesco a dividere un'inputbox dall'altra poichè la lunghezza del testo è variabile. come potrei fare?

Grazie a tutti!