Ciao a tutti
seguo il forum da un po' ed ora per la maturità devo creare un progetto con arduino, ma siccome sono le miei prime volte sto incontrando difficoltà
ho un arduino uno con un Ethernet Shield e SD da 2gb ... Io devo prendere in input dei dati di misura ( presi da sensori di temperatura, sensori di fumo), ed accendere delle luci ( dei led) per simulare una casa domotica... per fare questo volevo utilizzare l'arduino come web server, inserire li sopra ( sulla sd ) un sito html che quando lo richiedo inserendo l'ip dell'arduino, mi permette di vedere i dati e di accendere e spegnere le luci ... per ora mi accontento di questo, poi se avrò ancora tempo proverò a fare qualcosa con il php
Il mio problema è che l'arduino non comunica con il mio pc attraverso la ethernet ( ho windows 7) ... di fatti non mi funzionano nemmeno i file di esempio, perchè lampeggia solo il led rx ( e infatti il computer non riceve pacchetti ma invia solo). Con gli esempi client lampeggiano entrambi, però lo scambio di pacchetti è solo in ricezione e non funziona lo sketch
Curiosando sul forum ho trovato un file di un utente molto semplice, che dovrebbe funziuonare senza problemmi:
#include <SPI.h>
#include <Ethernet.h>
//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, 127};
char Data_RX;
//creao un oggetto server che rimane in ascolto sulla porta
//specificata
EthernetServer ArduinoServer(80);
void setup()
{
//inizializza lo shield con il mac e l'ip
Ethernet.begin(mac, ip);
//inizializza l'oggetto server
ArduinoServer.begin();
Serial.begin(9600);
}
void loop()
{
EthernetClient pc_client = ArduinoServer.available();
//controllo se pc_client è true
if (pc_client != false)
{
//controllo continuamente che il client sia connesso
while (pc_client.connected())
{
//Controllo se ci sono byte disponibili per la lettura
if (pc_client.available())
{
//leggo i byte disponibili
//provenienti dal client
Data_RX = pc_client.read();
//Attendo che tutti i byte siano letti
//quando Data_RX contiene il carattere
//di nuova line capisco tutti i byte sono
//stati letti
if (Data_RX == '\n')
{
//Invio la risposta al client
//invio lo status code
pc_client.println("HTTP/1.1 200 OK");
//imposto il data type
pc_client.println("Content-Type: text/html");
pc_client.println();
//invio codice html
pc_client.print("<html><body><h1>Hello world Arduino Web Server</h1></body></html>");
//aspetto 1 ms affinche la risposta giunga al browser del client
delay(1);
//esco dal ciclo while una volta completato l'invio della risposta
break;
}
}
}
//chiudo la connessione
pc_client.stop();
}
}
Ma anche con questo ( una volta settato il MAC) non funziona nulla, dal browser non vedo nulla mi dice impossibile trovare il server, e il tx non lampeggia e non ho scambi
Come posso risolvere?
Grazie mille a tutti