Cerco Esempio Piu' Arduini in rete che dialogano

Ciao atutti... Non capisco come si potrebbe fare, ma cerco solo esempio per capire come dialogare .... Poniamo che abbia un arduino in rete con la sua pagina web dove devo mostrare tre temperature in stanze diverse, ogni stanza ha un arduino in rete con il suo sensore... Quindi il master deve chiedere attraverso la rete la reletiva informazione.... Qualcuno sa' indicarmi la base da cui partire, con esempio di come dialogano due o piu' arduino?

Grazie Mille

Un esempio, chiedi troppo. è un sistema single master multi slave. Gli slave devono rimanere in ascolto su un endpoint(server), e in caso di connessione eseguire la lettura, inviarla e terminare la connessione. Il master deve eseguire un lavoro doppio, si mette in ascolto sulla porta 80 in attesa di richieste http(web server), in caso di connessione contatta gli slave per ottenere le temperatura(client) e invia al client web la pagina con i valori dei sensori. Questa è la configurazione più easy e senza una buona implementazione asincrona (più efficiente ed elegante, vedi AJAX)

grazie della risposta, non chiedo un esempio di cio' che serve a me, ma di un esempio dove due arduini dialogano tramite rete, si scambiano infirmazioni, mi serve per capire la base di partenza.

Sinceramente dando una sfogliata su google, tutti siti che trovo propongono listati raccapriccianti e commentati palesemente da qualcuno che non ha mai letto due righe sul protocollo TCP.
Quindi comprendo la tua perplessità. In ogni caso ti posso assicurare che Arduino mette a disposizioni classi molto complete che rendono il risultato che vuoi raggiungere tu molto semplice. Io ti consiglierei di capire bene come instaurare una connessione TCP con un server, e poi come mettersi in ascolto sulla porta ottanta e fungere da web server e poi unire le due cose.

Grazie Roberto, Effettivamente sono molto confuso, comunque sto' optando sul protocollo UDP con gia' qualche risultato, mi sconsigli di andare avanti su questo protocollo? Perche' effettivamente sul TCP non ho capito molto

UDP è un protocollo molto più semplice di TCP, lo potremmo definire un protocollo ignorante. Vorrei spiegare come funzionano i due, ma per la mole di informazione dovrò fare un riassuntone (ti basti pensare che in italia vi sono corsi universitari che dedicano 4-5 CFU solo a questi due protocolli). Entrambi sono protocolli di trasporto, entrambi viaggiano generalmente su protocollo di rete IP. UDP è un protocollo connectionless cioè invio un pacchetto da un endpoint ad un altro endpoint senza instaurare una connessione virtuale. UDP non presenta un sistema di controllo, cioè non siamo in grado di dire quando e se il pacchetto è arrivato a destinazione, l'UDP presenta un datagramma molto semplice(informazioni inviate), che contiene i due porte(mittente e destinatario), la lunghezza del messaggio, un checksum sull'intestazione e i dati veri e propri. TCP è un protocollo molto più raffinato, i due client instaurano una connessione, vi è controllo di flusso, controllo di ricezione (cioè il ricevente comunica al mittente se il pacchetto è stato ricevuto correttamente). Le informazioni a differenza di UDP vengono inviate in singoli pacchetti, quindi se perdo un pacchetto non devo rinviare tutto da capo, come accade in UDP.

Vedi tu, in questi sistemi è sempre raccomandato TCP, UDP si usa per esempio nello streaming, dove l'invio di dati deve essere rapido(non si sta ad aspettare che il destinatario abbia ricevuto e confermato) in quanto possono essere molto abbondanti e un singolo pacchetto perso non pregiudica tutti i dati inviati.

http://www.navigaweb.net/2014/06/differenza-tra-tcp-e-udp-nella.html

https://it.wikipedia.org/wiki/Transmission_Control_Protocol

http://www.telematica.polito.it/oldsite/Pdf/NO-tcp_udp_2.pdf

http://www.di.unisa.it/~ads/corso-security/www/CORSO-0102/RilevazionePortscanning/intro.htm

oppure fai un socket su TCP real time, si perde solo qualche ms nella negoziazione alla prima connessione, poi il "canale" resta aperto, massimo 4 col w5100, 8 col w5500

Grazie Mille, Molto chiaro e preciso, avevo capito la differenza per quanto riguarda l'affidabilita', ma credevo che quello che voglio fare fosse impossibile con il TCP, ossia solo per richiede informazioni su un sensore o giu' di li', Optero' per il TCP.

Poniamo che abbia un arduino in rete con la sua pagina web dove devo mostrare tre temperature in stanze diverse, ogni stanza ha un arduino in rete con il suo sensore...

Mi sembra però un metodo piuttosto costoso 4 arduini e 4 ethernet shield e piuttosto lento, alla fine ci metti +/- 2-3 secondi per interrogarli tutti, 500/600 ms li perde ciascun arduino per rispondere al master, mentre fa questo durante la connessione ciascun arduino perde eventi che possono accadere nei tempi sopradescritti. 250.00 euro se li prendi originali 90/100 euro se li prendi tarocchi, ma alla fine sono buttati perchè diventerai pazzo e li cestini dalla disperazione, dopo aver buttato 100.00 euro non spenderai 250.00 di nuovo per avere un risultato mediocre, quindi conclusione rinunci e non farai più nulla. :)

Io sto lavorando a qualcosa che ti farebbe mooolto comodo, però è ancora presto :(.

Modbus?

Beh, a quello c'è poco da lavorare, è già fatto :D. Sto cercando di mettere in piedi un sistema "didattico", molto semplice, per interfacciare via Ethernet o Wireless (in realtà anche in mille altri modi, è facilmente estendibile) vari Arduino tra di loro e/o un PC. Idealmente invece di un PC si userebbe un Raspberry Pi, realizzando qualcosa di estremamente low cost.

Al momento sto lavorando al protocollo, il requisito base è la semplicità estrema, per cui mi sto concentrando su questo. La comunicazione Arduino-PC è già operativa, ma solo se "comanda" il PC, tramite una serie di script Python (se vedete i grafici di temperature & co. che ho postato in giro sono fatti così). Nonappena il protocollo sarà ben definito mi dedicherò alla parte "master" su Arduino. Non manca molto, ma il tempo di lavorarci è quel che è :(.

Grazie delle risposte, SukkoPera Attendo con ansia..... Grazie Pablos , non mi preoccupa i tempi di risposta, servirebbe per temperature ambiente...controllo luci esterne e irrigazione, per il modbus ho provato molto il sistema 485 con ottimi risultati, ma mi affascina di piu' controllare tramite rete, l'ho gia' in tutta la casa, poi implementando anche il wifi potrebbe essere molto piu' semplice aggiungere anche una piantana (per esempio) senza doverci portare la linea 485, adesso sta funzionando il tutto con la I2c da oltre quattro anni (PIC non Arduino) ed ha svolto egregiamente il suo compito, controllare tramite web da tutti i dispositivi e' fantastico, adesso solo tramite display 20x4...