2012-04-14 3 views
2

Я использую щит WiFly с Arduino, и все работает отлично: я загружаю свой skecth в Arduino через USB, я подключаю батарею 9 В, я отсоединяю USB и Wi-Fi модуль передает все в порядке (передает данные на мой веб-сервер).WiFly shield + Arduino + проблема автосоединения

Когда батарея разряжается я заменить другую батарею, но затем WiFi/Arduino больше не общается с моим сервером ..

Я новичок на Arduino, и я не понимаю, если ли каждый раз, когда питание от Arduino теряет программу, или просто, что Wi-Fi не может автоматически подключиться ...

Является ли это проблемой программного обеспечения или оборудованием? И если программное обеспечение, что я делаю неправильно?

Это мой эскиз пример - я просто посылаю строку на мой сервер:

#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, поэтому в этом случае у вас никогда не будет этой проблемы.