Shield Ethernet, comunicazione tra Arduino e PC

Semplice esempio client/server TCP/IP tra Arduino e il Computer
Data: 06/08/2008 Autore: Iasparra Francesco 

In questo esempio vi dimostrero' come sia facile far comunicare una scheda Shield Ethernet di Arduino UNO con il Computer su protocollo TCP/IP con un semplicissimo programma.

La scheda Arduino e' il nostro Client TCP, mentre per il Server TCP sul PC utilizzaremo un semplice progamma Java che utilizza le API nativer per il protocollo TCP/IP.

Lo Shield Ethernet di Arduino permette ad una scheda Arduino di connettersi ad Internet.

Esso si basa sul Wiznet W5100. Anche se esistono diversi modelli, noi ci baseremo sul Chip ufficiale e sul quale e' disponibilie molta documentazione.

L'ultima versione della Ethernet Shield basata su chip Wiznet W5100 dispone anche di uno slot per micro (ovvero quella in mio possesso).

Il Chip dispone di uno stack di rete (IP) che supporta sia TCP che UDP.

La prima cosa da fare e' installare il modulo ethernet shield sulla scheda Arduino UNO, collegare il dispositivo alla porta USB del Computer e lanciare il programma Arduino IDE per la programmazione.

Arduino shield ethernet

Scriviamo, ora, il codice per il client Arduino:

//Librerie impiegate per il progetto
#include 
#include 
 
//Creao un array di byte per specificare il mac address
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//creo un array di byte per specificare l'indirizzo ip
byte ip[] = {192, 168, 1, 99};
 
//creo una variabile char per memorizzare i byte letti dal client
char Data_RX;

int count=0;
EthernetClient client;
IPAddress server(192,168,1,14);
 
void setup()
{
    //inizializza lo shield con il mac e l'ip
    Ethernet.begin(mac, ip);
    //inizializza l'oggetto server
    //ArduinoServer.begin();
}
 
void loop()
{
    count+=1;
    
    if (client.available()) {
      char c = client.read();
      Serial.print(c);
    }
    
    if (!client.connected()) {
      Serial.println();
      Serial.println("disconnecting.");
      client.stop();
    }
    
    
    sendData(count);
  
    delay(1000);
}

void sendData(int data) {

  if (client.connect(server, 6789)) {
    Serial.println("connecting...");
    client.println(count);
  }else{
    // if you couldn't make a connection:
    Serial.println("connection failed");
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
  }
}    


  • Java
  • Php
  • Mysql
  • Apache ant
  • Eclipse
  • Spring
  • Hibernate
  • Netbeans
  • Debian
  • Linux
  • Maven

by Iasparra Francesco - © Copyright 2021

E' vietata la riproduzione anche parziale dei materiali presenti in questo sito.

I marchi e le immagini esposti sono Copyright dei rispettivi proprietari.