2016-10-15 2 views
1

내 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(); 

나는 몇 가지 데이터를 얻을 수 있지만 키우면 신뢰할 수 없습니다 :

데이터는 URL 에 나는이 시도입니다.

"192.168.4.1/HelloWorld"라고하면 HelloWorld 문자열이 필요합니다.

아이디어가 있으십니까? 감사합니다.

답변

1

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(); 
} 
0

또는 .... MQTT 프로토콜을 사용할 수 있습니다. 나는 당신이 성취하려고하는 것을 정확히 모릅니다.

실제로 PubSub 라이브러리 (https://github.com/knolleary/pubsubclient) + 모든 MQTT 브로커를 사용하여 실제로 esp8266에 데이터를 전송합니다. 가정용 자동화에 사용하고 중앙 난방, 조명 등을 제어합니다.

내 2 센트. 건배!