Ip fisso etherne shield

Salve a tutti ragazzi volevo sapere come impostare un ip fisso per la mia ethernet shield
Basta che lo scrivo nello scketch?
Devo andare sulle impostazioni ---> rete?
Deve configurarlo tramite modem?

Basta che lo scrivi nello scketch

... e che sia univoco nella tua rete (... ovvero che il router, via DHCP, NON lo assegni a nessun altro e nessun altro lo abbia già in uso)

Guglielmo

Vi spiego il mio problema volevo comandare due led da una pagina (ho trovato questo codice in rete) ho modificato l'indirizzo ip ma quando lo carico e poi cerco su internet quell indirizzo non mi trova la pagina...perchè?
devo essere per forza connesso ad internet o dovrebbe funzionare anche senza ?

quale codice ?

Prima che debba intervenire ricorda che il codice DEVE racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra. Grazie.

Guglielmo

C'è anche l'opzione BINDING che "dice" al DHCP di fornire un IP prestabilito in una tabella a quel determinato apparecchio che possiede quel determinato MAC

parole povere:
se si collega DE.AD.BE.EF.FE.ED dagli come IP di rete 192.168.1.177
I MAC connessi si rilevano tramite il servizio ARP (che possono in un ulteriore tabella essere accettati o espulsi dalla rete)

#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 1, 60};
EthernetServer server(80);

