문제

I've got a problem with my new Arduino Uno + WifiShield. I want to test the example code, delivered by arduino.cc or the Arduino-IDE "WifiChatServer":

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

char ssid[] = "ssid"; //  your network SSID (name) 
char pass[] = "password";    // your network password (use for WPA, or use      as key for WEP)

int keyIndex = 0;            // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(23);

boolean alreadyConnected = false; // whether or not the client was connected previously

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);
  } 
  // start the server:
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();
 }


void loop() {
 // wait for a new client:
  WiFiClient client = server.available();


  // when the client sends the first byte, say hello:
   if (client) {
    if (!alreadyConnected) {
      // clead out the input buffer:
      client.flush();    
      Serial.println("We have a new client");
      client.println("Hello, client!"); 
      alreadyConnected = true;
    } 

    if (client.available() > 0) {
      // read the bytes incoming from the client:
      char thisChar = client.read();
       // echo the bytes back to the client:
      server.write(thisChar);
      // echo the bytes to the server as well:
      Serial.write(thisChar);
    }
  }
}


void printWifiStatus() {
  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");
}

You can also lookup the code here: http://arduino.cc/en/Tutorial/WiFiChatServer

I didn't make any changes except entering my home wifi connection-data. After uploading the code onto my arduino, the controller connects to the wifi and prints his ip-address, assigned by my router. Also the arduino is listed in the table of connected devices on the router.

Ping the arduino from my laptop is successful!

Trying to connect to the arduino via telnet (putty) the error "Connection Refused" is displayed. I tried to connect with disabled firewall on my laptop, with another port (8888/9999) and with my smartphone, everytime the same error.

Here's the wireshark capturing of a simple ping and the telnet-request: http://imagizer.imageshack.us/v2/800x600q90/34/ayo5.png

Has anyone an idea to solve the problem?

도움이 되었습니까?

해결책

I had some similar problems (with the official wifi shield). I solved it by using an earlier version of the Arduino IDE. I downgraded from 1.0.5 to 1.0.3 and it worked. Perhaps you have the same problem?

It might atleast be worth a try!

다른 팁

Using Arduino 1.05 i¡ve got the same problems. I just copied WiFi library from Arduino 1.0.4 into Arduino 1.0.5 and it works.

I seem to have copied an example-code, where the server.begin(); was missing. So make sure your implementation is complete.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top