[아두이노#566] ESP32를 저전력모드(deepsleep)로 작동시키고 배터리연결해서 전자종이 제어하기!(E-PAPER#4)
https://youtube.com/live/x6EpwALOAX4
[아두이노#566] ESP32를 저전력모드(deepsleep)로 작동시키고 배터리연결해서 전자종이 제어하기!(E-PAPER#4)
녹칸다의 E-PAPER 시리즈이다!
사용할 E-paper의 모델명은 아래와 같다!
MH-ET LIVE 2.9" E-Paper Module
아두이노월드에서 화면은 LCD에 출력한다!
LCD는 전원이 연결되어있어야하고 전원이 분리되면 화면에 있던 내용은 사라지게 된다!(당연한 것!)
그러나 아주 신기한 LCD가 있다!
바로 E-Paper이다!
E-Paper는 LCD에 뭔가 출력을 한다음 전원을 분리해도 화면이 그대로 남아있게 된다!(잔상형태로 남아있음)
그럼 아두이노에서 전자종이(e-paper)에 화면을 수정한다음 분리해도 그 LCD는 그대로 쓸 수 있게 되는 것이다!
일단 e-paper의 사용상 이득은 "저전력"구동이라고 볼 수 있다!
전원을 분리해도 쓸수있다고 하더라도, 화면에 있는 내용을 바꾸기 위해서는 아두이노와 같은 MCU가 연결은 되어있어야한다!
그렇다면 MCU는 "필요할때만 켜져서" 전자종이의 내용을 바꾸고 "필요하지 않을때는 저전력"으로 동작해야한다!
아두이노 월드에서 그러한 동작을 딥슬립(deepsleep)이라고 한다!
적절한 MCU보드를 선정해야하는데 아두이노 우노에서 구동은 가능하지만 내장 메모리가 너무 작아서 사용상의 어려움이 있다!
그래서 ESP32보드를 아두이노 IDE개발환경으로 활용하도록 한다!
ESP32보드에 전자종이(e-paper)를 연결하고 작동시키는 것이다!
EPS32보드는 딥슬립(deepsleep)모드도 지원을 하니 목표와 딱 맞을 것 같다!
이번 전자종이 시리즈는 아래와 같은 4가지 단계를 순서대로 진행해보도록 한다!
1.ESP32에 E-paper를 연결해서 화면을 업데이트 하는 방법!
2.PC에서 ESP32에 TCP로 연결해서 화면을 원격으로 업데이트 하는 방법!
3.ESP32에서 HTTP로 웹서버에 접속해서 자동으로 업데이트 하는 방법!
4.ESP32가 저전력 모드로 동작하면서 자동으로 업데이트 하는 방법!
이번편에서는 565편에서 구현한 내용을 그대로 적용하고 ESP32를 딥슬립(deepsleep)으로 작동시키도록 한다!
565편에서는 C#윈폼을 웹서버로 구동시키고 ESP32를 웹클라이언트로 작동시켜서 일정간격으로 ESP32가 웹서버에 방문하고,
자기자신의 업데이트 내역이 존재하면 알아서 업데이트 되는 방향으로 구현을 했다!
전자종이(E-paper)는 저전력으로 작동시키기 위해서 사용하므로 전자종이를 제어하는 보드역시 저전력일 필요가 있다!
ESP32는 저전력모드(deepsleep)를 지원한다!
필요할때 전기를 소모하고 필요없을땐 최저로 소모하는 모드이다!
대신 저전력모드일때는 아무것도 할 수 있는 일이 없다!(그냥 잔다)
일정한 간격으로 ESP32가 wake-up하면서 웹서버에 업데이트 내역이 있는지 확인하고 있으면 업데이트하고 없으면 하지 않는 것이다!
그리고 이 과정이 끝난다음 다시 딥슬립을 해서 저전력 모드로 돌아간다!
이때 18650 배터리를 연결해서 배터리로 구동해보도록 한다!
ESP32가 소모하는 전류량을 측정해서 얼만큼 사용할 수 있는지 평가해보도록 하자!
(라이브방송에서 작성한 내용)
1.ESP32가 웹서버에 방문한다음 할일다하고 저전력모드(deepsleep)으로 작동되도록 하는게 목표이다!
2.전반적인 작동 흐름은 아래와 같다
2.1)ESP32가 boot된다!(wake-up된다)
2.2)ESP32가 웹서버에 TCP 연결한다!
2.3)ESP32가 웹서버에 Request전송한다!(HTTP)
2.4)웹서버가 ESP32에게 mono bitmap을 전송한다!(해당될시)
2.5)웹서버와 클라이언트간 연결이 끊어진다!
2.6)ESP32보드가 저전력 모드로 들어간다!(deepsleep)
3.ESP32의 저전력모드에서 wake-up하는 방법이 크게 2가지가 있다!
3.1)시간에 의해서 wake-up하는 방법:알람시계를 하나 주는 방법!
->예를들어 30초, 80초 뒤에 깨어나라!
3.2)ESP32의 wake-up핀에 신호가 들어왔을때 wake-up하는 방법!:누군가가 깨우는 방법!
->깨우지 않으면 영원히 잔다!
4.녹칸다의 18650베터리는 2550mAh이다! 이때 사용량을 평가해보자!
4.1)완전작동일때 : 32시간이다!(잘모름)
4.2)딥슬립을 할때 : 255시간이다!(잘모름)
4.3)녹칸다의 시연결과와 멀티미터의 값을보고 알아서 계산해보세요~!(숙제)
예제1)ESP32보드를 저전력모드(DeepSleep)으로 작동하는 예시를 보이시오!
예제2)565편에서 만들었던 최종버전을 저전력모드로 작동시키시오!
->딥슬립할때(10mA), 작동중일때(80mA)