2013-06-24 48 views
1

我最近买了一个arduino wifi盾牌(Atmal芯片32UC3A1512-U),我用 连接我的Arduino Mega ADK R3板)...它连接到我的wifi网络,但是,当我运行
SimpleWebServer实施例在库提供给开/关的指示灯不工作。该代码如下...简单的网络服务器nort与arduino wifi盾牌

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

char ssid[] = "belkin.E33";  // your network SSID (name) 
char pass[] = "abc123cde456"; // 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() { 
    Serial.begin(9600);  // initialize serial communication 
    pinMode(9, OUTPUT);  // set the LED pin mode 

    // check for the presence of the shield: 
    if (WiFi.status() == WL_NO_SHIELD) { 
    Serial.println("WiFi shield not present"); 
    while(true);  // don't continue 
    } 

    // attempt to connect to Wifi network: 
    while (status != WL_CONNECTED) { 
    Serial.print("Attempting to connect to Network named: "); 
    Serial.println(ssid);     // print the network name (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();       // start the web server on port 80 
    printWifiStatus();  // you're connected now, so print out the  status 
} 


void loop() { 


    WiFiClient client = server.available(); // listen for incoming clients 

    if (client) {        // if you get a client, 
    Serial.println("new client");   // print a message out the serial port 
    String currentLine = "";  // make a String to hold incoming data from the client 
    while (client.connected()) {   // loop while the client's connected 
    if (client.available()) {    // if there's bytes to read from the client, 
    char c = client.read();    // read a byte, then 
    Serial.write(c);     // print it out the serial monitor 
    if (c == '\n') {     // if the byte is a newline character 

     // if the current line is blank, you got two newline characters in a row. 
     // that's the end of the client HTTP request, so send a response: 
     if (currentLine.length() == 0) { 
     // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) 
     // and a content-type so the client knows what's coming, then a blank line:  
     client.println("HTTP/1.1 200 OK"); 
     client.println("Content-type:text/html"); 
     client.println(); 

     // the content of the HTTP response follows the header: 
     client.print("Click <a href=\"/H\">here</a> turn the LED on pin 9 on<br>"); 
     client.print("Click <a href=\"/L\">here</a> turn the LED on pin 9 off<br>"); 

     // The HTTP response ends with another blank line: 
     client.println(); 
     // break out of the while loop: 
     break;   
     } 
     else {  // if you got a newline, then clear currentLine: 
     currentLine = ""; 
     } 
    }  
    else if (c != '\r') { // if you got anything else but a carriage return character, 
     currentLine += c;  // add it to the end of the currentLine 
    } 

    // Check to see if the client request was "GET /H" or "GET /L": 
    if (currentLine.endsWith("GET /H")) { 
     digitalWrite(9, HIGH);    // GET /H turns the LED on 
    } 
    if (currentLine.endsWith("GET /L")) { 
     digitalWrite(9, LOW);    // GET /L turns the LED off 
    } 
    } 
} 
// 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"); 
// print where to go in a browser: 
Serial.print("To see this page in action, open a browser to http://"); 
Serial.println(ip); 
} 

,我在串口监视器我得到的结果是

Attempting to connect to Network named: belkin.E33 
SSID: belkin.E33 
IP Address: 192.168.2.5 
strength (RSSI):-56 dBm 
To see this page in action, open a browser to http://192.168.2.5 

但是当我指定IP地址,打开浏览器时,它显示 无法连接到192.168.2.5 我在Mozilla和Chrome会从我的Ubuntu的机器...从其他机器在同一网络中也试过,但具有相同的结果尝试这样做。但是当我ping到192.168.2.5时,它正在ping ...出了什么问题? 。我的朋友建议更改固件...这是一个问题,bcas正如前面告诉我的建立连接的简单示例正在工作...请指导我

回答

0

我将Arduino IDE升级到最新版本后出现同样的问题版本(v2)从v1.0.8这是很好的无线网络屏蔽测试(客户端和服务器)。

现在要尝试每晚构建,看看它是固定的。

编辑:叶氏,每晚构建解决了这个问题。

+0

我不知道是努诺指的是什么版本,因为在写这篇文章时,最新发行版本是1.0.5和1.5.2是在BETA的时间。但是,我遇到了同样的问题,并使用1.0.2来解决它。对我来说,夜晚没有工作。我认为一个固件升级也将照顾这,然后在IDE的更高版本将再次合作。我还没有确认。 – Tom