Salve a tutti.
E' la prima volta che mi approccio alla connessione ad internet di Arduino. Ho subito avuto non pochi problemi. Cercando in internet ho trovato molti tutorial e molti post su forum vari ma molto discordanti. Ad esempio ho trovato scritto in molti post che l'indirizzo MAC dovrebbe essere scritto in un adesivo sulla shield (cosa che tornerebbe con il fatto che l'indirizzo MAC deve essere dato dal produttore) mentre, in altri post, si dice che basta inserire un indirizzo MAC casuale, l'importante e' che non sia un indirizzo gia' presente nella nostra rete. Il problema e' che nella mia shield non era presente nessun adesivo con indirizzo MAC. Per questo motivo ho provato ad "inventare" un MAC address. Con il codice che segue il problema e' il seguente: nell'uscita seriale mi stampa connesso e subito dopo disconnesso. Il problema e' che anche mettendo un DNS inesistente il risultato rimane sempre il solito, come se entrasse dentro l'if indipendentemente dalla condizione e stampasse solamente l'uot seriale senza stampare il resto.
#include <SPI.h>
#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>
byte mac[]={0x90, 0x90, 0x90, 0x90, 0x90, 0x90};
char server[]="www.google.it";
EthernetClient client;
void setup() {
Serial.begin(9600);
Ethernet.begin(mac);
if(client.connect(server, 80))
{
Serial.println("Connessione avvenuta");
client.println("GET/HTTP/1.1");
client.println("Host:www.google.it");
client.println("Connection: close");
client.println();
}
else Serial.println("connessione fallita");
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
if(!client.connected())
{
Serial.println("disconnesso");
client.stop();
while (true);
}
if(client.available())
{
char c=client.read();
Serial.print(c);
}
else Serial.println("non ci sono caratteri disponibili da leggere");
}
Avete qualche consiglio da darmi o un link di una discussione o di un sito dove posso trovare una soluzione?
Grazie in anticipo.