Go Down

Topic: Ethernet shield Question (Read 4165 times) previous topic - next topic

matrix77

Salve a tutti,


Un problema che mi sta assillando è legato alla non visualizzazione del modulo "shield ethernet" in rete, ma se quest' ultimo viene collegato

direttamente al pc, tutto funziona alla perfezione.

Ho controllato più di una volta le impostazioni del modem router, ho eliminato l' assegnazione automatica degli indirizzi ip, ho inserito l'indirizzo

ip, nella lista previlegiata del modem, con tanto di assegnazione mac, ma niente da fare, il modulo in rete, non viene visualizzato. :0

Il fatto che lo shield e le porte del modem, non siano guaste, me lo rivela il collegamento diretto al pc e solo in quel contesto, visualizzo la pagina

di prova nel browser.

Ciao

pitusso

..le sfere di vetro vanno alla grande, in questo periodo..  :smiley-zipper:


Quote
Un problema che mi sta assillando è legato alla non visualizzazione del modulo "shield ethernet" in rete, ma se quest' ultimo viene collegato
direttamente al pc, tutto funziona alla perfezione.


inizio chiedendo maggiori informazioni riguardo all'hw utilizzato (versione Arduino, versione Eth Shield), e allo sketch che stai usando per testare il tutto.

Se lo shield è l'ufficiale, verifica di aver definito anche i valori di netmask (e gateway), oltre all'ip.

lucadentella

ciao

per capire meglio... se colleghi con un cavo l'ethernet shield alla presa di rete del PC riesci a pingare Arduino e a collegarti?
Se invece entrambi (PC e Arduino) sono connessi al router no?
Veramente strano, il router dovrebbe avere un semplice "switch" al suo interno...

prova così: carica uno sketch che risponda al ping, dal PC fai:

ping <indirizzo_ip_arduino>

e se non ti risponde dai

arp -a

vedi se almeno il PC riesce ad ottenere l'ARP che hai definito nel tuo sketch

lucadentella.it

uwefed

Non é che hai dato lo stesso indirizzo IP al Arduino come ha il router?
Ciao Uwe

pablos

#4
Feb 03, 2012, 11:56 pm Last Edit: Feb 04, 2012, 12:30 am by pablos Reason: 1
Si leggono molti messaggi riguardanti la eth shield con scritto "non riesco a vedere arduino", sono mesi che continuo a chiedermi cosa vorrà dire non riesco a vedere?
Chi o che cosa la deve vedere?
Perchè si deve vedere?
A cosa serve vedere la scheda?

Spiegate cosa state facendo....
non lo vedo nell'elenco dei dhcp router,
non lo pingo da pc su rete locale,
non lo pingo da ip remoto,
non vedo il mac
non vedo l'IP
non vedo arduino perchè è buio
ecc
ciao
no comment

uwefed

buio pesto? accendere una luce??  ;) ;)
Ciao Uwe

matrix77

Salve a tutti e grazie innanzitutto per il Vostro intervento,

Per essere giustamente più preciso, posterò lo sketch che tra l'altro è quello preconfezionato nel software di arduino e io non ho fatto nient'altro che modificare i parametri di rete.

#include <SPI.h>
#include <Ethernet.h>

// network configuration.  gateway and subnet are optional.

// the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x6C, 0xE3 }; (MAC DELLA MIA SCHEDA) 
//the IP address for the shield:
byte ip[] = { 192, 168, 0, 6 };    (IP LIBERO DELLA MIA RETE)
// the router's gateway address:
byte gateway[] = { 192, 168, 0, 1 }; (IP MODEM)
// the subnet:
byte subnet[] = { 255, 255, 255, 0 }; (CLASSICO PARAMETRO ORMAI UN DEFAULT PER MOLTE RETI)

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
   // initialize the ethernet device
   Ethernet.begin(mac, ip, gateway, subnet);

  // start listening for clients
   server.begin();
}

void loop()
{
   // if an incoming client connects, there will be bytes available to read:
   EthernetClient client = server.available();
   if (client == true) {
     // read bytes from the incoming client and write them back
     // to any clients connected to the server:
     server.write(client.read());
   }
}

Per quanto riguarda l'hw, possiedo un Arduino UNO, con shield ethernet che trovate rappresentata in questa immagine: http://arduino.cc/en/Guide/ArduinoEthernetShield



Rammento che se collego arduino direttamente al pc, funziona tutto alla perfezione, visualizzando ad esempio, una pagina di prova nel browser.
Come ultima cosa, ho provato a collegare al mio modem, un piccolo convertitore USB/ETHERNET, attribuendogli un indirizzo ip, sia statico che dinamico e funziona sempre.
Altro test che ho eseguito è stato quello di disabilitare e abilitare il DHCP, ma il modem già a priori, non visualizza lo shield collegato, nella lista preposta...., mah che rabbia :0

ciao

per capire meglio... se colleghi con un cavo l'ethernet shield alla presa di rete del PC riesci a pingare Arduino e a collegarti?
Se invece entrambi (PC e Arduino) sono connessi al router no?
Veramente strano, il router dovrebbe avere un semplice "switch" al suo interno...

