отправить данные на esp8266

Я хочу отправить данные на свой esp8266.

Я использую прошивку арудино.

данные находятся в URL-адресе, который я пробовал:

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.

Любые идеи? Спасибо!


person rusky    schedule 15.10.2016    source источник


Ответы (2)


Лучше использовать WebServer для получения данных из режима AP. Вставьте приведенный ниже код в свой проект и сделайте HTTP-запрос вида http://192.168.4.1/text?data=HelloWorld.

#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();
}
person cagdas    schedule 17.10.2016

Или... вы можете использовать протокол MQTT. Я не знаю точно, что вы пытаетесь достичь.

Я использую библиотеку PubSub (https://github.com/knolleary/pubsubclient) + любой брокер MQTT для фактической отправки данных в esp8266. Я использую его для домашней автоматизации и управления центральным отоплением, освещением и т. д.

Мои 2 цента. Ваше здоровье!

person spacefolder    schedule 05.08.2017