Ciao, ti illustro un esempio pratico e semplice :
OBBIETTIVO: Accendere e spegnere 3 leds con arduino da browser internet
IN QUESTO CASO: Il codice che vedrai sul browser è già dentro arduino
INDIRIZZO INTERNET: il mio router dice che c'è qualcosa attaccato ad una porta ethernet che ha come indirizzo IP "192.168.0.151" e capisco che è il mio arduino quindi sul browser scriverò http://192.168.0.151
(nel tuo caso probabilmente nella pagina di gestione del router vedrai più di un indirizzo IP , magari 192.168.1.2 oppure 192.168.1.3 e così via, sta a te capire quel'è quello dell'arduino e di conseguenza cambi quello che c'è scritto nello sketch)
Altro metodo per intercettare l'IP ADDRESS dell'Ethernet shield (proposto ad un utente Fastweb ma sempre valido)
BrainBooster:
se sei su windows , esegui cmd
e scrivi:
Ipconfig /all
guarda dove dice "connessione alla rete locale LAN"
e così vedi indirizzo ip della scheda ethernet del pc e del gateway (indirizzi da evitate).
Poi, se per esempio l'indirizzo del gateway è 10.0.0.1 e la scheda ethernet del pc è 10.0.0.2 allora dovrai configurare l'ethernet shield in modo che sia sulla stessa sottorete ma che non collida con indirizzi già assegnati dal server dhcp, quindi potrai usare gli indirizzi che vanno da 10.0.0.3 in poi (10.0.0.4 , 10.0.0.5 ecc...)
Se solo per provare, tutto il resto (subnet ecc...) puoi lasciarlo così com'è (chiaramente se nello sketch è impostato anche un gateway, quello deve coincidere con quello che è impostato sulla scheda ethernet del pc, quindi sarà 10.0.0.1).
Inserisco un sketch di prova con idirizzo 192.168.0.151:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0,151 };
Server server(80);
String query;
void setup()
{
query = String("");
Ethernet.begin(mac, ip);
server.begin();
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
}
void loop()
{
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
query.concat(c);
if (c == '\n') {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if (query.indexOf("accendi8") > 0) {
digitalWrite(8,HIGH);
client.print("Accendo
");
}
if (query.indexOf("spegni8") > 0) {
digitalWrite(8,LOW);
client.print("Spengo
");
}
if (query.indexOf("accendi7") > 0) {
digitalWrite(7,HIGH);
client.print("Accendo
");
}
if (query.indexOf("spegni7") > 0) {
digitalWrite(7,LOW);
client.print("Spengo
");
}
if (query.indexOf("accendi6") > 0) {
digitalWrite(6,HIGH);
client.print("Accendo
");
}
if (query.indexOf("spegni6") > 0) {
digitalWrite(6,LOW);
client.print("Spengo
");
}
client.print("<a href='/accendi8'>Accendi LED 8</a>
<a href='/spegni8'>Spegni LED 8</a>
");
client.print("<a href='/accendi7'>Accendi LED 7</a>
<a href='/spegni7'>Spegni LED 7</a>
");
client.print("<a href='/accendi6'>Accendi LED 6</a>
<a href='/spegni6'>Spegni LED 6</a>
");
client.print("<pre>");//DEBUG
client.print(query);// DEBUG
client.print("</pre>");//DEBUG
break;//fermo il ciclo
}
}
}
delay(1);
client.stop();
query = String("");
}
}
Ho collegato 3 led ad arduino, uno sul pin 6 uno sul pin 7 e l'ultimo sul pin 8
Se vado alla pagina http://192.168.0.151 vedrò le scritte
Accendi LED 8
Spegni LED 8
Accendi LED 7
Spegni LED 7
Accendi LED 6
Spegni LED 6
E cliccandoci sopra si accenderanno o spegneranno i led corrispondenti
Otterrai lo stesso risultato scrivendo nel browser: http://192.168.0.151?accendi6 o http://192.168.0.151?spegni6
(sono tutte cose che puoi leggere nello sketch)
Poi puoi sempre imparare a creare una pagina internet e inserire dei bottoni adeguati ecc...
e in quel caso il link dei bottoni saranno qualcosa tipo:
ACCENDI LED 6
SPEGNI LED 6
IN CONCLUSIONE:
Scopri l'indirizzo IP di Arduino collegato al router, carichi lo sketch in arduino, colleghi i led, apri internet e ti colleghi all'indirizzo IP di arduino
P.S
Ho il blog temporaneamente chiuso per ristrutturazione sennò ti linkavo il tutorial.