0
NodeMCU v3을 사용 중이며 서버에 정보를 이미 보낼 수 있습니다.NodeMCU가 웹에서 데이터를 가져 오는 방법
하지만 다른 웹 페이지에서 정보를받을 수있는 방법은 무엇입니까?
NodeMCU v3을 사용 중이며 서버에 정보를 이미 보낼 수 있습니다.NodeMCU가 웹에서 데이터를 가져 오는 방법
하지만 다른 웹 페이지에서 정보를받을 수있는 방법은 무엇입니까?
웹 서버과 통신하려면 HttpClient이 필요합니다.
시작하는 좋은 방법은 HttpClient 샘플 -> ReuseConnection을 사용하는 것입니다.
이렇게하면보다 많은 요청을 할 수 있습니다.
Arduino IDE의 직렬 모니터에서 요청의 응답을 볼 수 있습니다.
샘플 코드 :
주 : 당신이 싶어 원하는 HTTP 페이지와 "/ someroute : // HTTP"를 대체합니다.
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#define USE_SERIAL Serial
ESP8266WiFiMulti WiFiMulti;
HTTPClient http;
void setup() {
USE_SERIAL.begin(115200);
// USE_SERIAL.setDebugOutput(true);
USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();
for(uint8_t t = 4; t > 0; t--) {
USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
USE_SERIAL.flush();
delay(1000);
}
WiFiMulti.addAP("SSID", "PASSWORD");
// allow reuse (if server supports it)
http.setReuse(true);
}
void loop() {
// wait for WiFi connection
if((WiFiMulti.run() == WL_CONNECTED)) {
http.begin("http://<IP>:<Port>/someroute");
int httpCode = http.GET();
if(httpCode > 0) {
USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
USE_SERIAL.println(payload);
}
} else {
USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
delay(3000);
}