Connettere un client Arduino ad un server TCP

Sto lavorando con un Siemens Simatic IOT2040. Dopo non pochi problemi sono riuscito a sistemarlo per poterlo utilizzare con l'IDE Arduino e mandare dati in rete.

In questo momento l'ho testato in Telnet e riuscivo a mandare e ricevere Byte senza problemi.

Il programma che riceverà e visualizzerà i dati è Telemetry Viewer, che utilizza i protocolli TCP o UDP. (Utilizzando le porte COM non ho problemi ed il software funziona)

Da quel che so Telnet fa parte del protocollo TCP. Da CMD visualizzo tutto senza problemi, ma il Viewer, anche importando la porta 23, non riesce a connettersi. Credo che il problema nasca dal fatto che entrambi i dispositivi si comportano da server in attesa di un client.

Ho fatto una prova con un codice Arduino per far diventare la scheda un Client TCP ed utilizzare la porta 8080, ma il Viewer continua a non visualizzare nulla, dice solamente The TCP Server is running. Send telemetry to 192.168.1.2:8080.

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 
  0xE0, 0xDC, 0xA0, 0x46, 0x0A, 0xA8 };
byte server[] = {
  192,168,1,2}; 
EthernetClient client;
int n = 0;
void setup() {
  Serial.begin(9600);
  Ethernet.begin(mac);
  Serial.print("Indirizzo IP del Client: ");
  Serial.println(Ethernet.localIP());

  if (client.connect(server, 8080)){
    Serial.println("connesso");
  }  
}
void loop() {
  if(client.connected()){
    char text [20];
    sprintf(text, "%d\n", n);
    client.write(text);
    delay(10);

    n++;
  }
}

Appena riesco a connettermi, l'array text conterrà i dati provenienti da un giroscopio.

Sbaglio qualcosa? Teoricamente questo codice nasce per collegarsi ad un altro arduino con sopra un codice da Server, ma non credo sia questo il problema.

Secondo me non è ben chiara la porta, ma non so come dire alla scheda "guarda, prendi sto array e mandalo a questo indirizzo tramite questa porta", o meglio, credevo di saperlo.

Grazie

Buongiorno,

prima di tutto, essendo questo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (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 tutto il succitato REGOLAMENTO ...

... poi ... non stai già discutendo di questa cosa in QUESTO thread ? ? ?

Guglielmo

P.S.: In ogni caso, ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto.

Salve, mi spiace essere stato così "impulsivo". Provvedo subito alla presentazione.
Comunque si, avevo aperto un altro thread, ma la situazione un po' si è risolta da ieri. Quella era una domanda più incentrata al Siemens che non funzionava completamente. Se ci sono problemi risolvo subito.

Ok, se l'argomento è diverso, allora va bene ...

Guglielmo

1 Like

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