2

私は Arduino で WiFly シールドを使用していますが、すべて正常に動作しています。USB 経由でスケッチを Arduino にアップロードし、9V バッテリーを接続し、USB を切断すると、wifi モジュールがすべてを正常に送信します (データを Web サーバーに送信します)。 )。

バッテリーが切れたら、別のバッテリーと交換しますが、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 はプロセスを再起動しません。

4

2 に答える 2

4

私は自分で解決策を見つけました - 問題はハードウェアにありました.

問題は私の Arduino UNO R2 にありました。既知のバグがあります。

UNO R3 を購入しましたが、もうこの問題はありません。

于 2012-04-14T23:45:15.193 に答える
3

外部電源を使用する場合、Arduinoボードにはオンボードの電源オンリセットがないため、電源を供給した直後に常にリセットする必要があります。この問題を解消するには、リセット ピンにコンデンサを配置します。ただし、電源として USB を使用している場合、USB コントローラーは Arduino をリセットするため、この問題は発生しません。

于 2012-07-30T06:10:16.690 に答える