发送数据到esp8266

时间:2016-10-15 17:32:07

标签: arduino wifi esp8266 nodemcu arduino-esp8266

我想将数据发送到我的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。

有什么想法吗? 谢谢!

2 个答案:

答案 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美分。 干杯!