Come creare rete di arduino con shield ethernet?

Ciao a tutti,

nel mio progetto ho intenzione di creare una rete di controllori basati su arduino con annesso shield ethernet. La modalità deve essere di tipo master/slave.
In particolare, il master deve poter ricevere informazioni dagli slave riguardo allo stato di sensori e di pulsanti mentre il master poter inviare dei semplici segnali di comando agli slave.

Avevo pensato ad una connessione su rete ethernet con qualche protocollo dedicato....
Avete qualche idea che possa aiutarmi? C'è in giro qualche libreria?

Il progetto Souliss -> http://arduino.cc/forum/index.php/topic,80055.0.html
permette di creare una rete di Arduino per lo scambio dei dati e il controllo delle uscite/ingressi analogici/digitali.

Sto dando un'occhiata al progetto...

Nel frattempo ho letto in giro che esistono delle librerie per il modbus su TCP già pronte per arduino, ne siete a conoscenza? Dove le posso trovare?

La trovi all'interno della Libreria Souliss.
Come libreria a se non l'ho mai vista.

Ciao Paolo,
se può interessarti io ho fatto qualcosa (e sono ancora in fase di sviluppo dell'indefinito progetto globale) col protocollo UDP semplicemente utilizzando la EthernetUDP.
Ma non conosco le altre librerie nominate sopra quindi non saprei dire se sono meglio o peggio della EthernetUDP.

Nel mio indefinito progetto anche io penso di utilizzare più arduino che comunicano via Lan.

Alessio.

A tutt'oggi la w5100 continua a freezarsi nonostante la patch, ci sono comportamenti imprevedibili, attento a non perdere mesi per poi scoprire che il sistema ha dei problemi di fondo, fai dei test elementari e verifica che la tua rete funzioni a lungo termine.

ciao

Ciao,

come ti suggeriva PaoloP puoi usare le librerie di Souliss per creare una rete di nodi, puoi scambiare dati tra i nodi e controllarli via Android o Modbus TCP (o RTU via seriale).

Per quanto riguarda il W5100, nelle installazioni che stiamo usando non creano problemi, la libreria usata non è quella di Arduino (ne è un derivato), credo che il problemi si presenti con le vecchie shield.

Se hai bisogno di aiuto chiedi pure.

Saluti,
Dario.

veseo:
Per quanto riguarda il W5100, nelle installazioni che stiamo usando non creano problemi, la libreria usata non è quella di Arduino (ne è un derivato), credo che il problemi si presenti con le vecchie shield.

Guarda, il problema del chip va visto in termini più ampi e ci vogliono mesi per avere dei dati precisi.

  • vari SO che si connettono allo shield
  • reti fisse o wifi (spesso i divesi passaggi da un fisso a mobile ne causa il crash)
  • reti wifi dei diversi operatori
  • connessioni in movimento, mentre l'SO mobile cambia ponte radio (test in città e autostrada)
  • potenza dei processori che si connettono al server (se un android ad esempio è di scarsa potenza si ottengono dei ritardi che inchioda la shield)
  • quantità di byte in tx rx (ogni tanto è parso che sembrasse un limite dei buffer a far inchiodare il tutto)

Non so se qualcuno ha mai fatto caso, ma android 4.0++ quando dal browser mobile facciamo una connessione verso arduino tutto va bene, ora chiudiamo il browser con il solito sistema <- che usiamo per chiudere le app, il browser magicamente rimane in background (lo possiamo vedere con apposite app che evidenziano le attività aperte nel SO) inviando ad arduino ogni tanto in modo casuale qualche dato, proviamo ora a tormentare la ethernet con un altro browser.....pochi tentativi e lo inchiodiamo per l'ennesima volta

Posso scrivere per ore sui test che ho fatto, riuscivo sempre a farlo inchiodare semplicemente chiamandolo, parlo di sketch nell'IDE niente di particolare, purtroppo ogni test più si avvicina alla perfezione più richiede giorni di attesa e i mesi passano in fretta.

io ho rimediato modificando la w5100.h e la ethernet.h riavviando la SPI ogni minuto, non ho più avuto problemi e i ritardi sono pressochè 0, non ho più avuto il tempo necessario per terminare i debug di tutte le lib, perchè lo shield eth ne richiama davvero tante.

Sarebbe però corretto fornire un indirizzo, un link, visto che parli di altre lib che risolvono il problema
ciao

Dipende tutto da come vengono gestite le socket, cioé a cosa viene fatto nella libreria Ethernet di Arduino. Nel caso a cui faccio riferimento, le socket sono gestite in modo diretto e non abbiamo riscontrato problemi, c'è un installazione h24 da più di 6 mesi basata su Freakduino Chibi ed Arduino Ethernet.

Non ho messo un link diretto alla libreria Souliss solo perché ne ho parlato anche altre volte, però il sito internet da cui poter effettuare i download è nella mia firma o può essere raggiunto su SourceForge.

Saluti,
Dario.

Sono un neofita di Arduino e per questo procedo lentamente!:slight_smile:

per il momento ho implementato sul singolo Arduino l'algoritmo di controllo di cui ho bisogno, ho anche creato una pagina web per leggere lo stato del sistema e inviare dei comandi tramite il modulo ethernet....e fin qui tutto sembra funzionare...

Ora il mio dubbio è, vista la mia poca competenza in materia di reti, visto che i dispositivi sono posti uno dopo l'altro, avrei bisogno di effettuare un cablaggio di tipo a bus.

Mi spiego meglio, ad ogni unità Arduino arrivare con un cavo RJ e uscire verso l'unità successiva....

Mi servirebbe tipo uno sdoppiatore...cosa potrei usare?

Grazie.