2012-04-14 77 views
2

我使用Arduino的WiFly盾,並且一切工作正常:我通過USB上傳我的skecth到Arduino,我連接9V電池,斷開USB和WiFi模塊傳輸一切正常(它傳輸數據到我的網絡服務器)。WiFly盾+ Arduino +自動連接問題

當電池耗盡我更換其他電池,但隨後的WIFI/Arduino的不再是我的服務器進行通信..

我在Arduino的一個新手,我不知道是否如果每次電源關閉Arduino失去了程序,或者乾脆說wifi不能自動連接...

這是一個軟件問題或硬件? 如果軟件我做錯了什麼?

這是我的素描例子 - 我只是發送一個字符串到我的服務器:

#include "WiFly.h" 
#include "Credentials.h" // includes ny user:pass wifi network 

Client client("[***myserverip***]", 80); 

void setup() {  
    Serial.begin(9600); 

    WiFly.begin(); 

    if (!WiFly.join(ssid, passphrase)) { 
    Serial.println("Association failed."); 
    while (1) { 
     // Hang on failure. 
    } 
    } 

    connectServer(); 
} 

void loop() { 
    if (client.available()) { 
    char c = client.read(); 
    Serial.print(c); 
    } 

    if (!client.connected()) { 
    Serial.println(); 
    Serial.println("disconnecting."); 
    client.stop(); 
    delay(60000); // check every minute 
    connectServer(); 
    } 
} 

void connectServer() { 
    Serial.println("connecting..."); 

    if (client.connect()) { 
    Serial.println("connected"); 
    String query = "GET /arduino/test?q=testString HTTP/1.0"; 

    client.println(query); 
    client.println(); 
    } else { 
    Serial.println("connection failed"); 
    } 
} 

所以,一切工作正常,但當我拔下電源,然後重新插入Arduino的犯規重新啓動進程。

回答

3

我自己找到了解決方案 - 問題出在硬件上。

問題出在我的Arduino UNO R2上,有一個已知的錯誤。

我買了一臺UNO R3,我不再有這個問題了。

2

這是因爲Arduino板在使用外部電源時沒有上電覆位,因此您需要在供電後立即重置。您可以將一個電容器置於復位引腳以消除此問題。但是,如果您使用USB作爲電源,則USB控制器將重置Arduino,因此在這種情況下您將永遠不會遇到此問題。