2016-10-18 5 views
0

GET 요청에 대한 응답이 없으므로 ESP8266 + Arduino Mega에서 Node.js로 보내주십시오. 노드의 코드가 요청을 수신하지만 Arduino 코드에 아무것도 표시되지 않습니다.ESP8266 Node.js에서 GET 응답을받지 못함

Node.js를

app.get('/StatusSaidas', function(req,res){ 
    res.charset = 'UTF-8'; 
    console.log('Send to Arduino: ' + statusArdu); 
    res.send(statusArdu); 
}); 

'나는 돈

uint8_t buffer[1024] = {0}; 
    if (wifi.createTCP(HOST_NAME, HOST_PORT)) { 
    Serial.print("Connection with Host OK!\r\n"); 
    } else { 
    Serial.print("Error to connected to Host!\r\n"); 
    } 
    char *ComandoGET = "GET /StatusSaidas HTTP/1.1\r\nHost: SmartHouse\r\nConnection: close\r\n\r\n"; 
    wifi.send((const uint8_t*)ComandoGET, strlen(ComandoGET)); 

    uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000); 
    char *resposta = buffer; 
    for (int i = 0; i < len; i++) 
    { 
    if (strncmp(resposta++, "\r\n\r\n", 4) == 0) break; 
    } 
    resposta += 3; 
    receive = resposta; 
    Serial.print(receive); 
    Serial.print("\n\r"); 

아두 이노

에서 코드

Console.log Node.js

Node.js를에서 콘솔 로그 내 코드에 어떤 문제가 있는지 알 수 없습니다. 내가 아두 이노와 ESP8266를 사용 메가

+0

첫 번째로 응답을 끝내기 위해'res.end'도없이'res.send' 만하면 전체 응답을 제대로 보내지 못할 수도 있습니다. 두 번째로 응답에서 HTTP 헤더를 파싱하려고 시도하는 것 같지만 'statusArdu' 만 보내므로 응답이 없습니다. 응답에 쿠키를 추가하면 코드에서 특별히 검색하는 '\ r \ n \ r \ n'이 응답에 포함될 수 있으며 이는 쿠키와 함께 작동하는 이유 일 수 있습니다. – leetibbett

답변

0

귀하의 문제는 라인 아마도 :

char *ComandoGET = "GET /StatusSaidas HTTP/1.1\r\nHost: SmartHouse\r\nConnection: close\r\n\r\n"; 

"SmartHouse는"아마 당신의 웹 서버에 의해 해결되지 않습니다. 귀하의 호스트는 Smarhouse.com 또는 유사해야합니다.

+0

문제를 발견했습니다. 내 Node.js의 쿠키. 내 프로젝트에 쿠키가 있으면 ESP8266이 응답을 볼 수 있습니다. 이 사건으로 어떻게 해결할 수 있습니까? –

+0

nodejs 서버에 말을 올리면 어떻게됩니까? 첫 번째 사례에서 웹 서버가 정상적으로 작동하는지 확인 했습니까? –

+0

내 답변에서 언급 한대로 호스트를 올바른 값으로 수정하려고 시도 했습니까? –