Ethernet, questo sconosciuto

Ciao Alberto, proprio da quelli come te mi aspetto un passo in più, se risolvi (benissimo) i tuoi problemi e poi non condividi ciò che fai, altri come Fabio poi impazziscono perché hanno meno competenze del necessario; poi non condivido per niente il suo atteggiamento nei confronti del Forum o sito che sia, visto che tanta gente dedica un sacco di tempo, cosa che evidentemente non fa lui, visto che lo considera una sorta di ultima spiaggia da cui prendere senza dare nulla in cambio.
Io ho aperto questo Topic sperando che alla fine persone come bigjohnson e altri si possano mettere d'accordo e creare, dividendosi i compiti, ognuno per le proprie esperienze, una bella Guida in cui ogni cosa sia sviscerata ed approfondita, con dei link a librerie funzionanti e collaudate. Solo così la comunità cresce, il coordinamento e la condivisione del sapere sono la base fondamentale di ogni gruppo di lavoro, scusate se sembro pontificare, ma il mio lavoro mi permette di farlo.
Ciò detto ho manifestato subito la mia totale ignoranza in merito, ma credo nessuno mi possa dire: «fai presto tu a parlare quando a scrivere devono essere gli altri», giusto? :wink:
Quindi, per favore, chiunque voglia contribuire si candidi qui, se qualcuno si vuole assumere il coordinamento lo dica subito, altrimenti sono disposto a farlo io, ma sarebbe sconveniente far coordinare il lavoro ad uno che non ne capisce nulla, però, in mancanza, eccomi qui.

Ciao,
all'epoca in cui trovai i problemi scrissi nel forum italiano e in "Suggestions for the Arduino Project" le proposte di modifica, il codice del progetto telnet server l'ho messo nel playground e scritto diverse volte nel forum.
Per il tutorial vedo di scrivere qualcosa di semplice ma efficace.

Alberto

bigjohnson:
Ciao,
all'epoca in cui trovai i problemi scrissi nel forum italiano e in "Suggestions for the Arduino Project" le proposte di modifica, il codice del progetto telnet server l'ho messo nel playground e scritto diverse volte nel forum.
Per il tutorial vedo di scrivere qualcosa di semplice ma efficace.

Alberto

Perfetto! Grazie! per il momento fai riferimento a me, se poi arrivano altri volenterosi ci coordiniamo e vediamo di far uscire qualcosa di bello. Grazie ancora.
PS: quel progetto me lo ricordo, davvero un bel lavoro, anche se non ho approfondito perché non ho avuto necessità in tal senso; nel tutorial linkalo tranquillamente, anzi anche eventuali "lib" sono graditissime, magari spiegando qualcosa sulle modifiche apportate.

ALLORA, ragazzi!
Possibile che nessun'altro si faccia avanti a dare una mano?

mi costringi a finire stanotte con le valvole, ma poi ti pentirai di quest'invito, visto che non so nulla dello shield ethernet comincero' a sparare test a tutto spiano :slight_smile:

Testato:
mi costringi a finire stanotte con le valvole, ma poi ti pentirai di quest'invito, visto che non so nulla dello shield ethernet comincero' a sparare test a tutto spiano :slight_smile:

Tu eri già arruolato d'ufficio, secondo te aspettavo la tua conferma? 8)
Ma sei attrezzato di shield ethernet? Sarebbe una gran cosa, se è così ti cedo istantaneamente il coordinamento di questa cosa, chiedendoti cortesemente di rintracciare tutti gli imboscati che stanno facendo finta di nulla e farti dare info, basta trovare Topic in cui vedi gente che dà consigli con sicurezza :wink:
A questo punto io posso dare disponibilità per aiutari a mettere ordine a ciò che riesci a recuperare.
Grazie Testato ma, come detto, di te non dubitavo affatto XD

si, come gia' scritto, ho preso la board dei poveri, che sarebbe anche quella usata nel primo tuo link del post

E' talmente cinese che ha delle gocce di stagno che fanno corto sul minimicrominuscolissimo chip :slight_smile:
devo vedere di toglierle perche' di rispedirla a sinsincity non se ne parla

