[ESP32] HTTP 서버로 동작하도록 구현하기
[fusion_builder_container hundred_percent=”no” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” overlay_color=”” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” padding_top=”” padding_bottom=”” padding_left=”” padding_right=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=””][fusion_text]
ESP32를 서버로 사용하기 위해서는 다음의 두 라이브러리가 필요합니다.
- 비동기 HTTP 서버를 구성할 수 있는 라이브러리
- 아래의 주소에서 소스를 다운로드
- 다운받은 소스를 아래의 경로에 복사
- c:\사용자\사용자명\문서\Arduino\libraries
- 해당 서버에서 ZIP 파일로 다운을 받은 경우 압축 해제 후 생성될 폴더의 이름에서 ‘-master’를 제거
2. AsyncTCP
- 비동기 TCP 라이브러리
- ESPAsyncWebServer를 사용하기 위해 필요한 라이브러리 -> 해당 라이브러리의 API를 직접 사용하지 않음
- 아래의 주소에서 소스를 다운로드
- ESPAsyncWebServer와 동일하게 라이브러리에 추가
두 라이브러리 설치가 완료되면 Arduino IDE를 열어 아래의 코드를 구현합니다.
#include <FS.h> #include <AsyncTCP.h> #include <ESPAsyncWebServer.h> #include <WiFi.h> 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
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]