2016-09-05 2 views
0

У меня есть Arduino Leonardo с модулем WiFi ESP8266, и я включаю и выключаю встроенный светодиод (контакт 13) в браузере через $.get() jQuery. Он работает, но теперь я хочу вернуть данные для этого вызова. Как мне это сделать? Я знаю, что я должен кодифицировать его в виде обычного текста и возвращать его с «сервера», но не знаю, как это сделать.

Это мой JavaScript/JQuery линия:

function setLEDstat(setLED){ 
    $.get("http://192.168.0.222:12345/", {LED:setLED}, function(data){ 
     console.log(data); 
    }); 
} 

И это ответ мой Arduino до сих пор:

void switchLED(){ 
    int connectionId = Serial1.parseInt(); 
    Serial1.find("LED="); 
    int setLED = Serial1.parseInt(); 
    Serial.println("Conn: " + String(connectionId) + ", LED: " + String(setLED)); 
    if (setLED == 1){ 
    digitalWrite(LED, HIGH); 
    } else { 
    digitalWrite(LED, LOW); 
    } 
    delay(100); 
    Serial1.println("AT+CIPSEND=" + String(connectionId) + ",38"); 
    delay(100); 
    Serial1.println("HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n"); 
    delay(500); 
    Serial1.println("AT+CIPCLOSE=" + String(connectionId)); 
} 

ответ

0

Я был в состоянии получить ответ с помощью HTTP-заголовков (вы узнаете что-то новое! !!). Код для функции моего Arduino теперь выглядит так:

void switchLED(){ 
    int connectionId = Serial1.parseInt(); 
    Serial1.find("LED="); 
    int setLED = Serial1.parseInt(); 
    Serial.println("Conn: " + String(connectionId) + ", LED: " + String(setLED)); 
    if (setLED == 1){ 
    digitalWrite(LED, HIGH); 
    nanoSerial.println("LED=1"); 
    } else { 
    digitalWrite(LED, LOW); 
    nanoSerial.println("LED=0"); 
    } 
    delay(100); 
    Serial1.println("AT+CIPSEND=" + String(connectionId) + ",145"); 
    delay(100); 
    Serial1.println("HTTP/1.1 200 OK"); 
    Serial1.println("Access-Control-Allow-Origin: *"); 
    Serial1.println("Content-Length:05"); 
    Serial1.println("Connection: close"); 
    Serial1.println("Content-Type: application/x-www-form-urlencoded"); 
    Serial1.println(""); 
    Serial1.println("LED=" + String(setLED)); 
    delay(500); 
    Serial1.println("AT+CIPCLOSE=" + String(connectionId)); 
} 

Я надеюсь, что это помогает кто-то в ней нуждается;)

+0

Очень круто. Многие API возвращают JSON (Content-Type: application/json), который легко потребляется в javascript. Рад, что ты заработал! – leetibbett

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

  • Нет связанных вопросов^_^