본문 바로가기

ESPRESSIF/ESP32

(22)
ESP32 ESP-IDF에서 Iperf로 WiFi TCP, UDP Throughput 측정 테스트 ESP32에서 WiFi TCP, UDP Throughput 측정을 위해 Arduino 환경에서 테스트 해보면 속도가 너무 느리게 측정된다. ESP-IDF 환경에서 제공되는 iperf 테스트 예제로 WiFi 성능을 측정해 보자. WiFi iperf 테스트 에제를 빌드 하기 위해 ESP-IDF 개발환경 설정을 참고해서 에서 Show Examples Project를 선택 한다. iperf Example을 선택해서 프로젝트를 생성한다. 빌드후 다운드 하면 VS Code의 터미널 창에서 시리얼 포트를 열수 있다. sta 커멘드로 WiFi에 접속 할 수 있다. sta [] WiFi is station mode, join specified soft-AP SSID of AP password of AP ESP32 UDP..
ESP-IDF 개발 환경 설정 (Windows VSCode) ESP32용 개발환경으로 여러 형태가 있지만 이번에는 ESP-IDF를 이용해서 개발 하는 방법을 테스트 해 보았다. ESP-IDF를 사용하게 되는 가장큰 이유는 속도 일것 같다. Arduino 나 Python의 경우 다양한 MCU를 지원하려다 보니 속도가 느려지는것이 당연하지 않을까... Arduino IDE - Iperf로 WiFi TCP Throughput 측정 테스트 에서 WiFi 전송율을 테스트 하다보니 너무 속도가 느리게 측정된다. ESP-DIF 환경에서 제공하는 예제중 iperf 예제를 구동해 보면 좋을것 같다. VS Code에서 ESP-IDF extension 모듈을 설치하면 쉽게 환경 설정이 가능하다. ESP-IDF 환경설정을 위해 View->Command Palette (F1) ESP-I..
ESP32 Arduino IDE - Iperf로 WiFi TCP Throughput 측정 테스트 ESP32 Arduino 개발 환경에서 WiFi 성능을 테스트 해 보자 Arduino WiFi TCP 코드를 수정해 iperf 서버 코드를 만들었다. #include #ifdef ESP32 #include "esp_task_wdt.h" #define WDT_TIMEOUT 9 #endif const char* ssid = STASSID; const char* password = STAPSK; int port = 5001; WiFiServer server(port); void setup() { esp_task_wdt_init(WDT_TIMEOUT, 0); Serial.begin(115200); Serial.println("ESP32 Simple web Start"); Serial.println(ssid); ..
ESP32 - Dhrystone, Whetstone, IIR Benchmark 성능 테스트 MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기 테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다. mode = ESP32 Dhrystone Benchmark, Version 2.1 (Language: C) --------------------------------------------------- Execution starts, 2000000 runs through Dhrys..
ESP32 SD Card Web Server 테스트 ESP32에서 웹서버 소스(HTML 파일) 를 저장하는 방식은 아래와 같이 3가지 정도 있을 수 있겠다. 플래시 메모리(코드 영역)에 직접 저장 하는 방식 SPIFFS에 저장하는 방식 SD Card에 저장하는 방식 이전 테스트에서 두가지 방식은 테스트 해보았고 SD Card에 저장해서 웹서버를 구현 하는 방법을 테스트 해 보자. ESP32는 내장 NOR 플래시메모리에 SPIFFS를 올려서 파일 시스템을 구현 할수 있지만 가장 큰 단점은 서브 이렉토리를 지원하지 않는다. SD Card를 이용하면 파일시스템의 대부분 기능을 활용 할수 있기 때문에 편리한점이 많다. ESP32 SD Card 테스트 예제를 이용해서 SD Card에서 웹페이지를 불러와 웹서버를 구현 할수 있다. #include #include #..
ESP32 SD Card Test ESP32 SD Card 테스트를 위해 확장 테스트 보드 xBee-EXP-SSM_SD 를 사용 하였다. SC Card의 CS 핀은 GPIO5 에 연결되어 있으므로 SD Card 초기화 시에 핀 설정을 정의 할수 있다. #define SD_CS_PIN 5 void initSDCard(){ if(!SD.begin(SD_CS_PIN)){ Serial.println("Card Mount Failed"); return; } uint8_t cardType = SD.cardType(); if(cardType == CARD_NONE){ Serial.println("No SD card attached"); return; } Serial.print("SD Card Type: "); if(cardType == CARD_MM..
ESP32 실시간 웹서버 - MPU9250 IMU 그래프 출력 테스트 ESP32 실시간 웹서버 테스트 코드를 이용하여 MPU9250 의 Roll, Pitch, Yaw 그래프를 출력 하는 테스트를 진행해 보았다. 우선 MPU9250의 데이터를 이용해 이벤트를 만드는 부분은 mpu_9250_set.h 파일에 작성하고 추후 센서가 변경되면 헤더 파일만 바꿀 수 있는 구조로 했다. #include #include #include MPU9250 mpu; void setup_Sensor(){ Wire.begin(); delay(2000); if (!mpu.setup(0x68)) { while (1) { Serial.println("MPU connection failed."); delay(5000); } } Serial.println("MPU success"); } void Proce..
ESP32 웹서버 - 실시간 ADC 데이터 그래프 출력 지금까지 테스트 한 웹서버 예제는 출력 관련 예제 였는데 이번에는 웹페이지 측에서 입력을 받을 수 있는 테스트를 해보자 기존에 실시간 웹서버를 구현 하기 위해 AJAX를 사용 했지만 비동기 방식 웹서버를 이용하면 이벤트 방식으로 쉽게 구현이 가능하다. 우선 웹서버 초기화 시에 사용할 이벤트를 등록 한다. AsyncEventSource events("/events"); void InitWebServer() { server.addHandler(&events); server.on("/", onRootRequest); server.serveStatic("/", SPIFFS, "/"); server.begin(); } 웹페이지에 데이터를 보내기 위해 ESP32 보드에서는 event.send 함수를 사용하면 쉽게 ..