Salve a tutti, sono nuovo nel forum Arduino.
Ho attacato un Ethernet Shield non originale ad Arduino UNO (originale).
Lo sketch che ho caricato è questo:
#include <Ethernet.h>
#include <Client.h>
#include <Server.h>
#include <SPI.h>
//DETERMINA IL MAC E L'IP DELLA PAGINA WEB
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {
192, 168, 1, 75};
//PORTA DI COMUNICAZIONE
EthernetServer server(272);
//SCRIVE IL NUMERO DI PIN CORRISPONDENTE AI LED
int ledPin1 = 9;
int ledPin2 = 8;
//LUNGHEZZA DELLA STRINGA INVIATA
String readString = String(30);
//IMPOSTA ALL'AVVIO I LED SPENTI
boolean LEDON1 = false;
boolean LEDON2 = false;
void setup(){
Ethernet.begin(mac, ip);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
}
void loop(){
EthernetClient client = server.available();
if (client) //SE ESISTE UN CLIENTE
{
while (client.connected()) // SE IL CLIENTE E' CONNESSO
{
if (client.available()) //SE E' TUTTO OK PER INIZIARE
{
char c = client.read(); //LEGGI I SINGOLI CARATTERI INVIATI
if (readString.length() < 100)
{
readString += c; //CONCATENA I CARATTERI
}
if (c == '\n') //VEDE SE C'E' IL CARATTERE DI FINE STRINGA, PER INDIVIDUARE CHE E' FINITA
{
if(readString.indexOf("L1=1") > 0) //IMPOSTA UNA VARIABILE DI TIPO BOLEANA (VERO-FALSO) PER GLI STATI DEL LED
{
LEDON1 = true;
}
else if (readString.indexOf("L2=1") > 0)
{
LEDON2 = true;
}
else if(readString.indexOf("L1=0") > 0)
{
LEDON1 = false;
}
else if (readString.indexOf("L2=0") > 0)
{
LEDON2 = false;
}
//CREA LA PAGINA HTML (VERRA' AGGIORNATA AD OGNI ISTRUZIONE NUOVA)
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html><head><link rel='icon' href='/favicon.png' type='image/png' /><title>Arduino UNO WebServer</head><body>");
//TITOLO LED 1
client.println("<h1>Led 1</h1>");
//OPERAZIONI DA FARE QUANDO SI CLICCA PER ATTIVARE LEDON1:
if (LEDON1) {
digitalWrite(ledPin1, HIGH);
client.println("Stato: ON
");
}
else {
//OPERAZIONI DA FARE QUANDO SI CLICCA PER SPEGNERE LEDON1:
digitalWrite(ledPin1, LOW );
client.println("Stato: OFF
");
}
//CREA I PULSANTI RELATIVI A LED1
client.println("<a href='?L1=0'>SPEGNI</a>");
client.println("<a href='?L1=1'>ACCENDI</a>");
//INSERISCE IL DIVISORE
client.println("
______________________________
");
//TTOLO LED2
client.println("<h1>Led 2</h1>");
//OPERAZIONI DA FARE QUANDO SI CLICCA PER ATTIVARE LEDON2:
if (LEDON2) {
digitalWrite(ledPin2, HIGH);
client.println("Stato: ON
");
}
else {
//OPERAZIONI DA FARE QUANDO SI CLICCA PER SPEGNERE LEDON2:
digitalWrite(ledPin2, LOW);
client.println("Stato: OFF
");
}
//CREA I PULSANTI RELATIVI A LED2
client.println("<a href='?L2=0'>SPEGNI</a>");
client.println("<a href='?L2=1'>ACCENDI</a>");
//CHIUDE I TAG HTML PER LA PAGINA
client.println("</body></html>");
//SI PREPARA PER UNA NUOVA ISTRUZIONE
readString="";
//TERMINA LE OPERAZIONI CLIENTE
client.stop();
}
}
}
}
}
Provando a digitare l'IP nel browser mi dice che la pagina web non è disponibile, mentre facendo un ping dell'indirizzo esce scritto:
Esecuzione di Ping 192.168.1.75 con 32 byte di dati:
Risposta da 192.168.1.8: Host di destinazione non raggiungibile.
Risposta da 192.168.1.8: Host di destinazione non raggiungibile.
Risposta da 192.168.1.8: Host di destinazione non raggiungibile.
Risposta da 192.168.1.8: Host di destinazione non raggiungibile.
Statistiche Ping per 192.168.1.75:
Pacchetti: Trasmessi = 4, Ricevuti = 4,
Persi = 0 (0% persi)