Wifi WiFly-shield&x2B;阿杜伊诺+;自动连接问题

Wifi WiFly-shield&x2B;阿杜伊诺+;自动连接问题,wifi,arduino,processing,Wifi,Arduino,Processing,我在Arduino上使用WiFly shield,一切正常:我通过USB将Sketch上传到Arduino,连接9V电池,断开USB连接,wifi模块传输一切正常(它将数据传输到我的web服务器) 当电池用完时,我会更换另一个电池,但是wifi/arduino不再与我的服务器通信 我是Arduino的新手,我不知道是否每次断电时Arduino都会丢失程序,或者只是wifi无法自动连接 这是软件问题还是硬件问题? 如果是软件,我做错了什么 这是我的草图示例-我只是向我的服务器发送一个字符串: #包

我在Arduino上使用WiFly shield,一切正常:我通过USB将Sketch上传到Arduino,连接9V电池,断开USB连接,wifi模块传输一切正常(它将数据传输到我的web服务器)

当电池用完时,我会更换另一个电池,但是wifi/arduino不再与我的服务器通信

我是Arduino的新手,我不知道是否每次断电时Arduino都会丢失程序,或者只是wifi无法自动连接

这是软件问题还是硬件问题? 如果是软件,我做错了什么

这是我的草图示例-我只是向我的服务器发送一个字符串:

#包括“WiFly.h”
#包括“Credentials.h”//包括ny用户:通过wifi网络
客户端(“[***myserverip***]”,80);
无效设置(){
Serial.begin(9600);
WiFly.begin();
if(!WiFly.join(ssid,密码短语)){
Serial.println(“关联失败”);
而(1){
//坚持失败。
}
}  
connectServer();
}
void循环(){
if(client.available()){
char c=client.read();
连续打印(c);
} 
如果(!client.connected()){
Serial.println();
Serial.println(“断开”);
client.stop();
延迟(60000);//每分钟检查一次
connectServer();
}
}
void connectServer(){
Serial.println(“连接…”);
if(client.connect()){
Serial.println(“已连接”);
String query=“GET/arduino/test?q=testString HTTP/1.0”;
client.println(查询);
client.println();
}否则{
Serial.println(“连接失败”);
}
}

因此,一切正常,但当我拔下电源并将其插回时,arduino不会重新启动进程。

我自己找到了解决方案-问题在于硬件

问题出在我的Arduino UNO R2上,有一个已知的bug


我买了一个UNO R3,我再也没有这个问题了。

这是因为在使用外部电源时,Arduino板没有板上电源重置功能,所以您总是需要在供电后重置它。您可以将电容器置于复位引脚以消除此问题。但是,如果您使用USB作为电源,那么USB控制器将重置Arduino,因此在这种情况下,您将永远不会出现此问题