複数のピンでWakeupしたかったので、「esp_sleep_enable_ext1_wakeup」関数を使ってみた。

この引数が、BUTTON_PIN_BITMASK ESP_EXT1_WAKEUP_ANY_HIGHの二つです。 前者はBITマスクを計算しないといけないです ESP32 Deep Sleep with Arduino IDE and Wake Up Sources に詳しく書いてありました。

要約すると、GPIO 3 2と GPIO 3 3の場合、2^32 + 2^33 = 12884901888 (DEC) = 300000000 (HEX) なので、BUTTON_PIN_BITMASKの値は 0x300000000 になります。

ピンが増えればどんどん足していけばいいです。

二番目の引数は、ESP_EXT1_WAKEUP_ANY_HIGHとESP_EXT1_WAKEUP_ALL_LOW が取れます。前者はどれかのピンがHIGHならWakeup、後者はすべてのピンがLOWならWakeupのようです。

選択したGIOピンは内部PULL DOWNでは動作しませんでした。なので、外部抵抗でPULL DOWNしました。抵抗値は適当です(笑)