2016-11-18 5 views
-1

Я хочу отправить данные температуры из esp8266. Я адаптировал свой код от this Instructable; это мой код:Отправить запрос на отправку HTTP из esp8266

#include "SoftwareSerial.h" 
#include "ESP8266.h" 

String ssid = "Red Wi-Fi de Alexis" ; 
String password = "adrian2003" ; 

SoftwareSerial wifi(4, 2) ; 

String Host = "mail.interseccion.com.mx:8901" ; 
String Url = "/Ws_Temperatura" ; 

void setup() 
{ 
    wifi.begin(9600) ; 
    Serial.begin(9600) ; 
    wifi.println("AT+RST") ; 
    wifi.println("AT+CWJAP=\"" + ssid + "\",\"" + password + "\"") ; 
} 

void loop() 
{ 
    float tmp = 22.22 ; 

    //URL Temperatura 
    //URL: mail.interseccion.com.mx:8901/Ws_Temperatura?Id_temp=0&Id_Device=1&Valor=00.00&Temperatura_Action=Insert 
    String urluno = String("Id_temp=0&Id_Device=2&Valor="); 
    String temp = String(tmp); 
    String urldos = String("&Temperatura_Action=Insert"); 
    String urlfinal = String(String(urluno) + String(tmp) + String(urldos)); 

    int tamano = urlfinal.length() ; 

    wifi.println("AT+CIPSTART=\"TCP\",\"" + Host + "\", 8901") ; 

    String Post = "POST" + Url + "HTTP/1.1\r\n" + 
    "Host: " + Host + "\r\n" + 
    "Content-Type: application/x-www-form-urlencoded" + 
    "Content-Length: " + tamano + "\r\n" + urlfinal ; 


    wifi.println("AT+CIPSEND= " + Post.length()) ; 

    wifi.println("AT+CIPCLOSE") ; 
} 

Я попытался отправить библиотеку esp8266, но это не сработает.

+1

Что не работает, и как вы знаете, что это не работает? –

+0

«Причина не получает никаких данных, и я скопировал и вставил, я не внес никаких изменений, изменил только мои параметры. – Maclos

+0

Чтобы отладить его, распечатайте все, что вы отправляете в ESP, обратно на ПК. –

ответ

1

Я прочитал код, и я обнаружил небольшую ошибку в этих строках:

wifi.println("AT+CIPSEND= " + Post.length()) ; 

wifi.println("AT+CIPCLOSE") ; 

Ваш ESP8266 готов к приему данных, но вы ничего не посылает, так добавьте эту строку :)

wifi.println("AT+CIPSEND= " + Post.length()) ; 

wifi.println(Post); // this line 

wifi.println("AT+CIPCLOSE") ; 

процесс выглядит следующим образом, например

ARDUINO посылает:

AT + CIPSTART = "TCP", www.google.com, 80 

ESP8266 отвечает:

CONNECT 
ok 

ARDUINO посылает:

AT + CIPSEND = 45 

, где 45 это размер всего кадра

ESP8266 отвечает:

> 

> означает, что он ожидает получения данных. Данные отправляются здесь.

и, наконец,

ARDUINO посылает:

AT + CIPCLOSE 

ESP8266 отвечает:

Closed 

ok 
+0

Но не работает lol: '( – Maclos

Смежные вопросы