ruoli coordinativi non ne voglio, ma appena chiudo sto rtc nella sua scatola apposita mi butto sull'ethernet

Testato:
si, come gia' scritto, ho preso la board dei poveri, che sarebbe anche quella usata nel primo tuo link del post

E' talmente cinese che ha delle gocce di stagno che fanno corto sul minimicrominuscolissimo chip :slight_smile:
devo vedere di toglierle perche' di rispedirla a sinsincity non se ne parla

ruoli coordinativi non ne voglio, ma appena chiudo sto rtc nella sua scatola apposita mi butto sull'ethernet

Come preferisci, l'importante è che mi dai una mano, facendo l'interfaccia tecnica, però fai con calma, ora non deve essere una questione di Stato, comincia a postare i primi risultati o problemi e vediamo di riuscire a svegliare qualche svogliatone che sa tutto e che non ne vuole di scrivere qualcosa :wink:

Ok, stasera ho finito la modifica al codice per rtc esterno, domani ultimo tocco per implementare 2 TASTI di selezione e si chiude.

Lavorerò su due direzioni

  • spedire dati verso patchube
  • ricevere comandi da internet

Testato:
Ok, stasera ho finito la modifica al codice per rtc esterno, domani ultimo tocco per implementare 2 TASTI di selezione e si chiude.

Lavorerò su due direzioni

  • spedire dati verso patchube
  • ricevere comandi da internet

OTTIMO XD quando hai tempo prova a vedere quei link che ho postato per vedere se riesci ad affrontare le problematiche esposte che, nel tempo, sono più o meno sempre le stesse, ecco perché mi dispero che nessuno voglia porre fine a questa cosa.

Testato:
E' talmente cinese che ha delle gocce di stagno che fanno corto sul minimicrominuscolissimo chip :slight_smile:
devo vedere di toglierle perche' di rispedirla a sinsincity non se ne parla

:cold_sweat:

leo72:

Testato:
E' talmente cinese che ha delle gocce di stagno che fanno corto sul minimicrominuscolissimo chip :slight_smile:
devo vedere di toglierle perche' di rispedirla a sinsincity non se ne parla

:cold_sweat:

basta un sano spazzolino rigido, credo siano "schizzi di stagno" non gocce di saldatura :slight_smile:

Testato:
E' talmente cinese che ha delle gocce di stagno che fanno corto sul minimicrominuscolissimo chip :slight_smile:
devo vedere di toglierle perche' di rispedirla a sinsincity non se ne parla

Se è sul cip Wiznet eviterei di metterci mano. Questo perchè anche sulla mia ETH Shield ci sono microcorti, ma probabilmente sono pilotati o comunque sulla stessa pista. Ne conto 8-9. Se proprio devi comunque consiglio la calzetta tipo sotto.

Wick.jpg

in quanto menniti mi ha cazziato dall'altra parte scrivo qui XD

io sto anche realizzando una cosa tipo pachube gratuita e senza limitazioni.

per l'occasione acquisto una macchina dedicata (eh già cose in grande XD ).

se volete posso dare una mano per quanto riguarda quella parte, però avrei bisogno di qualcuno che mi aiuti in quanto sono pieno di studio e il tempo scarseggia.

