본문 바로가기
Arduino(아두이노) IoT 키트 강좌

ESP32 (BLE + WIFI) OV2640 CAM 개발보드로 WIFI 웹서버 스트리밍 해 보기

by 오마이엔지니어 2021. 6. 21.
반응형

ESP32 (BLE +WIFI) OV2640 CAM 개발보드의 사용법을 알아보고 WIFI 웹서버 스트리밍을 해보고
카메라로 사진을 촬영해서 마이크로 SD카드 메모리에 저장해 보는 프로젝트입니다

ESP32 (BLE + WIFI) 기반의 개발보드로 OV2640 카메라를 장착해서 WIFI 웹서버 스트리밍을 할 수 있으며
마이크로 SD카드 슬롯이 장착되어 있어 이미지 촬영 후 SD카드에 저장을 할 수 있습니다
CH340 통신 보드가 포함 되어 있으므로 업로드 및 통신하는데 별도로 UART 모듈이나 TTL 모듈이 필요없습니다
카메라 촬영시 플래시 효과를 낼수 있는 LED가 장착되어 있습니다

Espressif
ESP 32 Forum WebPage

 

<ESP32 (BLE + WIFI) OV2640 CAM 개발보드 이미지>

<ESP32 (BLE + WIFI) OV2640 CAM 개발보드 상세사양>


사용된 부품
ESP32 (BLE + WIFI) OV2640 CAM 개발보드


초기세팅 방법
ESP32 (BLE + WiFi) OV2640 CAM 개발보드에 포함된 통신모듈은 CH340 SERIAL DRIVER 를 사용하기 때문에
일단 장치인식을 위해서 드라이버를 설치해 줍니다
자신의 OS에 맞는 드라이버를 다운로드 받아서 설치해 줍니다

(윈도우용을 첨부하였습니다 CH340 설치를 했는데 장치관리자에 인식이 안된다면 CH341 드라이버를 설치해 보세요)

CH340 USB_Serial Driver.zip

CH341SER.ZIP
드라이버 설치가 끝나고 보드를 마이크로 USB케이블로 연결하면 PC의 장치관리자에 CH340 로 COM포트가 확인됩니다


기본적으로 아두이노 통합 개발환경 아두이노 IDE 를 설치해야 합니다 (Arduino.cc 의 IDE 를 설치합니다

Arduino.org 의 IDE 와는 호환 되지 않습니다)
https://www.arduino.cc/en/Main/Software

github 에서 esp32 라이브러리와 툴을 다운 받습니다 
https://github.com/espressif/arduino-esp32

arduino-esp32-master.zip 파일을 압축 해제한 다음 폴더명을 편의상 esp32 로 변경해 줍니다
C:\Program Files (x86)\Arduino\hardware 이 경로에 hardware 폴더안에 espressif 폴더를 새로 만들어 줍니다
C:\Program Files (x86)\Arduino\hardware\espressif 이렇게 경로가 되고 espressif 폴더안에 esp32 폴더를 넣어주면 됩니다

그리고 마지막으로 C:\Program Files (x86)\Arduino\hardware\espressif\esp32\tools 경로의

tools 폴더안에 get.exe 를 관리자 권한으로 실행시켜 주면 됩니다

 

위와 같은 창이 뜨는데 모든 설치가 정상적으로 끝나면 창이 자동으로 닫히니 정상적으로 설치가 종료 될 때까지 기다립니다


윈도우 10은 경로가 틀릴수 있는데 윈도우10 은 C:\Users\Administrator\Documents\Arduino\hardware 경로로 설치하면 됩니다

*아두이노 IDE 최신 버전을 설치하였거나 위 과정이 번거롭다면*
아래 이미지 처럼 아두이노 IDE 도구 메뉴에서 보드 매니저를 클릭후 ESP32로 검색
esp32 by Espressif Systems 를 설치해 주면 됩니다
버전은 2.0.9 버전으로 설치 하고 테스트 후 출고 하고 있기 때문에 2.0.9 버전을 권장합니다


Arduino IDE 를 실행한 다음 툴 메뉴를 확인해 보면 ESP32 패밀리가 추가된 것을 확인할 수 있습니다


ESP32 커뮤니티 및 라이브러리 설치 후 프로페서는 ESP32 Wrover Module 로 세팅합니다
Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS) 로 세팅합니다
물론 사전에 CH340 드라이버 정상적으로 설치되어 포트가 확인 되어야 합니다

 