int Cucina = 44;
int Sala = 2;
int Bagno = 7;
int Corridoio = 4;
int Cameragenitori = 3;
int Camerabambino = 5;
int Camerabambina = 8;
int Luciviale=46;
String readString = String(30);
String statoLed;
String statoCancello;
String statoPulsante;
int Cancello=9;
const char tab1[] =
{
  0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09
};
const char tab2[] =
{
  0x01, 0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03
};
void setup() {
 Ethernet.begin(mac, ip);
  pinMode(Cucina, OUTPUT);
  pinMode(Sala, OUTPUT);
  pinMode(Bagno, OUTPUT);
  pinMode(Corridoio, OUTPUT);
  pinMode(Cameragenitori, OUTPUT);
  pinMode(Camerabambina, OUTPUT);
  pinMode(Camerabambino, OUTPUT);
  pinMode(Luciviale, OUTPUT);
  
  pinMode(Cancello, OUTPUT);

void loop() {
  EthernetClient client = server.available();
 
 if(client)
 {
  while(client.connected())
  {
    if(client.available())
    {
       char c = client.read();

       if(readString.length() < 30) {
          readString += (c);
       }    
       
       if(c == '\n')
       {         
         if(readString.indexOf("Cucina") >= 0) {
         digitalWrite(Cucina,!digitalRead(Cucina));
         }
         if(readString.indexOf("Sala") >= 0) {
         digitalWrite(Sala,!digitalRead(Sala));
         }
         if(readString.indexOf("Bagno") >= 0) {
         digitalWrite(Bagno,!digitalRead(Bagno));
         }
         if(readString.indexOf("Corridoio") >= 0) {
         digitalWrite(Corridoio,!digitalRead(Corridoio));
         }
         if(readString.indexOf("Cameragenitori") >= 0) {
         digitalWrite(Cameragenitori,!digitalRead(Cameragenitori));
         }
         if(readString.indexOf("Camerabambino") >= 0) {
         digitalWrite(Camerabambino,!digitalRead(Camerabambino));
         }
         if(readString.indexOf("Camerabambina") >= 0) {
         digitalWrite(Camerabambina,!digitalRead(Camerabambina));
         }
         if(readString.indexOf("Luciviale") >= 0) {
         digitalWrite(Luciviale,!digitalRead(Luciviale));
         } 
         if(readString.indexOf("Cancello") >= 0) {
         digitalWrite(Cancello,!digitalRead(Cancello));
         } 
         if(readString.indexOf("pulsanteumidita") >= 0) {
         digitalWrite(pulsanteumidita,!digitalRead(pulsanteumidita));
         } 

          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          client.println("<!doctype html>");
          client.println("<html>");
          client.println("<head>");
          client.println("<title>App</title>");
          client.println("<meta name=\"viewport\" content=\"width=320\">");
          client.println("<meta name=\"viewport\" content=\"width=device-width\">");
          client.println("<meta charset=\"utf-8\">");
          client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
          client.println("</head>");
          client.println("<body>");
          client.println("<center>");
          
          client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">App</font>");
                  
          if(digitalRead(Cucina)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Cucina\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Cucina - "+statoLed+"</button>");
          client.println("</form> 
</td>");
          
          if(digitalRead(Sala)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }

          client.println("<td> <form action=\"Sala\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Sala - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Bagno)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Bagno\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Bagno - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Corridoio)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Corridoio\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Corridoio - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Cameragenitori)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Cameragenitori\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Cameragenitori - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Camerabambino)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Camerabambino\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Camerabambino - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Camerabambina)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Camerabambina\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Camerabambina - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Luciviale)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"Luciviale\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Luciviale - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(pulsanteumidita)) {
           statoPulsante = "Premi" ;
          } 
          client.println("<td> <form action=\"pulsanteumidita\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">pulsanteumidita - "+statoPulsante+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Cancello)) {
           statoCancello = "Apri"  ;
          } 
          
          client.println("<td> <form action=\"Cancello\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Cancello - "+statoCancello+"</button>");
          client.println("</form> 
</td>");
          
          client.println("</center>");
          client.println("</body>");
          client.println("</html>");
          
          
         
         readString = "";
         
         client.stop();
       }
     }
  }
 }
}

Aver postato lo sketch così senza dire ne A ne B cosa significa?

che lo dobbiamo leggere?
che lo dobbiamo correggere?
che ora funziona?
che non funziona ancora?
Grazie tutto ok?

Cosa dovremmo dirti?

Pensavo di aver scritto ma invece no...comunque quello è lo sketch e non funziona...non capisco dove sbaglio se magari potete correggerlo..

Scusa Matteo, ci metti uno sketch pieno di errori, parentesi graffa non chiusa (come nel setup), variabili non dichiarate, ma a prescindere da quello funziona.

Ora mi chiedo, ma nonostante ti dia errore la compilazione stai cercando di accedere a quell'indirizzo IP?
Non credo... non mi sembra sia la prima volta che usi arduino :slight_smile:

comunque:
l'ip fisso si stabisce da Sketch come ti hanno già detto, poi dipende da alcuni fattori, se ti trovi in una rete aziendale, home lan, rete scolastica, ecc

  • Sei sicuro che quell'ip che stai usando corrisponde alla classe della tua lan?
  • Dove digiti quell'indirizzo?

Ho risolto...non funzionava perchè c'era il cavo dell' alimentazione del modem difettoso e quindi si accendeva e spegneva in continuazione

Ora però ho un altro problema...se collevo il cavo ethernet al modem e poi al computer e provo a scrivere l'indirizzo mi trova la pagina mentre se provo ad accedere tramite wifi a quell'indirizzo mi dice impossibile caricare la pagina sapete dirmi il perchè?

Problema trovato dopo tipo 20 secondi la wifi del modem crasha e non si riattiva mentre il modem rimane acceso da cosa è dovuto???
Modem: linksys by cisco WAG120N

bho ..
tanto non rispondi .. io non ciò capito niente .... che scivo affà! Addio

-Si sono sicuro che corrisponde quell indirizzo perchè se collego il cavo ethernet come gia detto funzionaa
-Lo digito sulla barra degli indirizzi ....
il problema è che crasha la wifi senno se attacco il cavo ethernet funziona
Devo trovare un modo per non far crashare il wifi tutto qui

Nessuno può aiutarmi?

matteo41996:
il problema è che crasha la wifi senno se attacco il cavo ethernet funziona
Devo trovare un modo per non far crashare il wifi tutto qui

:o
Cambia router.
O prova a modificare l'indirizzo ip nello sketch e anche la porta 80.
Prova con:

byte ip[] = {192, 168, 1, 16};
EthernetServer server(2345);

E quando provi da wify, scrivi nella barra 192.168.1.16:2345 e si aprirà la pagina ma solo in locale,
se vuoi raggiungerla da remoto devi aprire la porta 2345 tcp/udp nel router ed avere un ip fisso o un servizio dyndns.org.