in linea di massima ora sto facendo il sito in PHP per gestire gli utenti, se skaxxo vuole potrei contribuire al suo progetto, poi hostiamo sulla mia macchina con anche applicazioni apposite per le API (così da non far girare tutto sulla porta 80 destinata all'HTTP) (se ti interessa contattami in privato perchè credo che una cosa simile sia più utile di quel che sembra)

riguardo al resto non ho una ETH shield XD quindi per ora sono tagliato fuori mi dispiace

superlol:
in quanto menniti mi ha cazziato dall'altra parte scrivo qui XD

uno stimolo, tutto qui :grin:

io sto anche realizzando una cosa tipo pachube gratuita e senza limitazioni.

per l'occasione acquisto una macchina dedicata (eh già cose in grande XD ).

se volete posso dare una mano per quanto riguarda quella parte, però avrei bisogno di qualcuno che mi aiuti in quanto sono pieno di studio e il tempo scarseggia.

in linea di massima ora sto facendo il sito in PHP per gestire gli utenti, se skaxxo vuole potrei contribuire al suo progetto, poi hostiamo sulla mia macchina con anche applicazioni apposite per le API (così da non far girare tutto sulla porta 80 destinata all'HTTP) (se ti interessa contattami in privato perchè credo che una cosa simile sia più utile di quel che sembra)

riguardo al resto non ho una ETH shield XD quindi per ora sono tagliato fuori mi dispiace

OK, nessun problema, non dobbiamo risolvere il problema della fame nel mondo, anche sarebbe bello :slight_smile:
L'intento per ora è realizzare uno strumento-Guida per tutti coloro che acquistano una ethernet shield e vogliono farci qualcosa; chiunque la usa e si sente di scrivere anche un solo argomento, lo faccia, poi ci penso io a mettere insieme tutto.
Grazie comunque per aver risposto. :slight_smile:

Io mi sento chiamato in causa visto che ho fatto vedere a tutti la mia scheda relè ma devo ammettere che non ci capisco una mazza in merito a linguaggi web; per scrivere una paginetta in php ci ho messo una settimana visto che sono dovuto partire da zero.
Non sono in grado di scrivere dei tutorial, mi dispiace ma se posso essere di aiuto anche solo per testare lo faccio volentieri.
Nel playground ho contribuito a scrivere l'articolo su come ricevere dei dati da pagine php ospitate su server, spero sia di aiuto a qualcuno Arduino Playground - HTMLclient.
Non avendo dimestichezza con linguaggi web quello che scriverei non sarebbe per niente ottimizzato, perciò credo che farei soltanto danni.
Ripeto, non è che non scrivo per mancanza di voglia ma perchè non ho le competenze necessarie; se fossi in grado lo facevo senza battere ciglio visto che sono sempre stato aiutato da tutti.
Se posso aiutare facendo dei test dò la mia totale disponibilità, ho l'ethernet shield ufficiale (prima versione) e quella con chip ENC28J60.
Ciao

Pelletta:
Io mi sento chiamato in causa visto che ho fatto vedere a tutti la mia scheda relè ma devo ammettere che non ci capisco una mazza in merito a linguaggi web; per scrivere una paginetta in php ci ho messo una settimana visto che sono dovuto partire da zero.
Non sono in grado di scrivere dei tutorial, mi dispiace ma se posso essere di aiuto anche solo per testare lo faccio volentieri.
Nel playground ho contribuito a scrivere l'articolo su come ricevere dei dati da pagine php ospitate su server, spero sia di aiuto a qualcuno Arduino Playground - HTMLclient.
Non avendo dimestichezza con linguaggi web quello che scriverei non sarebbe per niente ottimizzato, perciò credo che farei soltanto danni.
Ripeto, non è che non scrivo per mancanza di voglia ma perchè non ho le competenze necessarie; se fossi in grado lo facevo senza battere ciglio visto che sono sempre stato aiutato da tutti.
Se posso aiutare facendo dei test dò la mia totale disponibilità, ho l'ethernet shield ufficiale (prima versione) e quella con chip ENC28J60.
Ciao

Quello è già un bel lavoro, per capirci considera che sto promuovendo qualcosa di cui non capisco un accidente, è solo perché c'è tanta gente che ha sempre difficoltà; Testato si è impegnato ad iniziare delle prove, appena possibile, se gli servono riscontri sa che può contare su di te, ti pare poco? Spero che più di qualcuno che usa regolarmente questo shield si decida a scrivere qualcosa, anche solo come fare una prova iniziale qualsiasi.

è solo perché c'è tanta gente che ha sempre difficoltà

Il difficile secondo me non è far funzionare lo shield, ma quello che viene dopo: una volta collegato il cavo ethernet si dovrà creare un qualcosa per la comunicazione e qui se non si ha esperienza è una bella botta; con solo il linguaggio html si fa ben poco, occorre già pensare ad altri linguaggi di supporto tipo javascript oppure php, ajax ecc... e ovviamente più si vuole fare cose particolari più c'è da studiare... se serve un database occorre imparare anche come funzionano i comandi SQL, se si vuole una grafica più gradevole si può ricorrere all'actionScript di flash o imparare il nuovo html5 e via discorrendo.
Altra cosa importante, è che occorre anche avere un pò di nozioni sul funzionamento della connessione, come aprire le porte sul router, come far vedere lo shield dall'esterno della lan... la strada è in salita (ovviamente i soliti mostri diranno "ebbè che ci vuole" ma per un non addetto ai lavori ogni singola cosa diventa un bel problema da affrontare).

Pelletta:

è solo perché c'è tanta gente che ha sempre difficoltà

Il difficile secondo me non è far funzionare lo shield, ma quello che viene dopo: una volta collegato il cavo ethernet si dovrà creare un qualcosa per la comunicazione e qui se non si ha esperienza è una bella botta; con solo il linguaggio html si fa ben poco, occorre già pensare ad altri linguaggi di supporto tipo javascript oppure php, ajax ecc... e ovviamente più si vuole fare cose particolari più c'è da studiare... se serve un database occorre imparare anche come funzionano i comandi SQL, se si vuole una grafica più gradevole si può ricorrere all'actionScript di flash o imparare il nuovo html5 e via discorrendo.
Altra cosa importante, è che occorre anche avere un pò di nozioni sul funzionamento della connessione, come aprire le porte sul router, come far vedere lo shield dall'esterno della lan... la strada è in salita (ovviamente i soliti mostri diranno "ebbè che ci vuole" ma per un non addetto ai lavori ogni singola cosa diventa un bel problema da affrontare).

Bravo! E' proprio quello che io vorrei risolvere, la problematica iniziale, una volta che si mette in piedi questa allora si possono implementare tutti gli argomenti correlati, bastano esempi banali, ovviamente, poi chiaro che ognuno approfondirà di suo, ma almeno parte da qualcosa; ecco perché è fondamentale l'apporto dei soliti mostri, come li chiami tu :slight_smile:

partiamo con un poco di basi.

Tanto per cominciare, qualsiasi cosa abbia una scheda di rete può essere nominato come HOST.
Un host può essere un server, ovvero attendere pazientamene che qualcuno gli chieda di fare qualcosa per cui è stato programmato (offrire un servizio), oppure essere un client, cioè colui che richiede il servizio.
Esiste anche la terza possibilità, tipica dei sistemi p2p (peer to peer): ovvero essere contemporaneamente un server e un client. Sono reti parecchio complicate, di cui non discuteremo, e normalmente per entrare a farne parte bisogna conoscere almeno un appartenente attivo alla rete, si può cercare a caso, come ci si può collegare ad un server che mantenga un elenco di host attivi.

Il moderno internet come lo conosciamo, si basa su un sistema a "strati" per poter veder efficacemente inviati i dati. Ogni strato rappresenta uno standard: la scelta dello standard utilizzato varia in base alle proprie necessità. Questo standard di strati si chiama ISO/OSI OSI model - Wikipedia, e come possiamo vederlo è composto da ben 7 strati, dal livello fisico (cavo ethernet o antenna wifi) fino al livello applicazione(utente), e comprende decine di standard differenti.
Quindi un dato che parte dall'applicazione, entrerà nel livello sottostante gli verrà aggiunto un'header utile alla gestione della rete per quello specifico livello, e inviato nello strato sottostante, dove l'operazione si ripete fino arrivare al livello fisico, dove il dato viene inserito nella rete.

Un collegamento di computer, può essere definito LAN se ottenuto all'interno di una stanza o palazzo, MAN se ottenuto all'interno di una città, WAN se a livello mondiale. Esistono molte altre definizioni, ma queste sono le più utilizzate. Per esempio, collegare i PC di casa è una LAN, internet è una WAN
Esistono vari metodi pr collegare gli host, con un bus (un cavo che passa da PC a PC, passando per ogni HOST una sola volta), una rete ad anello (come il BUS solo che poi il cavo si colega a se stesso. spesso il cavo è doppio, e i dati "girano" in senso opposto), la tipologia "a stella" (un host centrale, di solito un router, è collegato ad ogni singolo host), infine il sistema mesh, in cui ogni host è collegato ad uno o più host in modo più o meno casuale.

Non è difficile immaginare la forza e debolezza di ogni sistema: la rete a bus, se perde un host, può dividersi in due reti separate. Una ad anello, se perde un host resta "fregata", a meno che non usi un doppio anello, nel qual caso funziona lo stesso con qualche rallentamento. se perde anche un secondo host potrebbe iniziare a dividersi in due sottoreti. Una rete a stella non ha problemi nel perdere un host, a meno che non sia l'host centrale, in quel caso cade tutta la rete. Infine la mesh, se ad esempio ogni host è collgato a tutti gli altri host, è virtualmente indistruttibile.

La nostra rete di casa (LAN) è molto differente dalla vera rete internet, di conseguenza abbiamo bisogno di un "traduttore", un qualcosa che srotoli uno o più livelli (anche tutti!) e li ricrei con le impostazione della nuova rete in cui vogliamo entrare.
Questo viene chiamato GATEWAY. Il nostro modem o router di casa fa da gateway, oltre che un altro paio di chicche che vedremo più avanti.
Una precisazione particolare vale per fastweb, che si tratta di una WAN (ovvero una LAN a livello mondiale, come internet, ma è distaccata da essa, e ci comunica attraverso, appunto i gateway)

Un gateway prende il nome dal livello ISO/OSI di rete in cui lavora:
livello 1 - hub o repeater
livello 2 - switch o bridge
livello 3 - router

Benissimo. Osserviamo ancora una volta l'ISO/OSI:

il livello 2, per funzionare, richiede che ogni host abbia un valore numerico differente: è il MAC adress (se non erro 16 byte). Dati e header, in questo livello, vengono chiamati frame.

il livello 3, per funzionare, richiede che ogni host abbia un secondo valore numerico, che al suo interno però contenga un'indicazione della posizione della rete (nulla a che vedere con la posizione geografica!): questo valore viene detto IP. Esiste una parte non modificabile, che appunto rappresenta la posizione della rete, e una modificabile, che rappresenta ogni singolo host (che poi a sua volta può nascondere più host, come vedremo più avanti). Per capire quale sia la parte modificabile e quella no si usa la maschera di rete.
Attualmente esistono 2 versioni di IP:
l'IPv4, che è quello più utilizzato, composto da 4 byte separati da un punto: es. 192.168.1.10. In questo caso la maschera di rete potrebe essere 255.255.255.0: ciò vuol dire che 192.168.1 rappresenta la posizione della rete, mentre il 10 può essere un numero che rappresenta l'host. Quindi in questo caso la maschera di rete ci limita a "soli" 255 host.

Purtroppo, gli IPv4, che sono solo 4.228.250.600, stanno finendo: quindi si è creato l'IPv6, che con 666.000.000.000.000.000.000.000 indirizzi non dovrebbe avere problemi a breve termine (per breve termine si intende mezzo universo colonizzato da host, e si spera anche qualche umano :slight_smile: ).
l'IPv6 fondamentalmente è come l'IPv4, solo che usa 16byte (e che sono separati dal : invece che dal . e rappresentati in esadecimale), per esempio: fe80::226:18ff:feba:8b6c, e stessa cosa vale per la maschera di rete.

Dati e header, a questo livello, si chiamano "datagrammi", e già inizia a contenere un TTL, ovvero il numero di rimbalzi massimi tra host che il pacchetto può fare prima di venire distrutto (e poi vi lamentate delle poste!). Nel caso, viene creato un messaggio di errore utilizzando il protocollo ICMP (diagnostica di rete), sempre sul livello 3

Ed infine abbiamo il 4 livello, ovvero quello a cui lavora la nostra ethernet SHIELD! i due standard più famosi a questo livello sono il TCP e l'UDP.
voi potrete scegliere quale dei due standard utilizzare, quindi vediamoli subito in dettaglio....
[continuo più tardi]