【发布时间】:2015-04-21 12:05:13
【问题描述】:
我正在尝试以 5 秒的循环间隔将数据从网页检索到我的 Arduino。我正在构建 Adafruit CC3000 'Webclient' 示例。
完整代码可以seen here。
一切正常,Arduino 连接到网络,然后向指定网站发出单个请求。
现在我正在尝试添加循环,以便 Arduino 获得刷新的数据。我不想断开连接然后必须重新连接到 wifi 网络,所以我尝试循环以下代码。
void myLoop(uint32_t ip)
{
// START LOOPING
int count = 0;
while(count == 0) {
Adafruit_CC3000_Client www = cc3000.connectTCP(ip, 80);
if (www.connected()) {
www.fastrprint(F("GET "));
www.fastrprint(WEBPAGE);
www.fastrprint(F(" HTTP/1.1\r\n"));
www.fastrprint(F("Host: ")); www.fastrprint(WEBSITE); www.fastrprint(F("\r\n"));
www.fastrprint(F("\r\n"));
www.println();
} else {
Serial.println(F("Connection failed"));
return;
}
/* Read data until either the connection is closed, or the idle timeout is reached. */
//unsigned long lastRead = millis();
while (www.connected()) {
while (www.available()) {
char c = www.read();
content = c;
Serial.print(c);
//lastRead = millis();
}
}
www.close();
Serial.println(F("\n\nDisconnecting"));
cc3000.disconnect();
delay(5000);
}
}
循环完美运行一次,但在第一次迭代后不断输出“连接失败”。
我似乎无法多次运行 connectTCP 函数,但我不明白为什么
Adafruit_CC3000_Client www = cc3000.connectTCP(ip, 80);
我也尝试从循环中删除它并删除 www.close(); 和 cc3000.disconnect();,但仍然无法保持连接打开。
任何帮助将不胜感激。
【问题讨论】:
标签: arduino arduino-ide