본문 바로가기

전체 글34

ESP32 Deep Sleep 구현하기 - 외부 웨이크업(External Wake Up) ESP32의 Deep Sleep 모드에서 깨어나는 방법 중 하나는 외부 신호로 깨우는 방식입니다. 이 방법은 버튼을 누르거나, GPIO 핀의 상태 변화를 감지하여 ESP32를 깨울 수 있습니다. 외부 신호로 깨우는 방식에는 ext0와 ext1 두 가지 옵션이 있습니다. External Wake Up 방식1. External Wake Up (ext0)이 방법은 RTC GPIO를 사용하여 ESP32를 깨웁니다. 이때, RTC 주변 장치가 계속 켜져 있어야 하며, RTC_IO를 사용하여 핀의 상태에 따라 ESP32를 깨울 수 있습니다.esp_sleep_enable_ext0_wakeup(GPIO_NUM_X, level)첫 번째 인자: GPIO_NUM_X 형식으로 사용하고자 하는 핀 번호를 입력합니다.두 번째 인.. 2024. 10. 23.
ESP32 Deep Sleep 구현하기 -Touch Wake Up ESP32를 Deep Sleep Mode에서 터치 핀을 사용하여 깨우는 방법을 알아보겠습니다. Touch Wake UpTouch Wake Up 활성화touchSleepWakeUpEnable(TOUCH_PIN, THRESHOLD); 코드Arduino IDE를 열고, File > Examples > ESP32 Deep Sleep로 이동하여 TouchWakeUp 스케치를 엽니다. #if CONFIG_IDF_TARGET_ESP32#define THRESHOLD 40 /* 값이 클수록 민감도 증가 */#else //ESP32-S2 및 ESP32-S3 + 다른 칩에 대한 기본값 (조정 필요)#define THRESHOLD 5000 /* 값이 작을수록 민감도 증가 */#endifRT.. 2024. 10. 22.
ESP32 Deep Sleep 구현하기 - Timer Wake Up ESP32를 Deep Sleep 모드로 전환하는 방법을 알아보겠습니다.Deep Sleep 모드 소개ESP32는 다음과 같은 다양한 전원 모드로 전환할 수 있습니다Active modeModem Sleep modeLight Sleep modeDeep Sleep modeHibernation modeESP32 데이터시트에서 5가지 모드를 비교할 수 있습니다. ESP32 데이터시트에서 다음과 같은 다양한 모드의 전력 소비를 비교하는 표를 확인할 수 있습니다. 활성 모드에서의 전력 소비를 비교한 표 입니다. 왜 Deep Sleep 모드를 사용해야 할까요ESP32를 활성 모드로 배터리로 운영하는 것은 이상적이지 않습니다. 배터리의 전력이 매우 빨리 소모될 것입니다.ESP32를 Deep Sleep 모드로 전환하면 전력.. 2024. 10. 21.
ESP32 인터럽트(Interrupt) 구현하기 - PIR(인체감지센서) ESP32와 PIR 인체감지센서를 사용하여 인터럽트를 구현해 보겠습니다.모션이 감지되면 ESP32는 타이머를 시작하고 정해진 시간 동안 LED를 켭니다. 타이머가 카운트를 마치면 LED가 자동으로 꺼집니다. 부품 ESP32PIR 센서(인체감지센서)5mm LED330옴 저할점퍼와이어 브래드보드 인터럽트 소개인터럽트는 마이크로컨트롤러 프로그램에서 특정 이벤트가 발생할 때 자동으로 처리를 수행하게 하며, 타이밍 문제 해결에 유용합니다. 이를 통해 핀의 값을 지속적으로 확인하지 않아도 되고, 값의 변화가 감지되면 즉시 이벤트(함수)가 트리거되어 필요한 작업을 수행합니다. 인터럽트 설정하기 인수로 GPIO 핀, 실행할 함수 이름, 모드를 가지고 있습니다. attachInterrupt(digitalPinToInte.. 2024. 10. 17.