我想将数据发送到我的esp8266。
我正在使用arudino fw。
数据位于网址中 我试过这个:
String request = client.readStringUntil('\n');
char chars[1000];
char data[100];
bool startRead =false;
request.toCharArray(chars,1000);
int counter=0;
for(int i =0;i<1000;i++){
if(chars[i]=='>'){
startRead=false;
}
if(startRead==true){
data[counter]=chars[i];
counter++;
}
if(chars[i]=='<')
startRead=true;
}
String output(data);
// Serial.println(request);
Serial.println(output);
client.flush();
我得到了一些数据但不可靠。
如果我打电话给“192.168.4.1/HelloWorld”我想要字符串HelloWorld。
有什么想法吗? 谢谢!
答案 0 :(得分:0)
最好使用WebServer从AP模式获取数据。将以下代码合并到您的项目中,并发出类似http://192.168.4.1/text?data=HelloWorld
的HTTP请求。
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void handleText() {
String message = "";
for (uint8_t i=0; i<server.args(); i++){
message += server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(200, "text/plain", message);
}
void setup(void){
//..
server.on("/text", handleText);
server.begin();
Serial.println("HTTP server started");
//..
}
void loop(void){
server.handleClient();
}
答案 1 :(得分:0)
或者.... 你可以使用MQTT协议。我不确切地知道你正在努力完成。
我使用PubSub库(https://github.com/knolleary/pubsubclient)+任何MQTT代理实际发送数据到esp8266。我将它用于家庭自动化和控制我的集中供热,灯光等。
我的2美分。 干杯!