행복한 하루

ESP32-Cam + OV2640 카메라 모듈 테스트 후기 본문

IoT

ESP32-Cam + OV2640 카메라 모듈 테스트 후기

변화의 물결 2021. 3. 16. 12:36

 

 

안녕하세요.

  이번에는 저가형 CCTV을 만들어 볼 수 있게 다 생각되어 ESP32-Cam + OV2640 확인해보았습니다.  ESP32-CAM 제품이고 8,000원 정도에 판매하고 있었습니다.

 

  사실 이것만 있어서는 안 되고 TTL To USB 그리고 승압 모듈, 배터리를 포함해야 가능합니다. 그러면 배터리 용량에 따라 다르겠지만, 5000원에서 10,000원 정도 추가하면 소형 무선 CCTV로 가능하지 않을까 생각됩니다.

  

1. ESP32-CAM 스펙

1) ESP32-CAM

  - 크기 : 27×40.5×4.5(±0.2)mm

  - SPI Flash : 32Mbit

  - RAM : internal520KB + external 4M PSRAM

  - 블루투스 : bluetooth4.2BR/EDR and BLE standards

  - 와이파이 : 802.11 b/g/n/e/i

  - 인터페이스 : UART, SPI, I2C, PWM

  - microSD 지원 : 최대 4GB

  - IO 포트 : 9핀

  - 시리얼 통신 속도 : 115200 bps (default)

  - 이미지 출력 포맷 : JPEG(OV2640만 지원), BMP, GRAYSCALE

  - 안테나 : PCB 온보드 안테나, gain 2 dBi

 

2) OV2640 스펙

  - 2 Megapixel

  - Array size: UXGA 1622X1200

  - Power supply: 3.3V

  - IO voltage level: 1.7V~3.3V DC

  - Output formats:

    > YUV(422/420)/YCnCr422

    > RGB565/555

    > 8-bit compressed data

 

업로드를 위해 필요한 구성품

  2. ESP32-CAM 핀맵

핀맵

3. 설정 방법

1) 보드 매니저 경로 추가

   - 환경설정 -> 추가적인 보드 매니저 URLs

 https://dl.espressif.com/dl/package_esp32_index.json 입력해줍니다.

 

2) ESP32 보드 설치

  툴-> 보드-> 보드 관리자 눌러 "esp32"로 검색합니다. 그리고 "설치" 눌러 보드 라이브러리와 예제 등을 설치합니다.

 

 3) 보드 변경

  - 툴 -> 보드 -> ESP32 Arduino -> "ESP32 Wrover Module" 선택합니다.

  - 툴 -> Partition Scheme -> "Huge APP (3MB No OTA/1MB SPIFFS)" 를 선택합니다.

 

 4) 예제 소스 수정

  - 파일-> 예제-> ESP32-> Camera->CameraWebServer에서  CameraWebServer.ino 파일을 수정합니다.

 

 

// Select camera model

//#define CAMERA_MODEL_WROVER_KIT  => 1) 예제 코드 이 카메라로 선택되어 있지만, 주석 처리하고

//#define CAMERA_MODEL_ESP_EYE

//#define CAMERA_MODEL_M5STACK_PSRAM

//#define CAMERA_MODEL_M5STACK_WIDE

#define CAMERA_MODEL_AI_THINKER  //  1) 대신에  AI_THINKER를 주석 제거합니다.

  

//연결할 무선공유기(AP)의 SSID와 password를 입력해줍니다.

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

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

 

  그리고 ESP32-CAM을 연결하고 다운로드합니다.

  단, 다운로드하려면 GPIO 0번 핀과 GND를 연결해주고 보드에 붙어 있는 리셋 버튼을 눌러서 다운로드 모드로 변경시켜줍니다. 그 이후 업로드가 가능합니다.

 

 

 

위의 설정만 해도 작동했습니다.

만약 안되신 다면 추가로 설정해보기 바랍니다.

툴-> 보드-> ESP32 Arduino->AI Thinker ESP32-CAM으로 변경해봅니다.

    

4. 연결 하기

ESP32-CAM TTL Converter
5V 5V
GND GND
UOR TX
UOT RX
GPIO 0  (업로드 할 때 연결) GND

 

