Puoi fare in 2 modi:
- RS485 con la seriale
- tutti con la shield ethernet
Soluzione 1
In pratica usi il solito protocollo seriale (RS462) ma con degli accorgimenti particolari perché questo ha delle limitazioni.
Ti servono però degli Arduino Mega perché hanno più di 1 porta seriale (ne hanno 4) ed a te ne servono 2 per ogni Arduino.
Una soluzione semplice è quella di usare un ArduinoMega come switch come indicato nell'immagine qui sotto
Clicca per ingrandire il diagramma
In sostanza il microcontrollore situato nel disimpegno serve a dirigere il traffico di ciascuna stanza verso il server e viceversa. Ogni connessione sfrutta una porta seriale.
Se ogni terminale (le stanze da letto e il bagno) utilizzano una sola connessione, sarà sufficiente utilizzare un Arduino che dispone di una sola porta seriale, altrimenti, se questi fungono da "ponte" per un altro nodo.
Ad esempio:
Le domande nascono spontanee:
Come fa il Server a comunicare con Bagno_2?
Serial.print("Bagno_2|Aria_forzata_OFF"); // Spegne il motorino che ricambia l'aria nel Bagno_2
Come arriva il comando fino a Bagno_2?
Il server invia la stringa al Disimpegno. Questo memorizza il messaggio e vede cosa c'è dall'inizio fino al carattere "|".
In base al nome della destinazione, il Disimpegno invia dalla sua seconda porta seriale il comando a Letto.
Letto, a sua volta, vede se la destinazione è Letto oppure Begno_2. In questo caso spedisce il pacchetto a Bagno_2 utilizzando Serial_2.
Con questo metodo si identifica nella prima parte del messaggio l'indirizzo a cui mandare l'informazione e nella seconda parte l'informazione vera e propria.
Soluzione 2
Tutti gli Arduino hanno una shield Ethernet ed un proprio indirizzo IP.
L'Arduino Disimpegno non è obbligatorio in quanto è sufficiente comprare un semplicissimo HUB.
Scegli la soluzione che più ti aggrada. ![]()