레이블이 ESP32-CAM인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ESP32-CAM인 게시물을 표시합니다. 모든 게시물 표시

2019년 11월 12일 화요일

ESP32-CAM 활용하기 - 1편 (개발)

1. ESP32-CAM !!

 ESP32를 이용한 CCTV 제작을 이전에 소개한 적이 있다.
[ 가장 싸게 CCTV를 구현해 보자 (ESP32-CAM) ]
기본 예제를 업로드만 해도 개인이 사용하기에는 충분한 기능을 포함하고 있다.  다만 프로그램을 새롭게 업로드 하고 테스트 하는 과정이 여간 껄끄롭지 않았다.

[ 몇가닥의 연결이지만 나름 번잡 ]
게다가 업로드가 끝난 후에는 GPIO 0번과 GND 연결된 선을 끊고 다시 리셋을 해야 테스트가 가능하다. 한두번 정도면 모를까 하루에 수십번을 하다보니, 정말 번잡한 일이 되어버렸다. 

2. 쉽게 업로드 하고 테스트 하자.

번잡한 일을 벗어 나고자 ESP32-CAM 모듈을 소켓에 끼우기만 하면 바로 업로드가 가능하도록 기판을 하나 만들었다. 회로도는 이 글의 처음에 넣은 그림과 같다. 딱 하나의 차이라면 GPIO 0번과 GND 사이에 스위치를 하나 달아서 연결 또는 끊기가 가능하게 만들었다. 

[ 앞면 ]
[ 뒷면 ]

[ ESP32-CAM을 장착한 모습 ]


기판의 상판쪽을 보면 포맥스(하얀색)가 2군데 붙어 있는데, 이건 사용시에 발생하는 불편을 해결하기 위하여 붙어 놓은 것이다.  측면에 가까이 붙어 있는 것은 카메라 모듈 테스트시에는 촬영된 이미지가 제대로 표현되기 위해서는 세워야 하는데 밑면이 너무 좁아서 붙인 것이다. 

[ 세웠을때 사진 ]
위의 사진과 같이 세워 놓을때 바닥면의 받침대 정도로 생각하면 된다.

또하나 붙어있는 포맥스는 리셋 버튼 용이다. 카메라 모듈을 장착하면 리셋 버튼이 뒷면에 있기 때문에 누를 수가 없다. 그래서 포맥스로 지렛대 같은 것을 만든 형태이다. 모듈의 앞면과 지렛대를 각각 엄지와 검지로 잡은 후에 꾹 눌러주면 리셋된다.
[ 리셋은 이렇게.... ]

3. 결론은

 활용하기 아주 편하다. 프로그램 업도르를 위해서는 중간에 달린 스위치를 켜고 프로그램 업로드를 하면 된다. 업로드가 끝나면 중간에 달린 스위치를 끄고, 리셋버튼을 한번 누르면 된다. 





2019년 10월 14일 월요일

가장 싸게 CCTV를 구현해 보자 (ESP32-CAM)

1. 카메라 모듈의 연구

여러 종류의 카메라 모듈을 연구했다. MCU와 결합해서 사진을 서버로 전송하는 기능을 만들기도하고, 원격 조정이 가능한 탱크(물론 이것 역시 제작한 것)에 올려서 스트리밍을 기능을 하는 것도 만들기도 했다. 하지만 카메라 모듈의 크기나 가격, 연구 난이도 등등 여러 이유때문에 많이 만들지는 않았다. (모듈별로 한두개 정도)

 
[ 처음 연구한 카메라 모듈 ]

[ 네번째 연구한 모듈 ]

[ 연구후에 기판에 납땜한 모습 ]


[ 배선이 복잡해서 양면으로 배선햇다. ㅠㅠ ]

이정도 까지 연구하고  나니, PCB를 떠서 다량으로 만들까 생각도 했지만, 카메라 모듈의 화질이 별로 여서 저정도까지 만들고 멈추었다. 

2. ESP-EYE, ESP32-CAM

 마지막에 연구한 것이 바로 ESP32와 카메라 모듈을 결합하는 형태인데, 이젠 아예 쉽게 결합이 가능한 형태로 만들어진 제품이 나오고 있었다. 즉 납땜할 필요가 없는 정도의 레벨로 제품이 나오고 있으며, 가격또한 저렴했다.

알리 기준으로 ESP32-CAM은 5$ 이하에 구입이 가능하다.

[ 외부에 나와 있는 핀들의 배열 ]

[ 내부 핀 정보 ]


3. 동작을 시키는 방법

 정말 손쉽다. 뭐 별거 할것이 없는 정도로 쉬웠다. 먼저 Arduino IDE에서 보드매니저를 열고 ESP32 보드를 추가하자.

먼저 IDE의 파일 > 환경설정창에 추가적인 보드매니저를 추가하자. 아래 그림의 표시한 부분 버튼을 누르고 https://dl.espressif.com/dl/package_esp32_index.json 를 추가 한다.

그리고 IDE의 툴 > 보드 > 보드 매니저 에서 esp32를 검색하여 설치
[ 보드 매니저에서 esp32를 검색하고 설치 ]


거의 다 되었다.  그다음 IDE의 파일 > 예제 > ESP32 > Camera > CameraWebServer를 열면된다.  소스코드에서 구매한 모듈과 맞는 핀번호를 설정해야 하는데, 핀별로 설정하는 것이 아니라 이미 define 된 것중에서 선택하면 손쉽다. 아래의 그림과 같이 다른 제품들의 define 내용은 코멘트 처리하고 AI-THINKER 쪽을 활성화 하자.

[ 소스코드에서 수정할 부분은 위에 표시한 곳 및 WiFi 관련 비번 정도 ]

그 다음은 IDE에서  툴 메뉴에서 보드 및 파티션 정보를 올바르게 넣으면 된다.
보드는 "ESP32 Wrover Modue" 이며,  파티션 스키마는 "Huge APP (3MB No OTA)"로 설정하면 된다. 

[ 보드및 파티션 스키마 !! ]

이제 컴파일 하고 스케치만 업로드 하면 된다. 

[ 이렇게 연결하면 업로드 가능 ]

위와 같이 연결하고 스케치 업로드한 후에 GND + IO 0 핀에 연결된 부분을 해제 하고 리셋버튼을 누르면 동작한다. 리셋하기 전에 Serial Monitor를 켜고 리셋하자. 리셋된 후에 Serial Monitor에 아이피가 표시될 것이다.

4. 결과는?

 웹브라우져에서 표시된 아이피를 입력하고 연결하면 아래와 같이 설정가능한 화면과 현재 모습이 라이브로 방송되고 있을 것이다.  

[ 고해상도도 가능하다 ]

5. 향후 작업 예정

 다중 접속 활성화, 웹페이지 개선, 리셋 되더라도 환경변수 기억 등등..



ESP8266 Digital Input Pin의 불편한 진실

1. 믿었던 놈인데... ESP8266은 2017년도 부터 사용했기 때문에, 7년 정도 사용해 왔었다. 그동안 여러 종류의 내 프로젝트에 사용한 MCU이고, 이에 따라서 신뢰도가 상당히 높았다. 물론 순수한 ESP8266으로 사용하지는 않고 Wemos...