Comunicazione di due arduino in rete client - server

Buon giorno a tutti , mi chiamo Fabio è sono alle prime armi con la programmazione di Arduino , faccio l'elettricista e ho poca esperienza nella programmazione col linguaggio c++ , ho acquistato diversi testi per poter imparare il linguaggio di Arduino, attualmente utilizzo due ARDUINO UNO con la ETHERNET shild , dopo diversi esercizi utilizzando la comunicazione seriale ho voluto provare la comunicazione ethernet tramite client e server, il mio esercizio consiste nel mandare un bit tramite la funzione BIT SET e BIT READ dal client verso il server , volevo chiedervi se è possibile fare in entrambi le schede la trasmissione e la ricezione dei bit , purtroppo sono riuscito a inoltrare dal client un bit associato allo stato di un pulsante che nel server accendere un led , volevo fare anche viceversa.
in attesa di un vostro aiuto vi ringrazio in anticipo
inoltro il programma che funziona .

CLIENT

#include <SPI.h>
#include <Ethernet.h>
#include <String.h>

byte mac[] = {0xA8,0x61,0x0A,0xAE,0xA9,0xD7};
byte ip[] = { 192,168,1,105 };
byte gateway[] = { 192,168,1,1 };
byte subnet[] = { 255,255,255,0 };

byte server[] = {192,168,1,100};

EthernetClient client;


void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
Serial.begin(9600);
if(client.connect(server,1234)){
  Serial.println("connesso");
  pinMode(2,INPUT);
}
}
  
 
int buf =0;
void loop(){
 if (client.connected()) {
 buf = digitalRead(2);
 Serial.println(buf,0);
  client.write  (buf);
   
    
 }
}

SERVER
#include <SPI.h>
#include <Ethernet.h>
#include <String.h>


byte mac[] = {0xA8,0x61,0x0A,0xAE,0xAA,0x38};
byte ip[] = { 192,168,1,100 };
byte gateway[] = { 192,168,1,1 };
byte subnet[] = { 255,255,255,0 };


EthernetServer server (1234);

void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
server.begin();
pinMode(5,OUTPUT);
 }

void loop() {
EthernetClient client =server.available();
if (client){
  if (client.connected()&&client.available()){
  

 int c = client.read();
 digitalWrite(5,bitRead(c,0));
}
}
}

:warning:
Ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato. Grazie.

... a quanto detto da PerryBebbington aggiungo anche che ... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Fatto questo, come richiesto al punto 7 del succitato regolamento, per favore edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione e sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

scusate volevo capire se devo compilare altro

No, niente altro, però ora che mi ci fai pensare:
assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT

Facendo ciò chi leggerà il codice sorgente comprenderà meglio cosa fa lo sketch e sarà più facile suggerirti dove intervenire. Per il resto devi solo attendere che un esperto ti risponda (c'è, esiste ma oggi è il 15).

Ciao e benvenuto.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.