arduino UNO ethernet ENC28J60

buonasera a tutti, ho bisogno del vs. aiuto…

progetto semplice : comandare via web dei relè.

ho arduino uno e un modulo ethernet ENC28J60 , vi allego lo sketch che sto utilizzando e che funziona
alla perfezione se lavoro in rete LAN locale… ma non appena cerco di accedere via web da FUORI RETE non accade nulla …preciso che ho aperto una porta specifica nel mio router ( e che il mio provider mi ha assicurato che da lato loro non ci sono problemi).
ho inserito tutti i valori di ip gatwey etc …corretti … però non capisco se devo anche inserire qualche riga di comando che mi specifichi la PORTA che ho aperto .

posseggo un IP statico.

#include <EtherCard.h>

#define LED1PIN  2 //definisce il pin del LED 1
#define LED2PIN  3 //definisce il pin del LED 2

//settaggio dei valori statici
static byte mymac[] = {0x00,0x19,0xCB,0xF4,0x03,0x01};
static byte myip[] = {XXX,XXX,XXX,XXX};
static byte gwip[] ={ XXX,XXX,XXX,XXX};
static byte netmask[] = {255,255,255,0};
static byte dnsip[] = {X,X,X,X};
byte Ethernet::buffer[700];

boolean led1Status;
boolean led2Status;

void setup () {
 
  Serial.begin(9600);
  Serial.println("2 WebRele' Ip Statico");
 
  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "Accesso fallito all'Ethernet Shield");
 else
   Serial.println("Ethernet Shield initializzato");
 
  if (!ether.staticSetup(myip, gwip, dnsip, netmask ))
    Serial.println("Impossibile assegnare l'indirizzo");
  else
    Serial.println("Indirizo statico configurato");
    
  ether.printIp("IP Address:\t", ether.myip);
  ether.printIp("Netmask:\t", ether.netmask);
  ether.printIp("Gateway:\t", ether.gwip);
  ether.printIp("DNS:\t\t", ether.dnsip);
   Serial.println();
  
  pinMode(LED1PIN, OUTPUT);
  pinMode(LED2PIN, OUTPUT);
  
  digitalWrite(LED1PIN, LOW);
  digitalWrite(LED2PIN, LOW);
  
  led1Status = false;
  led2Status = false;  
}
  
void loop() {
 
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
  
  if(pos) {
    
      if(strstr((char *)Ethernet::buffer + pos, "GET /?RELAY1") != 0) {
        led1Status = !led1Status;
        digitalWrite(LED1PIN, led1Status);
        Serial.println("Ricevuto comando per Rele' 1");  
      }
      
      if(strstr((char *)Ethernet::buffer + pos, "GET /?RELAY2") != 0) {
        led2Status = !led2Status;
        digitalWrite(LED2PIN, led2Status);
        Serial.println("Ricevuto comando per Rele' 2");        
      }
      
      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><meta name='viewport' content='width=200px'/></head><body>"
                        "<div style='position:absolute;width:200px;height:200px;top:1%;left:50%;margin:5px 0 0 -100px'>"
                        "<div style='font:bold 18px verdana;text-align:center'>Web Rele'</div>"
                        "
<div style='text-align:center'>"));

      if(led1Status) bfill.emit_p(PSTR("<a href=\"/?RELAY1\"><img src=\"http://www.byte4geek.com/images/arduino/butON.png\"></a>
Stato Rele' 1 OFF
"));
      else bfill.emit_p(PSTR("<a href=\"/?RELAY1\"><img src=\"http://www.byte4geek.com/images/arduino/butOFF.png\"></a>
Stato rele' 1 ON
"));
      
      if(led2Status) bfill.emit_p(PSTR("
<a href=\"/?RELAY2\"><img src=\"http://www.byte4geek.com/images/arduino/butON.png\"></a>
Stato Rele' 2 OFF"));
      else bfill.emit_p(PSTR("
<a href=\"/?RELAY2\"><img src=\"http://www.byte4geek.com/images/arduino/butOFF.png\"></a>
Stato rele' 2 ON"));      

      bfill.emit_p(PSTR("
<a href=\"/\">Controlla lo stato dei Rele'</a></div></div></body></html>"));
      ether.httpServerReply(bfill.position());
   }
  }

Hai un collegamento internet con IP statico ? Cioè il provider ti da un ip statico ?

si ! infatti con il medesimo ip e altra porta … accedo a ipcam!

Ad Arduino non hai dato quell'ip, giusto ? Hai dato un ip fisso ma della tua rete.

La porta di default dovrebbe essere la 80
Prova a leggere qui:
http://www.lucadentella.it/2012/12/07/enc28j60-e-arduino-10/

no no ho assegnato un altro iP..

però grazie mille per il consiglio oggi provo quello che scrive luca...
perchè adesso mi sorge il dubbio che la porta 80 sia l'unica bloccata dal mio provider...per motivi loro di sicurezza!!GRAZIE MILLE .. ti faccio sapere se sono riuscito a risolvere!" :slight_smile:

massib

ciao

nid69ita:
Ad Arduino non hai dato quell'ip, giusto ? Hai dato un ip fisso ma della tua rete.

La porta di default dovrebbe essere la 80
Prova a leggere qui:
http://www.lucadentella.it/2012/12/07/enc28j60-e-arduino-10/

ciao con comando ether.hisport= xxxx;
tutto ok

grazie mille.....

ora il passo successivo è inserire la sd reader insieme alla scheda ethernet enc28J60 ..se percaso sai indicarmi dove posso trovare lo schema di come collergare ad arduino contemporaneamente le 2 schede mi faresti un grosso piacere
buon week end
massib

Prova a vedere a quel link di Luca Cantella, ci sono altre pagine di tutorial e mi pare pure dell'SD.
Magari nel tutorial di come mettere un sito web su SD+Arduino

Grazie... Cerco sicuramente.... Se poi nom trovo lo schema ti scrivo... Buona domenica

massibal:
Grazie... Cerco sicuramente.... Se poi nom trovo lo schema ti scrivo... Buona domenica

Altrettanto.

HELP .. mi è successa una cosa strana.. forse una banalità... ho installato delle librerie nuove , ma quando vado a richiamarle per includerle nello sketch non le vedo nel senso che nella finestra laterale non riesco a fare lo SCROLL !! se con le frecce scendo e seleziono le librerie ci sono .. cosa devo modificare per vederle tutte?????

grazie mille

massib

Che versione di IDE ?

arduino 1.0.6

dici di provare a cambiare IDE ??

Forse hai troppe librerie. IDE 1.6.x mi pare i menu scorrono.
Nella 1.0.x non saprei, ho sempre evitato di avere quintali di librerie. Quelle che non mi occorrono uso winrar (memorizzo percorso) ed elimino la cartella.

grazie .. buona idea... mi sa che hai ragione ho troppe librerie!

buon lavoro

In ogni caso valuta di passare ad 1.6, il Library Manager è molto comodo :).

passato a 1.6 .. fantastico!
anche lo scroll delle librerie!

procedo con progetto!

mi sentirete presto!

massib