Go Down

Topic: Articolo su Ethernet shield client (Read 9698 times) previous topic - next topic

asamlink

Ciao,

Premetto che in programmazione forse non sono una cima, ma il progetto che realizzato pesa... 45 K.
E' ralizzato su misura, e porta con se' molteplici funzionalita'. Tra le quali la configurazione dell'apparato stesso tramite menu.
Il menu configura l'ip, il MAC, l'ora, la SD per il log, il dhcp (on off nel caso di IP dinamico), la password e un numero seriale.
Tutte configurazioni salvate in EEPROM.

Il protocollo e' adattato all'esigenza dell'apparato con la quale comunica, e propone un'interfaccia di comunicazione in TCP. In pratica ci si collega solo nel caso di conoscenza della password e solo se non e' presente gia' una comunicazione.

E' vero, ho conosciuto Arduino da hobbista, ma sto cercando di usarlo per creare un prodotto commerciale da allegare alle macchine che vengono prodotte. Ho dato piena fiducia ad Arduino e sono convinto di aver fatto la scelta giusta.

Grazie di tutto.

pablos

#46
Mar 08, 2012, 11:50 am Last Edit: Mar 08, 2012, 11:56 am by pablos Reason: 1

sono più propenso a credere che si tratti di un'altra periferica in rete , piuttosto che l'ip autocambiante :)
ARP che dice? il MAC è il suo? come viene risolto il nome di quell'ip?



Non ci sono macchine in rete con quell'ip anche perchè gli ho assegnati nel router con ip statici e relative porte forwarding da un LIST-DHCP, in pratica ho impostato nel router tutti i MAC e ciascun MAC riconosciuto viene assegnato un preciso IP altrimenti ciccia niente rete. Ho dovuto assegnarli perche ho molti forward sulle porte dei diversi pc raggiunti dall'esterno

Router 1 Fastweb LAN loc 192.168.1.1 .... IP WAN xx.xxx.xxx.xxx ecc.
Router 2 WIFI LAN loc 192.168.2.1
ci sono 3 pc
pc 1 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.100
pc 2 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.101
pc 3 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.102

Arduino MAC DE-AD-BE-EF-FE-ED > IP 192.168.2.177 il mac non è suo quello che usiamo sempre negli sketc, se lo cambio non si connette, ovviamente il router lo nega se non corrisponde a quello della lista

Cellulari connesione wifi 4
cell 1 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.200
cell 2 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.201
cell 3 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.202
cell 4 MAC xx-xx-xx-xx-xx-xx > IP 192.168.2.202

ecco perchè mi chiedo come ha fatto a cambiare

ciao
no comment

asamlink

Quote

a wiz5100 soffre anche di congestion avoidance.

Oddio, non ho pensato ad un oggetto che risponda a N client, ma solo ad uno alla volta e rifiuta gli altri. E' vero che la gestione e' sul software, ma la topologia alla quale esso si interfaccia, e' una LAN privata che ha richieste mirate. Per lesterno... ci sara' un server che espone dei wcf, utilizzati da un server web.

Quote

NOTA.
resettare la wiz la riporta in slowstart, ammazzi il throughput, pero' con quel workaround si prendono 2 piccioni con 1 fava.

Grazie per l'info.

pablos

#48
Mar 08, 2012, 12:06 pm Last Edit: Mar 08, 2012, 12:18 pm by pablos Reason: 1
@asamlink
Quote
E' vero, ho conosciuto Arduino da hobbista, ma sto cercando di usarlo per creare un prodotto commerciale da allegare alle macchine che vengono prodotte.

allora prenditi un "ethernet to 485 converter" già fatto, ti risparmi un bel po' di kb di programma se intendi avere affidabilità e un uso commerciale

ciao
no comment

@asamlink
Guarda io ho fatto un progetto simile, per un telnet server comanda relè, parametri salvati in eeprom e configurabili dal client, ho usato la stessa soluzione un socket aperto, tutti gli altri non possono accedere e ricevono un messaggio d'avviso, ovviamente ci ho messo connection timeout sull'attività e quant'altro per essere sicuro di non rimanere chiuso fuori, l'ho installato poco dopo l'arducamp, che se non ricordo male è stato a giugno, e non l'ho mai spento, è dopo un gruppo di continuità, e funziona tuttora benissimo.
Penso che il problemi nascano dall'utilizzo condiviso del bus spi tra ethernet ed sd, magari ne we porto un arduino con sd e webserver nella webcave e lo pubblico su internet così vediamo cosa succede, al massimo se si pianta lo spengo e riaccendo con il telnet server, ho ancora due prese libere.

Alberto

brunol949


allora prenditi un "ethernet to 485 converter" già fatto, ti risparmi un bel po' di kb di programma se intendi avere affidabilità e un uso commerciale

E' quello che consigliavo piu' sopra
Se lo scopo e' hobbystico per studio , ben venga

Se lo scopo e' commerciale ci sono prodotti di svariate marche supercollaudati
Io ho citato il Moxa perche li uso da anni ; sia per controllare macchine via Internet che per remotare seriali non altrimenti collegabili per motivi di distanza

Ciao
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

pablos

@asamlink
Quote
Ho dato piena fiducia ad Arduino e sono convinto di aver fatto la scelta giusta.


Dipende cosa vuoi farci, anche io all'inizio ero molto affascinato da questo piccolo gioiellino, ma aggiungendo idee e utilità, nonostante sia un Mega ha troppe limitazioni e troppo lento per quello che voglio fare io. Processi troppo lenti, poca mem, lan lenta.  Purtroppo mi sa che devo andare su un mini pc mainboard accessoriata di tutto compreso hard disk e SO, un iterfaccia utente touch da 11'' usb ad esempio non ce la puoi mettere. Vedremo
no comment

