如何从 Arduino 服务器向 $.get 调用 return 数据?
How can I return data to a $.get call from an Arduino server?
我有一个带有 ESP8266 WiFi 模块的 Arduino Leonardo,我正在通过 jQuery 的 $.get()
从浏览器打开和关闭板载 LED(引脚 13)。它有效,但现在我想 return 数据到这个 get 调用。我该怎么做?我知道我必须将其编码为纯文本并从 "server" 中 return,但不知道如何。
这是我的 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));
}
我能够通过 HTTP headers 获得响应(你每天都会学到新东西!!)。我的 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));
}
我希望这对有需要的人有所帮助 ;)
我有一个带有 ESP8266 WiFi 模块的 Arduino Leonardo,我正在通过 jQuery 的 $.get()
从浏览器打开和关闭板载 LED(引脚 13)。它有效,但现在我想 return 数据到这个 get 调用。我该怎么做?我知道我必须将其编码为纯文本并从 "server" 中 return,但不知道如何。
这是我的 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));
}
我能够通过 HTTP headers 获得响应(你每天都会学到新东西!!)。我的 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));
}
我希望这对有需要的人有所帮助 ;)