Trasferimento dati tra più Arduini tramite WiFi

Ciao a tutti,

avrei la necessità di far comunicare più Arduini tra di loro tramite rete WiFi (anche se nulla cambia tra WiFi e LAN).
In realtà sto usando dei WeMos D1 Mini, che in pratica possono essere considerati degli Arduino Uno con la shield WiFi.

Cosa voglio fare:

inviare dati (brevi stringhe, interi o booleani) da uno o più "slave" ad un "master", e viceversa.

Ad esempio, pensiamo ad una rete di termostati, che misurano delle temperature in modo indipendente e inviano questi dati al master. Il master li confronta tra di loro e attiva un relè sullo slave che ha inviato la temperatura più bassa o più alta.

Oppure i pulsanti del Rischiatutto: N concorrenti che premono il pulsante, i dati vengono inviati al master che li confronta e controlla chi sia stato il più veloce, dopodiché invia allo slave il segnale per accendere la lampadina.

Questi sono ovviamente solo esempi, spero siano stati utili per comprendere il meccanismo che vorrei implementare.

Fondamentale è la velocità di risposta: una volta stabilita la connessione alla rete, i dati devono viaggiare veloci, quindi escluderei protocolli tipo POST/GET basati su HTML che prevedono (se non erro) una connessione prima di ogni trasferimento dati.

Ho sentito parlare di serial-over-IP, ma non trovo nulla di chiaro in rete.

Suggerimenti? Idee? Sketch già pronti?

Grazie

>lucalcin: NON avendolo tu ancora fatto, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO. Grazie,

Guglielmo

Guglielmo, chiedo scusa per la presentazione, ero convinto di averla fatta anni fa (forse in inglese), ma comunque ho provveduto. Ho anche fatto numerose ricerche sia sul forum che altrove, senza trovare però nulla di applicabile alle mie necessità.

Un ottimo esempio sarebbe quello di una chat. Pensavo di trovarne tanti invece ho trovato solo server oppure client per chat online.
Ho trovato solo questo

Prova a fare qualche ricerca con Google per "Arduino UDP" che è sicuramente più veloce che usare le http get.

Guglielmo

Dipende. Se uno può tollerare un certo tasso di errore UDP va benissimo. Ma se non si può permettere di perdere dati?

zoomx:
Dipende. Se uno può tollerare un certo tasso di errore UDP va benissimo. Ma se non si può permettere di perdere dati?

Implementa un veloce meccanismo di ACK / NAK così da avere conferma.

Guglielmo

Io per il mio ripetitore di telecomando (realizzato proprio con due WeMos D1) ho implementato un protocollino semplice proprio su UDP, e per evitare configurazioni ho scelto di mandare dai client dei broadcast al server (ossia il server è l'unico che quando riceve i broadcast UDP li interpreta, mentre gli altri li ignorano).

Nel mio caso non mi serve avere comunicazione da server a client ad esempio per conferma del comando, ma eventualmente puoi usare un meccanismo simile evitando i broadcast da client a server oppure implementando nel protocollo una risposta del server sempre in UDP verso il client.