prova così: carica uno sketch che risponda al ping, dal PC fai:

ping <indirizzo_ip_arduino>

e se non ti risponde dai

arp -a

vedi se almeno il PC riesce ad ottenere l'ARP che hai definito nel tuo sketch


Proverò anche (ARP-A) e vediamo se fa qualcosa.


Ciao

matrix77

Aggiorno il mio post, perchè penso di essere prossimo alla soluzione; ho fatto un altro esperimento che consiste nell utilizzare un dispositivo, per inviare segnali ethernet, tramite onde convogliate, nella linea elettrica, in sostanza se interpongo questo dispositivo, il modulo lo vedo e funziona, in caso contrario, nulla da fare.

Riepilogando: nella porta del router, inserisco il dispositivo ad onde convogliate, che verrà collegato tramite presa elettrica.

Nella mia stanza, prelevo dal secondo dispositivo ad onde convogliate, il segnale ethernet che verrà collegato al modulo shield ethernet.
Magia! Funziona, a questo punto devo dare una spiegazione tecnica all'inghippo e l'unica cosa che mi viene in mente è: non che sta m....ia di shield, voglia un cavo incrociato???


Ciao a tutti :)

lucadentella

Ciao

normalmente la configurazione è

- dispositivo di rete -> altro dispositivo di rete (es. Arduino -> PC) = cavo incrociato
- dispositivo di rete -> switch (o router) = cavo dritto

in realtà quasi tutti i dispositivi "moderni" hanno la funzionalità di Auto-MDIX ovvero "capiscono" che cavo stai usando e agiscono di conseguenza. Potrebbe essere però che tu stia usando un cavo cross, che quindi va bene per un collegamento diretto ma non verso il router se questo non fa auto-sensing...
lucadentella.it

matrix77

#9
Feb 04, 2012, 10:39 pm Last Edit: Feb 04, 2012, 10:44 pm by matrix77 Reason: 1

Ciao

normalmente la configurazione è

- dispositivo di rete -> altro dispositivo di rete (es. Arduino -> PC) = cavo incrociato
- dispositivo di rete -> switch (o router) = cavo dritto

in realtà quasi tutti i dispositivi "moderni" hanno la funzionalità di Auto-MDIX ovvero "capiscono" che cavo stai usando e agiscono di conseguenza. Potrebbe essere però che tu stia usando un cavo cross, che quindi va bene per un collegamento diretto ma non verso il router se questo non fa auto-sensing...
Salve Luca,


Si effettivamente hai ragione, purtroppo mi ero illuso che funzionasse, ma a questo punto, la causa potrebbe essere da imputare ad un probabile guasto dello shield, dal momento che ancora adesso non funziona :0; nel contempo ho potuto constatare, anche un altro problema ed in sostanza, lo shield non accetta gli indirizzi ip es: 192.168.0.4, con la conseguente mancata trasmissione dell' ip stesso anche collegandolo direttamente al pc, se però l'indirizzo lo modifico in: 192.168.1.4, ecco che riappare alla perfezione col ping e nel browser.

A questo punto ho reimpostato il modem, perchè accettasse ip, con numerazione x.x.1.0, anzichè x.x.0.1. ma anche in questo caso nessun risultato.

Ciao

matrix77

Salve a tutti,


Problema definitivamente risolto!

Svelato l'arcano e colpevole di tutto il caos è il mio modem (tra l'altro da poco acquistato e pagato a peso d'oro ) che non accetta lo shield ethernet.
Per bypassare il problema, ho collegato in cascata, uno switch router che per fortuna avevo in casa, configurandolo come bridge 8)
Per farla breve, bisogna essere fortunati, di trovare un modem router "compatibile" con questo shield, altrimenti l' utilizzo di uno switch router in cascata è d'obbligo :P.

Adesso mi viene da sorridere, vedendo che uno shield piccolo, abbia bisogno, in certe situazioni, di parecchio hw intorno, un po' come avere un piccolo cellulare in tasca e due batterie tipo valigie, per alimentarlo eheh :smiley-roll:

Un saluto e buona domenica

lucadentella

ciao

sarebbe interessante capire cosa - dello stack ethernet - non piace al tuo modem visto che dovrebbe essere tutto standard...
lucadentella.it

relinquished

ma scusami la stupida domanda ma la tua scheda di quale tipo e cioe che cip monta un enc28j60 oppure un winznet

Testato

Ha gia' risposto a questa domanda:


Per quanto riguarda l'hw, possiedo un Arduino UNO, con shield ethernet che trovate rappresentata in questa immagine: http://arduino.cc/en/Guide/ArduinoEthernetShield


questa e' la board ufficiale, quindi wiznet, non a caso dice di usare lo sketch incluso in Ide, nell'ide non c'e' supporto ufficiale per l'ENC

mi associo alla domanda di lucadentella, ed azzardo che potrebbe essere guasto il router, visto che e' nuovo fattelo sostituire, male non fa
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

relinquished

a ok scusate non avevo notato , e con questo non dovresti avere troppe difficolta

Go Up