所以我使用Arduino Uno和ESP8266 module。我试图让模块使用AT串行固件发送HTTP get请求但是我不能这样做。项目从传感器获取数据,并通过将数据发布到pubnub rest API,使用Pubnub服务实时发送。
我有这个功能:
void sendSerialCommand(String cmd, int t) {
int i=0;
while(1) {
Serial.println(cmd);
client.println(cmd);
while(client.available()) {
if(client.find("OK"))
i=8;
}
delay(t);
if(i>5)
break;
i++;
}
if(i==8)
Serial.println("OK");
else
Serial.println("Error");
}
使用此功能,我与服务器建立连接:
sendSerialCommand("AT+CIPMUX=1",100);
sendSerialCommand("AT+CIPSTART=0,\"TCP\",\"" + pubnubIP + "\",80",1000);
Serial.println("Established connection with DashBoard Servers.....");
然后我尝试:
sendSerialCommand("AT+CIPSEND=0," + String(getRequestLength) + "," + "http://" + pubnubIP + "/publish/<publish-key>/<sub-key>/0/water/0/<data>", 1000);
(我在实际代码中输入了发布和子键的值。)
getRequestLength
是要发送的数据的长度。
当我运行代码时,输出显示wait.....
并且连接刚刚关闭。有人可以告诉我正确的语法或发送数据的方法吗?