사용된 예제파일

ESP32 OV2640 CAM_SD 테스트.txt
0.00MB

 

테스트 방법
먼저 WIFI 웹서버로 스트리밍을 해보는 방법입니다
ESP32 커뮤니티 및 라이브러리가 정상적으로 설치되었으면 아두이노 IDE 실행후
파일--->예제--->ESP32--->Camera--->CameraWebServer 순으로 클릭해서 예제를 불러 옵니다

#include "esp_camera.h"
#include <WiFi.h>
위와 같은 라이브러리를 사용합니다

// Select camera model
#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
ESP32 모듈 버전에 따라 모델이 틀린데 컴파일 에러나 카메라 모듈 인식이 안되는 경우 모델을 확인 후
WROVER_KIT 이 부분을 AI_THINKER 로 변경해 줍니다

만약 AI_THINKER 로 변경후 WIFI.h 라이브러리 중복 발견 컴파일 에러 메세지가 나오는 경우
내컴퓨터 C:드라이브--> Program file (x86) --> Arduino --> Library --> Wifi 폴더 (백업 후 삭제)
로 컴파일 에러를 해결합니다

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

연결 된 자신의 WIFI 아이디와 비밀번호를 입력해 줍니다

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

수정후 예제를 업로드 한 다음 아두이노 IDE 시리얼 모니터를 실행합니다 (이때 보드레이트는 115200 으로 세팅합니다)


ESP32 OV2640 CAM 개발보드가 연결 된 IP 주소 192.168.0.11 를 확인할 수 있습니다


인터넷 웹 브라우저를 열고 주소창에 연결 된 IP 주소 192.168.0.11 를 입력 합니다

웹 브라우저로 밝기 해상도등 여러가지 세팅을 수정하면서 스트리밍을 해볼 수 있습니다

두번째 OV2640 카메라로 사진 촬영후 SD카드 메모리에 저장해 보는 방법입니다
포스팅 위쪽에 있는 "ESP32 OV2640 CAM_SD 테스트" 예제코드를 다운로드해서 업로드 해 줍니다

#include "esp_camera.h"
#include "Arduino.h"
#include "FS.h"                // SD Card ESP32
#include "SD_MMC.h"            // SD Card ESP32
#include "soc/soc.h"           // Disable brownour problems
#include "soc/rtc_cntl_reg.h"  // Disable brownour problems
#include "driver/rtc_io.h"
#include <EEPROM.h>            // read and write from flash memory
위와 같은 라이브러리를 사용합니다 (ESP32 커뮤니티를 설치하면 기본적으로 설치되어 있습니다)

Serial.begin(115200);
//Serial.setDebugOutput(true);
//Serial.println();

예제 업로드 후 시리얼 모니터를 실행합니다 (이때 보드레이트는 115200 으로 세팅합니다)
ESP32 보드나 통신모듈의 RST 버튼을 눌러주면 잠시 후 카메라로 이미지 촬영을 시작합니다
시리얼 모니터로 SD카드 메모리에 저장된 이미지 파일의 파일명을 확인 할 수 있습니다

SD카드를 SD카드 리더등을 사용해서 컴퓨터나 노트북등에 연결해서 저장 된 이미지 파일을 확인하면 됩니다

프로젝트 동영상 (ESP32 (BLE + WIFI) OV2640 CAM 보드를 사용해서 웹서버에 영상 스트리밍 해 보기)

 

프로젝트 동영상 (ESP32 (BLE + WIFI) OV2640 CAM 보드를 사용해서 사진 활영후 SD카드에 저장해 보기)


SP32 (BLE +WIFI) OV2640 CAM 개발보드의 사용법을 알아보고 WIFI 웹서버 스트리밍을 해보고
카메라로 사진을 촬영해서 마이크로 SD카드 메모리에 저장해 보는 방법을 알아 보았습니다

본 포스팅에서 사용한 CH340 통신모듈이 없다면 가지고 있는 UART 모듈이나 TTL 모듈을 사용해서

아래 포스팅을 참조해서 테스트 할수 있습니다 (물론 로직전압이나 전원이 불안정해서 업로드나 통신이 잘 안되는 경우가 빈번히 발생할 수 있으므로 초보자는 본 포스팅 처럼 CH340 통신모듈을 같이 구매하는것을 권장합니다)
https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/

반응형

댓글