TTL Converter 와 연결

 

  - ESP32의 GND와 GPIO0 연결 -> 업로드 모드가 됩니다. (제거하면 일반 모드)

 

  - 디바이스 마트 동영상에서는 3.3V에서 5V로 중간에 변경하라고 나오지만, 처음부터 5V로 전원을 인가해주면 핀을 다시 핀을 바꿀 필요가 없었습니다.

 

  - 다운로드가 시작되면 컴파일 후 1%씩 다운로드가 진행됩니다.

 

업로드 진행

  - 업로드 완료 후 GND와 GPIO 0 연결 제거 (일반 모드). 그리고 다시 보드에 부착된 리셋 버튼을 누르면 자신이 접속할 수 있는 아이피 주소가 나옵니다.  (SSID 혹은 password가 잘못되었다면 대기가 혹은 접속 에러가 발생합니다.)

 

 

  그리고 브라우저에 주소 입력해서 들어가면 설정할 수 있는 화면과 영상 스트리밍 되는 화면 나옵니다.

 

 

 

  - 웹 접속이 아닌, 스트림 주소로 바로 볼 수 있는 방법은 VLC 혹은 곰플레이에 스트리밍 주소를 입력하는 것입니다. 아래와 같이 입력하면 플레이어에서 mjepg 형태로 변환되어 전달되는 영상을 확인할 수 있습니다.

  http://192.168.0.84:81/stream

 

5. 작동 영상

  - 해상도 설정 등 할 수 있고 캡처도 할 수 있도록 되어 있습니다. 그러나 얼굴인식도 하게 되어 있는데 설정하고 해보려고 하니 영상이 정지되어 사용하지 못했습니다.

 

 

6. 사용후기

  - 기본 영상은 잘 나옵니다. 그런데 PCB On Board Antenna로 할 경우 15m 정도 거리까지 가능한 것으로 보입니다. 그 이상 가면 끊김 현상이 나타나고 화면이 나오지 않습니다.

 

  - 프로그램 소스 문제인 건지 회로 설계상 문제인지 영상에 검은 줄 울렁임 현상 발생합니다. 옛날 TV처럼. 최근 나온 카메라처럼 화질이 괜찮겠지 생각하시면 실망하실 수도 있습니다. (참조 동영상 참고)

 

  - 현재 소스로 서버에 여러 개의 영상을 스트림을 할 수 없습니다. 하나의 영상 스트리밍을 끊어야 다른 사람이 볼 수 있습니다.

  

7. 추가로 영상을 재생하는 방법

  - VLC와 같은 스트리밍 프로그램을 통하지 않고 웹에서 보려면 간단하게 아래의 <html> Tag로 웹 브라우저로 볼 수 있습니다. 현재 ESP32-CAM 같은 경우 자체 웹서버 80번 말고 스트리밍만 하는 81번 포트가 별도로 있기 때문에 이것을 이용하면 가능합니다.

 

  아래 소스와 같이 간단하게 HTML 파일 만들면 웹 브라우저에서 제어 컨트롤 없이 화면만 볼 수 있습니다.

(스트리밍 IP 주소는 업로드 후 나오는 주소를 입력하면 됩니다. )

 

  <html>
        <head></head>
        <body>
	    	<img id="stream" src="http://192.168.0.217:81/stream" style="width:600px; height:600px;"> </img>
        </body>
</html>

 

 - ESP32 카메라 드라이버 관련한 소스를 좀 더 알고 싶다면, 참고 사이트 3번,4번 내용을 보시면 조금이나마 도움이 되지 않을까 합니다.

 

감사합니다.

 

 

<참고사이트>

1. ESP32-CAM 블루투스·와이파이

https://www.devicemart.co.kr/goods/view?no=12496229

2. 30+ ESP32-CAM Projects, Tutorials and Guides with Arduino IDE

https://randomnerdtutorials.com/projects-esp32-cam/

3. ESP32 Camera Driver

https://github.com/espressif/esp32-camera  

4. Esp32-cam 이미지 처리 질문

https://www.esp32.com/viewtopic.php?t=10405

 

 

Comments