?>

Hard Copy World

HCW

Tip and Tech

Home > Info >

Tip and Tech

[ESP32] HTTP 서버로 동작하도록 구현하기

페이지 정보

작성자 AnonymousDevelo… 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일18-07-30 18:59 조회69회 댓글0건

본문

ESP32를 서버로 사용하기 위해서는 다음의 두 라이브러리가 필요합니다.

1. ESPAsyncWebServer

  • 비동기 HTTP 서버를 구성할 수 있는 라이브러리
  • 아래의 주소에서 소스를 다운로드
  • 다운받은 소스를 아래의 경로에 복사
    • c:\사용자\사용자명\문서\Arduino\libraries
  • 해당 서버에서 ZIP 파일로 다운을 받은 경우 압축 해제 후 생성될 폴더의 이름에서 '-master'를 제거

2. AsyncTCP

  • 비동기 TCP 라이브러리
  • ESPAsyncWebServer를 사용하기 위해 필요한 라이브러리 -> 해당 라이브러리의 API를 직접 사용하지 않음
  • 아래의 주소에서 소스를 다운로드
  • ESPAsyncWebServer와 동일하게 라이브러리에 추가

 

두 라이브러리 설치가 완료되면 Arduino IDE를 열어 아래의 코드를 구현합니다.

#include 
#include 
#include 
#include 

const char* ssid     = "USER_SSID";
const char* password = "PASSWORD";

// HTTP 로 연결될 포트 설정
AsyncWebServer server(80);

void setup()
{
    Serial.begin(115200);
    delay(10);
    
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    // 와이파이망에 연결
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());  

    setApi();
    startServer();
}

// HTTP route 및 method 구현
// method : HTTP_POST, HTTP_GET, HTTP_PUT, HTTP_ANY
void setApi() {    
    server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request){
        request->send(200, "text/plain", "Hello World");
    });
}

// HTTP 서버 시작
void startServer() {
    server.begin();
}

void loop()
{
    
}

위의 코드를 컴파일하여 실행하면 ESP32에 할당된 IP주소를 확인할 수 있습니다.

해당 주소에 코드에서 구현한 루트를 추가하여 웹브라우저에 입력하면 'Hello World'가 출력되는 것을 확인할 수 있습니다.

참고자료

https://www.dfrobot.com/blog-857.html

 

댓글목록

등록된 댓글이 없습니다.