que raro que no traiga antena
Que depende de la tarjeta si es mas vieja que una Uno rev3 o Mega2560 rev3 deberias usar un jumper, si tenes una de esas nuevas entonces deberias sacarlo. Podria ser eso y no cuestion de firmware nomas?Muchas gracias KILLERJC, ahora ya me funciona.
"The WiFi board uses the IOREF pin on newer Arduino pin layouts (Uno rev3, Mega2560 rev3, and later) to sense the reference voltage for the I/O pins of the board to which it is attached."
#include <SPI.h>
#include <WiFi.h>
char ssid[] = "nombredetured"; // Nombre red
char pass[] = "tucontraseña"; // Contraseña
int keyIndex = 0; // solo para wep
char server_IP[] = "www.google.com";
unsigned long test_flag=0;
int i=0;
int status = WL_IDLE_STATUS;
WiFiClient client_IP;
WiFiServer server(80);
void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT);
// Comprueba la presencia de la wifi shield
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield no presente");
while(true); // no continua
}
// Conectando a la red wifi:
while ( status != WL_CONNECTED) {
Serial.print("Conectado a la red llamada: ");
Serial.println(ssid); // Imprime en pantalla el nombre de red (SSID);
// Conectado a red WPA/WPA2. Cambia esta linea si estas conectando a conexion wep:
status = WiFi.begin(ssid, pass);
// espera 10 segundos para conectarse:
delay(10000);
}
server.begin(); // empieza la conexion en el puerto 80
printWifiStatus(); // estas conectado, imprime en pantalla tu conexion
}
void loop() {
if(Serial.available() > 0){
byte inChar;
inChar = Serial.read();
if(inChar == 'a'){
Serial.println("\nStarting connection to dnsdynamic...");
// si tienes conexion, reporta via serial:
if (client_IP.connect(server_IP, 80)) {
Serial.println("conectado al servidor");
client_IP.println("GET / HTTP/1.1");
client_IP.println("Host:www.google.com");
client_IP.println("conexion: cerrada");
client_IP.println();
}
else {
Serial.println("fallo de conexion");
Serial.println();
}
int b = client_IP.available();
while(client_IP.connected() && !client_IP.available()) delay(1); //espera los datos
while (client_IP.connected() || client_IP.available()) { //conexion de datos disponible
char c = client_IP.read();
Serial.print(c);
//Serial.println(b,DEC);
}
Serial.println();
Serial.println("desconectando.");
Serial.println("==================");
Serial.println();
client_IP.flush();
client_IP.stop();
}
}
client_IP.flush();
WiFiClient client = server.available(); // escuchando clientes entrantes
//test_flag=test_flag+1;
//Serial.println(test_flag,DEC);
if (client) { // si tienes un cliente,
Serial.println("nuevo cliente"); // imprime un dato por puerto serie
String currentLine = ""; // hacer una cadena para almacenar los datos entrantes desde el cliente
while (client.connected()) { // bucle mientras el cliente está conectado
if (client.available()) { // si hay bytes a leer desde el cliente,
char c = client.read(); // lee un byte entonces
Serial.write(c); // imprimir en el monitor serie
if (c == '\n') { // si el byte es un carácter de nueva línea
// si la línea actual está en blanco, tienes dos caracteres de nueva línea en una fila.
// Que es el final de la petición HTTP del cliente, por lo que enviar una respuesta:
if (currentLine.length() == 0) {
// HTTP encabezados siempre comienzan con un código de respuesta (por ejemplo, HTTP / 1.1 200 OK)
// Y un tipo de contenido para que el cliente sabe lo que viene, y luego una línea en blanco:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// el contenido de la respuesta HTTP sigue al encabezado:
client.print("Click <a href=\"/H\">aqui</a> para encender el led del pin 9 on<br>");
client.print("Click <a href=\"/L\">aqui</a> para apagar el led del pin 9 off<br>");
// La respuesta HTTP termina con otra línea en blanco:
client.println();
// romper el bucle while:
break;
}
else { // Si recibió una nueva línea, currentline luego despejado:
currentLine = "";
}
}
else if (c != '\r') { // si tienes otra cosa que un carácter de retorno de carro,
currentLine += c; // añadirlo a la final de la línea actual
}
// Compruebe si la solicitud del cliente era "GET / H" o "GET / L":
if (currentLine.endsWith("GET /H")) {
digitalWrite(9, HIGH); // GET / H Enciende el LED
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(9, LOW); // GET /L apaga el led
}
}
}
// cierra la conexion:
client.stop();
Serial.println("client disonnected");
}
}
void printWifiStatus() {
// imprimir el SSID de la red a la que está conectado a:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// imprime la direccion ip de tu wifi shield:
IPAddress ip = WiFi.localIP();
Serial.print("Direccion IP: ");
Serial.println(ip);
// imprimir la intensidad de señal recibida:
long rssi = WiFi.RSSI();
Serial.print("Intensidad de la señal (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
// Imprimir dónde ir en un navegador:
Serial.print("Para ver esta página en acción, abra un navegador http://");
Serial.println(ip);
}
w1.Navigate("192.168.1.140/H")
w1.Navigate("192.168.1.140/L")
Es correcto lo que dices, accedo a una ip enviandole diferentes datos para que haga una cosa u otra.
En otros códigos usan GET y POST, y me resulta más dificil entender esos códigos porque los he probado y me dan errores que aún no se solucionar.
Sabes como conectarme a la wifi shield desde una red remota?
Estoy leyendo sobre eso pero no me termino de aclarar y quiero hacer pruebas para poder ejecutar codigos estando fuera del alcance del wifi.
Request URL:http://www.todopic.com.ar/foros/index.php?board=59.0
Request Method:GET
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8,en;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Cookie: mi cookie en este caso
Host: www.todopic.com.ar
If-Modified-Since: Sun, 14 Dec 2014 17:39:41 GMT
Referer: blabla
User-Agent: bla bla
POST /foo.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/test.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 43
first_name=John&last_name=Doe&action=Submit
Sabes como conectarme a la wifi shield desde una red remota?Te referis a que sea posible accederlo desde internet ? no, realmente no lo se. Me quedo dentro de la LAN o WLAN que se encuentre el mismo.