Salve ho comprato una scheda wifi shield, il montaggio tutto semplice, provo ad inserire lo sketch :
#include <SPI.h>
#include <WiFi.h>
char ssid[] = "AndroidAP"; // your network SSID (name)
char pass[] = "147147147"; // your network password
int status = WL_IDLE_STATUS;
boolean door_status = false;
WiFiServer server(80);
void setup() {
// start serial port for debugging purposes
Serial.begin(9600);
// Attach interrupt to pin 2
attachInterrupt(0, setDoorStatus, RISING);
// attempt to connect to Wifi network:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
// wait 10 seconds for connection:
delay(10000);
}
server.begin();
// you're connected now, so print out the status:
printWifiStatus();
}
void loop() {
// listen for incoming clients
WiFiClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<meta http-equiv=\"refresh\" content=\"5\">");
if (door_status == false){
client.print("Everything is ok");
}
else {
client.print("Alert ! The door has been opened");
}
client.println("
");
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
void setDoorStatus() {
door_status = true;
}
un esempio preso da internet per far uscire " the door hs been opened" dal broswer cliccando sul pulsante collegato alla bredoboard al pin 2.
la scheda dialoga e sul monitor seriale mi esce il mio indirizzo ip, ma un volta che vado sul broswer ed inserisco l'ip, mi da errore, sulla shield la luce verde si accende, cosa sbaglio? per adesso mi serve capire la connessione grazie
Grazie per la risposta, scusa può essere che usando come wifi il mio tablet android con una scheda dati e quindi non mi riconosce bene il mio ip, o non comunica bene con il browser, forse mi spiego male, ma vorrei capire, già il fatto che lo hai provato e funziona mi fa pensare che sia un problema di rete
Io ho uso come wifi il tablet android, con allinterno una sim dati vado in altre impostazioni e successivamente su tethering e router wifi abilito router wifi e mi collego con tutti i dispositivi in casa che usano un wifi, gli ho dato una psw che è quella dello sketch ed il nome che cerco per collegarmii è AndroidAP, tutto qui. Ho provato a usare uno sketch che si chiama simply web server, non ricordo se fa parte della libreria di arduiono, mi compare sul monitor seriale l'indirizzo ip e mi dice di vedere ik risultato digitando sul broswer il codice ip che visualizza, stesso problema. Sto impazzendo. Aiuto...
stessa procedura e a me funziona.
nonb credo c'entri qualcosa... a differenza, sul mio cell è attivata l'opzione "debug" e
in seconda sono come superUser
come sim sono con Tim
edit:
appena acquistata la shield wifi ho fatto l'aggiornamento firmware come nella guida
Provo a fare l'aggiornamento del firware e vi faccio sapere, ho controllato con un amico, la scheda va in linea, ma non dialoga con http e indirizzo ip, speriamo sia solo un problema di aggiornamento firmware, altrimenti non so cosa fare
Ho provato anche tramite un pc diverso, anche con il tablet, sempre lo stesso problema, un mistero che a te funziona e a me no, ti viene in mente qualcosa? Scusa se insisto, ma veramente questa cosa non la capisco, il mio amico mi dice che non dialoga in http
Ma l'hai aggiornato o meno questo benedetto firmware ??? Perché con quello vecchio, ed il nuovo IDE (nuova libreria WiFi), puoi stare sicuro che non funziona !
No me lo fa il mio amico, io ho paura di fare danni, scusa mi sorge una dokanda, ma se come dici con il vecchio firmware e la nuova libreria non funzioja, c'è qllora una libreria piu vecchia per vedere se funziona? Forse sto dicendo una sciocchezza? Se invece esiste saresti così gentioe dove procurarla?
Non ricordo con che versione dell'IDE l'hanno aggiornata ... probabilmente se ti scarichi una vecchia versione ... tipo 1.02 ... dovrebbe andare, ma ... occhio, perché se l'hanno aggiornata è perché c'erano dei buchi (... es. blocchi improvvisi non prevedibili).
Quindi, se vuoi fare una prova ok, ma non usarla per il progetto finale ... usa l'ultimo IDE ed aggiorna il FW della scheda !
Basta ci rinuncio, non siamo stati in grado di aggiornare il firmware, ci dava errori che non abbiamo capito, peccato che mi ritrovo una scheda nuova, l'errore è mio, che mi sono imbattuto in qualcosa che non conosco bene, ma pensavo fosse più semplice, pensavo che una volta caricato la scheda e lo sketch funzionasse facilmente.
quando ho aggiornato la scheda ho avuto problemi perchè il percorso del file che deve aggiornare non era al posto giusto come dice la quida.
mi sono salvato il percorso, nell'esempio manca (nel mio caso) c:\programmi.
se hai avuto il mio steesso problema prova a controllare dove sono i file dnld.elf
con windows 8 in cmd copia e incolla (controlla i percorsi):
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer C:\Programmi\Arduino\hardware\arduino\avr\firmwares\wifishield\binary/wifi_dnld.elf program verify start reset 0
il file wifiHD.elf
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer C:\Programmi\Arduino\hardware\arduino\avr\firmwares\wifishield\binary/wifiHD.elf program verify start reset 0
se non hai buttato via tutto, di seguito ti mostro la procedura (per windows 8)
non serve avere arduino attaccato alla scheda wifi
non serve attualmente scaricare il firmware, c'è già nella cartella di arduino
scaricare "flip" di atmel, se non si cambia percorso l'eseguibile lo installa qui:
C:\Program Files\Atmel\Flip 3.4.7\bin
(attualmente è la 3.4.7)
-tasto DX sull'icona nell'angolo in basso a SX dello schermo del pc
-esegui
-scrivi cmd
-ok
ti si apre il terminale
scrivere
cd C:\Program Files\Atmel\Flip 3.4.7\bin (puoi fare copia e incolla)
se il percorso è giusto sul terminale vedi:
C:\Program Files\Atmel\Flip 3.4.7\bin>
-inserisci il cavallotto in dotazione tra i 2 pin per la programmazione
-dai l'alimentazione collegando il cavetto usb dati (che non sia un cavetto per sola alimentazione ]:D)
ora... se il file wifi_dnld è nel posto giusto cioè:
C:\Program Files\Arduino\hardware\arduino\avr\firmwares\wifishield\wifi_dnld
copia e incolla sul terminale questo:
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer C:\Programmi\Arduino\hardware\arduino\avr\firmwares\wifishield\binary/wifi_dnld.elf program verify start reset 0
se non ci sono errori si accende un led blu sulla scheda
leva lo spinotto usb (importante)
reinserisci lo spinotto usb
ora... se il file wifiHD è nel posto giusto cioè:
C:\Program Files\Arduino\hardware\arduino\avr\firmwares\wifishield\wifiHD
copia e incolla sul terminale questo:
batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer C:\Programmi\Arduino\hardware\arduino\avr\firmwares\wifishield\binary/wifiHD.elf program verify start reset 0
finito di caricare leva il cavallotto
fine.
una nota
(nel mio caso) se lascio "c:\Program Files" non funziona devo mettere c:\Programmi.
mistero di win