2012-04-14 7 views
2

Ich benutze die WiFly Schild mit Arduino, und alles funktioniert gut: Ich lade meine Skecth zu Arduino über USB, schließe ich eine 9V-Batterie, ich trennen den USB und das WLAN Modul überträgt alles gut (es überträgt Daten an meinen Webserver). WiFly Schild + Arduino + Auto-connect Ausgabe

Wenn die Batterie ausläuft ich mit einer anderen Batterie zu ersetzen, aber dann das WiFi/Arduino kommuniziert nicht mehr mit meinem Server ..

Ich bin ein Neuling auf Arduino und ich verstehe nicht, ob jedes Mal, wenn der Strom ist aus Arduino verliert das Programm, oder einfach, dass das Wifi nicht in der Lage ist, automatisch zu verbinden ...

Ist das ein Software-Problem oder Hardware? Und wenn Software was mache ich falsch?

Dies ist meine Skizze Beispiel - ich bin nur eine Zeichenfolge an meinen Server zu senden:

#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"); 
    } 
} 

Also alles funktioniert gut, aber wenn ich die Kraft ziehen und stecken Sie es der Arduino wieder tut, den Prozess neu starten.

Antwort

3

Ich fand die Lösung selbst - das Problem war mit der Hardware.

Das Problem war in meinem Arduino UNO R2, gibt es einen bekannten Bug.

Ich kaufte ein UNO R3 und ich habe dieses Problem nicht mehr.

2

Es ist, weil Arduino Board nicht On-Board-Power-On-Reset bei Verwendung von externen Netzteil hat, so dass Sie immer müssen es nur nach der Stromversorgung zurückgesetzt werden. Sie können einen Kondensator auf den Reset-Pin setzen, um dieses Problem zu beheben. Wenn Sie jedoch USB als Stromquelle verwenden, setzt der USB-Controller das Arduino zurück, so dass Sie dieses Problem nie haben werden.

Verwandte Themen