WiFi-Shield connected, aber keine Zugriffe aufs Netz möglich

Hallo Gemeinde,
ich habe hier einen Arduino Uno SMD und ein Arduino-WiFi-Shield. Beide R3 ...
Mit nachfolgenden Code möchte ich gerne die Webserverfunktion austesten. Folgende Ausgabe kommt per serieller Schnittstelle:

Attempting to connect to SSID: Lischke_neu
SSID: Lischke_neu
IP Address: 192.168.178.26
Gateway: 192.168.178.1
signal strength (RSSI):-44 dBm

Sieht also erst mal gut aus dachte ich. Aber mein Browser am PC sagt: Firefox kann keine Verbindung zu dem Server unter 192.168.178.26 aufbauen. In meiner Fritz-Box taucht der Arduino auch korrekt auf, Sperren habe ich keine aktiv.
Vom PC aus kann ich den Burschen auch per Ping erreichen ...

Habt ihr ne Idee, wo ich noch suchen könnte?

/*
  WiFi Web Server
 
 A simple web server that shows the value of the analog input pins.
 using a WiFi shield.
 
 This example is written for a network using WPA encryption. For 
 WEP or WPA, change the Wifi.begin() call accordingly.
 
 Circuit:
 * WiFi shield attached
 * Analog inputs attached to pins A0 through A5 (optional)
 
 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe

 */

#include <SPI.h>
#include <WiFi.h>


char ssid[] = "*****";      // your network SSID (name) 
char pass[] = "*****";   // your network password
int keyIndex = 0;                 // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600); 
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present"); 
    // don't continue:
    while(true);
  } 
  
  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) { 
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:    
    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("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            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 your WiFi shield's Gateway:
  ip = WiFi.gatewayIP();
  Serial.print("Gateway: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Vielen Dank
Rainer

rainerli:
Sieht also erst mal gut aus dachte ich. Aber mein Browser am PC sagt: Firefox kann keine Verbindung zu dem Server unter 192.168.178.26 aufbauen. In meiner Fritz-Box taucht der Arduino auch korrekt auf, Sperren habe ich keine aktiv.
Vom PC aus kann ich den Burschen auch per Ping erreichen ...

Habt ihr ne Idee, wo ich noch suchen könnte?

Kann es sein, dass in der Eingabezeile Deines Browsers "https://" als Default-Protokoll vorgegeben wird und nicht "http://"?

Versuchst Du wirklich http://92.168.178.26 und nicht https://92.168.178.26 ?

Jau,
dem ist so ... nix mit security ... geht aber trotzdem nicht.

Ursprüngliche Idee war, dass der Arduino sich die Uhrzeit aus dem Web besorgt ... per Time-Server. Aber weder das ging, noch E-Mail-Versand, noch Abfrage einer Web-Seite per Http ... hatte das nur als einfachstes Beispiel genommen.

Sieht so aus, als würde da einer Firewall spielen ... ich finde den nur noch nicht ...

Daher die Anfrage hier, vielleicht ist das schon mal wo anders aufgetreten und gelöst worden.

Wenns nicht anders geht muss ich Kabel versuchen, aber ich will meine Solaranlage überwachen. Und die hat paar Volt DC mehr wie gut ist ... deswegen wäre mir der Arduino per WiFi lieber ... ist dann Galvanisch getrennt vom Netzwerk ...

LG und vielen Dank

Rainer

rainerli:
Sieht so aus, als würde da einer Firewall spielen ... ich finde den nur noch nicht ...

Ist denn Dein PC ebenfalls per WLAN ans Heimnetz angeschlossen und nicht mit LAN-Kabel?

In dem Fall haben die Fritzboxen wohl einen für Dich relevanten Menüpunkt, der da lautet:
Die Angezeigten WLAN-Geräte dürfen untereinander kommunizieren

Und der Menüpunkt Deiner Fritz-Box darf in dem Fall, dass Du von WLAN-PC zu WLAN-Arduino eine Verbindung aufbauen möchtest, natürlich nicht so eingestellt sein, dass die WLAN-Verbindung verboten wird.

Hallo Jurs,
den Punkt hab ich auch schon gefunden und entsprechend eingestellt.
Bin ja erst seit 3 Wochen auf Fehlersuche :frowning:

Hab jetzt mal versucht per UDP (das Beispielsketch) die Uhrzeit auszulesen im Netz (oder auch nur von meiner Fritz-.Box) ... geht auch nicht.

Bin drauf und dran mir son billig-Lan-Shield zu holen um zu testen ob es da besser geht.

LG
Rainer

Habe jetzt noch nen Tipp verfolgt, wonach man zuerst die SD-Karte initialisieren soll ...
Hat auch nicht geholfen.

Hat man denn keine Chance, Routingtabellen oder anderes auf dem Arduino zu sehen?
Oder irgend ne Art von Logging?

Das kann doch nicht sein, dass man die Ursache nicht finden kann ...

Naja, morgen kommt das Ethernetshield ... dann sehe ich wenigstens ob der andere Übertragungsweg klappt.

Bis dann
Rainer

So,
Ethernetshield ausprobiert und alles klappt auf anhieb.
Ob sich die Hardware der WiFi-komponenten nicht versteht? Werde am WE mal nen alten Router testen ... das kann doch nicht wahr sein :smiley:

LG
Rainer

Hallo Reinerli!

Genau das Problem mit dem Wifi Shield habe ich auch. Fritzbox alle Ports offen unfd firewall aus. Trotzdem keine Verbindiung zum Shield.
Ethernet shield klappt auf Anhieb. Trotzdem brauche ich Wlan.
Hast du eine Lösung mit Wifi gefunden?? Würde mich brennend interessieren.
Combo

Hallo,

bei mir ist auch genau das gleiche Problem. Werde es nächste Woche mal mit einem anderen Router testen. Außerdem habe ich ein Firmware-update des Shieldes auch noch nicht versucht.
Hat irgendjemand noch weitere Tipps?

Grüße

Hallo,
Hat einer von Euch das Problem schon gelöst? Habe die gleichen Schwierigkeiten?
LG
Sebastian

Ja! Das Problem liegt darin, dass die Firmware auf dem Shield mit der verwendeten Version der Arduino IDE übereinstimmen muss.
Also einfach die Firmware des WIFI-Shieldes nach folgender Anleitung updaten:

Dabei aber nicht die Firmwareversion von Github auf das Shield laden, sondern die Version der Arduino IDE. Sie ist im Verzeichnis: Programme/Arduino/hardware/arduino/firmwares/wifishield zu finden.
Bei mir hat mit der Arduino IDE 1.5.6 (Beta) nach dem Update alles funktioniert.
Viel Erfolg

Hallo
Vielen Dank. Ich habe das Problem schon viele Male im Netz gefunden, nur keine Lösungen dafür.