Tengo una NodeMCU v1.0 y una placa de circuito SIM808. Para ahorrar energía, coloco el NodeMCU en Lightsleep a través de:
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); // set sleep type, the above posters wifi_set_sleep_type() didnt seem to work for me although it did let me compile and upload with no errors
gpio_pin_wakeup_enable(CONFIG_GSM_RING_PIN, GPIO_PIN_INTR_LOLEVEL); // GPIO_ID_PIN(2) corresponds to GPIO2 on ESP8266-01 , GPIO_PIN_INTR_LOLEVEL for a logic low, can also do other interrupts, see gpio.h above
wifi_fpm_open(); // Enables force sleep
wifi_fpm_do_sleep(0xFFFFFFF); // Sleep for longest possible time
Con ese código, NodeMCU se reactiva cuando el RI pasa de ALTO a BAJO a ALTO otra vez, lo que estaría bien para SMS, pero para las llamadas significa que el Nodo se activa cuando la llamada ya se fue. Así que la idea era usar GPIO_PIN_INTR_ANYEDGE / GPIO_PIN_INTR_NEGEDGE como condición de interrupción. Pero los Nodos parecen no apoyar eso.
¿Alguna idea de cómo resolver eso?