ESPRESSIF/ESP32 (22) 썸네일형 리스트형 ESP32 WebSocket 서버 테스트 기존에 테스트 했던 웹서버는 하나의 장치에 여러 클라이언트가 연결되어 있을경우 서버의 상태 변화가 발생하면 동기가 맞지 않는 현상이 있다. 이러한 문제에 대한 해결책으로 웹소켓을 사용하면 된다. 일반 웹서버에서는 HTTP 요청에서 실행되며 업데이트된 데이터를 가져오려면 웹 페이지를 완전히 새로 고쳐야 하는 단점이 있다. 이러한 단점을 극복하기 위해 나온것이 웹소켓 이다. 웹소켓(WebSocket)의 가장큰 특징은 전이중(서버와 클리이언트가 동시에 데이터를 보내고 받을수 있음) 프로토콜이다. 예를 들면 서버에 연결된 릴레이의 상태를 변경 시켰을때 모든 클라이언트(PC 웹페이지, 핸드폰 페이지, 원격지의 페이지)가 동일하게 상태를 변경시켜야 하는 예를 테스트 해볼 수 있다. 일반 웹서버는 http://로 시.. ESP32 비동기 AsyncWebServer - SPIFFS 사용 ESP32 웹서버 테스트시 좀더 화려한 웹페이지를 만들기 위해 HTML 코드나 CCS 파일을 수정하는 일이 많은데 이번에는 ESP32의 SPIFFS 파일 시스템에 올려서 웹서버를 구현 하는 테스트를 해 보았다. 이렇게 하면 웹페이지만 변경하기도 쉽고 좀더 효율적으로 관리 할 수 있을것 같다. 이번에도 SPIFF 기반의 웹서버가 동작하는 가장 기본이 되는 코드를 작성해 보자. #ifdef ESP32 // ESP32 libraries #include #include #else // ESP8266 libraries #include #include #endif #include #include // SSID & Password const char *ssid = " "; const char *password = ".. ESP32 비동기 AsyncWebServer ESP32에서 웹서버 구현 방법에는 여러가지가 있는데 이번에는 장점이 많은 비동기 웹서버를 이용하여 구현해 보았다. 장점이 있지만 라이브러리가 필요하다. ESPAsyncTCP, ESPAsyncWebServer (https://github.com/me-no-dev/ESPAsyncWebServer) 지난번 기본 라이브러리로 제공하는 ESP32 동기식 웹서버 예제와 같이 이번에도 가장 기본이 되는 웹서버 코드로 구현 해 보자 #ifdef ESP32 // ESP32 libraries #include #include #else // ESP8266 libraries #include #include #endif #include // SSID & Password const char *ssid = " "; const c.. ESP32 Simple Web Sever 테스트 ESP32 에서 제공하는 기본 라이브러리를 이용해 가장 간단한 웹서버 예제를 작성 해 보자 WiFi에 접속하고 페이지 요청 들어 오면 간단한 HTML 페이지를 전송하는 코드 이다. #include #include // SSID & Password const char *ssid = ""; const char *password = ""; WebServer server(80); // Object of WebServer(HTTP port, 80 is defult) void handle_root(); // HTML 페이지 #if 1 const char index_html[] PROGMEM = R"rawliteral( ESP32 Simple Web Server - 😊 )rawliteral"; #endif //페이지.. ESP32 PlatformIO 개발 환경 설정 ESP32를 Arduino IDE에서 컴파일 하면 속도가 너무 느리다 특히 라이브러리가 많아지면 점점 더 느려 개발 하기가 힘이 든다. 꼭 이렇게 까지 느려야 하나? Arduino에서 컴파일 과정을 출력하게 해서 확인해 보면 라이브러리들을 항상 다시 컴파일 하고 있다. 한번 컴파일 되면 수정할때는 수정한 부분만 컴파일 하면 빠를텐데... (이런것도 옵션이 있나?) 아무튼 개발 하기 힘들 정도로 컴파일 속도가 느려서 대안을 찾기로 했다. PlatformIO 는 어떨까? PlatformIO 에서는 상당히 빠르다. 그리고 한번 컴파일 하면 수정된 부분만 컴파일 하므로 속도가 더 빠른것 같다. 그래서 PlatformIO에서 ESP32 개발 환경 설정하고 테스트 해 보았다. VisualStudio Code에서 P.. [EXP32 xBee EVM] W5500 UDP 테스트 ESP32는 WiFi를 내장 하고 있어서 UDP통신을 구현 할수 있지만 일반 MCU로 사용한다고 해도 충분히 사용하기 편리하고 저렴해서 해서 여러 용도로 적용하면 좋을것 같다. W5500 을 이용하여 이더넷으로 ADC값의 그래프를 표시 하는 프로젝트에 적용해 보았다. ESP32를 이용한 W5500초기화코드 #include #include #include #include "local_config.h"// [ESP32 xBee EVM] W5500 웹서버 테스트 ESP32에서 유선 랜을 사용하기 위해 W5500 모듈을 테스트 해 보았다. 는 WiFi 가 기본적으로 내장되어 있는 칩 이라 기존에 Arduino에서 테스트 했던 W5500 테스트 코드를 구동하려고 했는데 컴파일 에러가 발생 한다. WebServer_temp:40:16: error: cannot declare variable 'server' to be of abstract type 'EthernetServer' EthernetServer server(80); ^~~~~~ In file included from C:\Users\nexp7\OneDrive\\Arduino\libraries\Ethernet2\src/Ethernet2.h:17, C:\Users\nexp7\OneDrive\\Arduino\lib.. [ESP32 xBee] MAX31856 써모커플 온도 센서 테스트 ESP32 xBee 모듈 보드를 이용하여 SPI 방식의 써모커플 온도센서 측정 모듈 MAX31856 보드를 테스트 했다. 라이브러리는 Adafruit MAX31856 를 사용하여 테스트 했다. ESP32 MAX31856 Arduino 소스코드 #include #define DRDY_PIN 7 // use hardware SPI, just pass in the CS pin Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(13); void setup() { Serial.begin(115200); while (!Serial) delay(10); Serial.println("MAX31856 thermocouple test"); pinMode(DRDY_PIN, INPUT); .. 이전 1 2 3 다음