esp32-cam 멀티 스트리밍(홈어시스턴트)

반응형

esp32-cam이 도착하고

esp32-cam의 예제를 찾아 들어가서 

저번 글 처럼 파일을 열고 수정한 다음

스티리밍을 하면 여러가지 기능이 있지만 단점이 생각외로 너무 많았다.

문제1. 업로드 시간이 너무 오래 걸린다

보통 esp32 Dev Board의 업로드는 퍼센트가 초당 3% 정도씩 변하여 다른 아두이노 보드랑 비슷한 속도이다.
근데 이 예제는 초당 1%씩 걸려 3배나 오래 걸린다.
그래서 지겹다.

문제2. 스트리밍 영상이 오직 한대만 스티리밍이 가능하다.

이게 가장 큰 문제였다.
홈어시스턴트에 스트리밍을 하여도 오직 한대만 가능하기 때문에 
만일 가족구성원 중 누군가 보고 있거나 혹은 실수로 끄지 않고 열어두면 다른
위급한 상황에(침입, 소나기(농사)) 사람이 볼 수가 없다.
암튼 짜증이 난다.

문제3.  스트리밍시 은근히 시끄럽다.(해결X)

 

#시리얼 모니터에 표시되는 주소로 들어가면 버튼을 눌러 스트리밍을 하지만 http://xxx.xxx.xxx.xxx:81/stream 으로 접속하면 바로 스트리밍 영상이 나온다.

 

 

구글링을 하여 찾아보니

https://github.com/arkhipenko/esp32-cam-mjpeg-multiclient

 

arkhipenko/esp32-cam-mjpeg-multiclient

ESP32 MJPEG Multiclient Streaming Server. Contribute to arkhipenko/esp32-cam-mjpeg-multiclient development by creating an account on GitHub.

github.com

여기에 나타나있는데 설명을 읽어보니 FreeRTOS를 이용하여 최대 10대 까지 동시 스트리밍이 가능했다.

역시 깃허브 짱이다.


1.  파일 다운로드

깃허브에서 상단 초록 박스를 클릭하여 파일을 내려밨고 압축을 해제하여주면(물론 자동으로 풀어주지만....)

 

2. 파일 열어 수정.

아두이노 파일을 열어 주고
Ai_Thinker의 주석을 해제하고 나머지는 막아둔다.

3. 같은 폴더(esp32_camera_mjpeg_multiclient) 내부에 home_wifi_multi.h 생성

자신이 편한 방법으로 만들어준다.
- vscode 
- 터미널(나는 간지 나니까 이걸루)
    해당 폴더 우클릭하고 ⌥(option)키를 클릭하여 경로 복사
    cd [경로]
    touch home_wifi_multi.h
    //로 해당 파일 아래에 파일이 생성 되었는지 확인이 가능하다.

//알아서 만들어두면 좋았을 걸

 

4. home_wifi_multi.h 를 열어 아래의 코드를 수정하여 넣는다.

#define SSID1 "와이파이 이름"
#define PWD1 "비밀번호"

 

5. 아두이노 esp32_camera_mjpeg_multiclient.ino를 끄고 다시 연다.

아두이노 탭에 home_wifi_multi 가 추가 되었다.

 

6. 업로드!!(초당 3% 속도로 빠르게 업로드 된다)

초당 3% 속도로 빠르게 업로드 된다.

 

7. 시리얼 코니터를 열고 주소를 복사하여 사용하면 된다.

 

 

두 장치에서 동시에 스트리밍이 된다.

 


홈어시스턴트에서 보기 위해서는 

홈어시스턴트 파일 에디터 열고 아래 코드를 수정하여 넣으면 된다

      - type: picture
        image: 'http://172.30.1.32/mjpeg/1' #스트리밍 주소
        tap_action:		#액션은 나중에 쓸일이 있을까봐 미리 만들어 둔 것으로 필요 없다
            action: none
        hold_action: 
            action: none

반응형