Bonjour à tous,
Je suis nouveau sur Arduino et je cherche à tester le fonctionnement serveur de mon Arduino connecté avec un WifiShield.
Je n’arrive pas à comprendre pourquoi ma variable client = server.available() dans mon loop est toujours null.
J’ai repris un tuto connu le-wifi-shield
Pour moi il faut ouvrir un navigateur et mettre comme url l’adresse IP de mon shield à savoir celle renvoyée par ma méthode printWifiStatus(). Uniquement lorsque j’aurais fait la requête sur cette url que mon wifiShield détectera un client selon moi.
Merci pour votre aide.
#include <SPI.h>
#include <WiFi.h>
void printWiFiStatus();
char ssid[] = "********";
char pass[] = "********";
int status = WL_IDLE_STATUS;
WiFiServer server(80);
WiFiClient client;
void setup() {
Serial.begin(9600);
while (status != WL_CONNECTED) {
Serial.print("Tentative de connection au reseau: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(10000);
}
server.begin();
Serial.println("Wifi connected");
printWiFiStatus();
}
void loop() {
client = server.available();
Serial.println(client);
delay(5000);
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("je fais un test");
client.println("
");
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disonnected");
}
}
void printWiFiStatus() {
Serial.print("SSID: ");
Serial.println(ssid);
Serial.print("IP : ");
IPAddress ip = WiFi.localIP();
Serial.println(ip);
long rssi = WiFi.RSSI();
Serial.print("Signal strenght (rssi): ");
Serial.print(rssi);
Serial.println(" dBm");
delay(15000);
}
]