BrainBooster

Confermo, le apparecchiature che produce Moxa sono dei tori da lavoro ;) e sono perfette da usare in ambito industriale perchè rispondono già a tutte le norme (le ho usate anch'io).
@pablos riesci a riprodurre la condizione d'errore ?

pablos

@BrainBooster
Non ho un errore vero e proprio. Una volta uploadato lo sketch per 200 volte lo trovo facendo dal browser 192.168.2.177 e tutto ok, poi magari alla 201esima volta mi collego e IE mi dice Impossibile trovare la pagina, allora vedendo che arduino continua a fare il suo dovere immagino si sia piantata la ethernet shield normalmente ho sempre resettato e ricominciato, ieri sera ho deciso di non toccare nulla e di fare un ip scan su lan locale, un ip sconosciuto aveva il pallino verde quindi faccio dal browser 192.168.2.145 .... eccolo è tornato arduino!!
no comment

asamlink

Per il progetto che sto realizzando, ho visto che cio' che ho imbastito e investito, per ora, e' tempo speso bene. L'hardware e' pienamente sufficiente e compatibile con le richieste e risultati che spero di ottenere.
La trasmissione e' alla fine un semplice polling tra client e server, ma non e' esaustiva, anche perche' il collo non sta sullo shield ma sulla comunicazione, in quanto va a 9600 bps. Attualmente ho un esercizio ogni 500 ms e scambio al massimo 150 bytes a richiesta. Richiesta per un solo client.
Il refresh e' buono e la periferica risponde molto bene.
Ho quindi un prodotto in questo momento...semi custom! Cioe' che ha prodotti commerciali (arduino mega + eth shield) e un circuito fatto da me (ma molto semplice: max488 + ds1307 per intenderci), che a livello di potenza/prestazione lo considero pure io, sovradimensionato (in questo momento sento il mega sprecato!). E' vero che l'arduino non dovrebbe trattare programmi complessi ma essere gia' la mano, pero' con 45k ho cio' che mi prefiggevo.
Il log non e' corposo, e l'ho studiato in modo che produca informazioni giornaliere per anno solare.
Le attuali latenze, non provocano problemi, anche perche' se devo scaricare il log, il rpogramma che lo richiede puo' metterci il tempo voluto. Non e' una cosa in tempo reale.
Comunque e' vero, la stabilita' dei prodotti commerciali non ha pari, e se avro' problemi con questa configurazione mi spostero' in questo senso. Ora ho speso tempo ed energie, e forse l'entusiamo su Arduino ha giocato sulla sua scellta. Tenete presente che ho l'esperienza di aver creato un sistema di controllo di produzione del taglio al laser con arduino, che attualmente funziona. E' un progetto, sull'apparato intedo (cioe' la scheda) che e'  piu' piccolo, pero' funziona da diversi giorni e non ho avuto problemi sul controllo. Ecco perche' della mia scelta.
Ringrazio tutti per la discussione e per i suggerimenti che leggero' molto attentamente.

BrainBooster

...sarebbe interessante nmappare l'ip fantasma quando appare
P.S.
Butta internet explorer :D

asamlink

Quote

Non e' una seriale punto punto dove se tu e il tuo partner e di cosa fa il tuo vicino di casa - chi se ne frega - la wiz e' una scheda di rete e come tale va su un mezzo condiviso quindi e' assolutamente NON tollerabile che in caso di congestione si comporti come il noto camionista delle gag da Zelig.


Hai pienamente ragione, e questa e' una cosa che devo tener presente, pero' io attualmente ho l'eth in una rete aziendale, che in altri contesti ha manifestato il problema, pero' nella rete per fortuna, nella rete non si sono verificati problemi di cui hai detto. Forse a questo punto e' meglio gia' pensare all'ENC.

brunol949


ho l'eth in una rete aziendale,
Forse a questo punto e' meglio gia' pensare all'ENC.

Queste tue affermazioni aprono scenari diversi
Se la rete e' tua , ossia l'azienda e' tua , puoi farci quello che vuoi
Ma... se la rete e' del tuo datore di lavoro , ci fai un casino , arriva qualcuno che ci capisce e scopre che il casino lo hai fatto tu , non vorrei essere nei tuoi panni
Ancor di piu' se questo qualcuno va poi ad affermare che esistono dispositivi industriali che costano meno e non creano casini
Salvati chiappe ...

Sia chiaro che io non sono un promoter Moxa e fratelli
Sono solo uno che vive nell'ambiente da tanti .. ma tanti anni
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

asamlink

Quote

Sia chiaro che io non sono un promoter Moxa e fratelli


Ho guardato l'oggetto e sembra molto interessante. Il problema e' che sposterebbe l'interffaccia del seriale direttamente in tcp/ip.
Con l'arduino eseguo delle operazioni di risistemazione che devo demandare ai client (ma questo non serbbe un grosso problema), piu' che altro perderei diversi vantaggi che ora ho da parte di un gestore che sta in mezzo.
Cioe' ho bisogno di un "supervisore" prima di arrivare alla macchina che mi garantisca un'unica connessione da parte di un client. In piu' ho il problema del log.
Attualmente questo viene salvato costantemente anche se nessun client e' collagato. Cioe' le informazioni vengono registrate dall'arduino perche il controllo non lo prevede. Ho scritto un programmino che esegue le funzioni di registrazione al fine di contenere dati che vanno fino ad un anno solare in modo molto semplice.
Conosci qualche prodotto quindi, che possa far girare un programmino?

lesto

nulla ti vieta di rimaneggiare il flusso in uscita con un arduino :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up