Esptop 10 touch despertar de sueño profundo

Esptop 10 touch despertar de sueño profundo
ESP32 es un tablero de microcontrolador basado en IoT que viene con características prebuiladas como controladores Bluetooth y WiFi. Sin embargo, ESP32 tiene múltiples pines que se conectan al efecto de la sala de bordo y sensores táctil capacitivo. Hoy discutiremos los pines táctil capacitivos de ESP32 y cómo se pueden usar para despertar a ESP32 del sueño profundo.

¿Qué es ESP32 Sleep profundo?

El modo de suspensión ESP32 es un modo de ahorro de energía que el ESP32 puede ingresar cuando no está en uso, guardando todos los datos en RAM. En este momento, la potencia para cualquier periférico innecesario se corta, mientras que la RAM recibe suficiente energía para poder retener sus datos.

Pinout del sensor táctil ESP32

El tablero ESP32 viene con 10 pines GPIO que admiten sensores táctil capacitivo. Estos pines GPIO pueden detectar cambios en la carga eléctrica que pueden ser causadas por la piel humana. Por lo tanto, estos pines pueden detectar variaciones causadas por los dedos humanos y generar resultados en consecuencia.

Estos pines se pueden integrar fácilmente con almohadillas táctiles y pueden reemplazar los botones mecánicos en el proyecto ESP32. Estos pines táctil también pueden despertar ESP32 de un sueño profundo.

Los siguientes son los pines del sensor táctil resaltados en color verde:

Aquí Touch Sensor Pin 0 corresponde al Pin 4 de GPIO y Touch Sensor 2 está en GPIO Pin 2. Falta un pin que es el pin 1 en esta versión particular de la placa ESP32 (30 pin). Touch Sensor 1 está en GPIO Pin 0, que está disponible en la versión de 36 pines del tablero ESP32.

Habilitar touch wake up en ESP32

Habilitar el despertar del pin táctil para ESP32 del sueño profundo es simple. Solo necesitamos usar la siguiente función dentro del código ESP32:

esp_sleep_enable_touchpad_wakeup ()

ESP32 TOUCH WACK UP Ejemplo de sueño profundo

Ahora tomaremos un ejemplo para probar el sensor táctil capacitivo ESP32 para despertar nuestro tablero. Asegúrese de instalar la placa ESP32 en Arduino IDE. Para ver una guía sobre la instalación de ESP32 con Arduino IDE, haga clic aquí.

Ahora abre arduino ide ir a: Archivo> ejemplos> esp32> profundo> touchwakeUp

El siguiente código aparecerá en una nueva ventana:

#Define Umbral 40 / * Conjunto de sensibilidad * /
Rtc_data_attr int bootCount = 0;
touch_pad_t touchpin;
void print_wakeup_reason ()
esp_sleep_wakeup_cause_t wakeup_reason;
wakeup_reason = esp_sleep_get_wakeup_cause ();
Switch (WakeUp_Reason)

Caso esp_sleep_wakeup_ext0: serial.println ("Wakeup debido a la señal usando RTC_IO"); romper;
Caso esp_sleep_wakeup_ext1: serial.println ("Wakeup debido a la señal usando rtc_cntl"); romper;
Caso esp_sleep_wakeup_timer: serial.println ("Temporizador causado de despertar"); romper;
Caso esp_sleep_wakeup_touchpad: serial.println ("Touchpad causado de despertar"); romper;
Caso esp_sleep_wakeup_ulp: serial.println ("El programa ULP causó el despertar"); romper;
Valor predeterminado: serie.printf ("Wake Up no fue causado por un sueño profundo: %d \ n", wakeup_reason); romper;


void print_wakeup_touchpad ()
touchpin = esp_sleep_get_touchpad_wakeup_status ();
Switch (Pinch)

Caso 0: Serial.println ("Toque en GPIO 4"); romper;
Caso 1: serie.println ("Touch On GPIO 0"); romper;
Caso 2: serie.println ("Toque en GPIO 2"); romper;
Caso 3: Serial.println ("Toque en GPIO 15"); romper;
Caso 4: serie.println ("Toque en GPIO 13"); romper;
Caso 5: Serial.println ("Toque en GPIO 12"); romper;
Caso 6: serie.println ("Toque en GPIO 14"); romper;
Caso 7: Serial.println ("Toque en GPIO 27"); romper;
Caso 8: Serial.println ("Toque en GPIO 33"); romper;
Caso 9: Serial.println ("Toque en GPIO 32"); romper;
Valor predeterminado: serie.println ("Wakeup no por touchpad"); romper;


nulo devolución de llamada ()
// función de devolución de llamada al marcador de posición

setup () void
De serie.comenzar (115200);
retraso (1000);
// aumentar el número de arranque
++bootcount;
De serie.println ("número de arranque:" + string (bootCount));
// Imprima el motivo de la activación y el número de pines
print_wakeup_reason ();
print_wakeup_touchpad ();
// configurar la interrupción en el pin t0
TouchAtTachInterrupt (T0, devolución de llamada, umbral);
// Touchpad configurado
esp_sleep_enable_touchpad_wakeup ();
// Modo de suspensión activo
De serie.println ("que vaya a dormir ahora");
esp_deep_sleep_start ();
De serie.println ("Esto nunca se imprimirá");

bucle void ()

Este código lee el pin táctil T0. Aquí T0 corresponde a GPIO 4 o D4. Lo primero que tenemos que comenzar es establecer un valor umbral después del cual ESP32 se despertará del sueño. Aquí en el ejemplo de ejemplo de ejemplo anterior se define como 40. El valor umbral se puede cambiar dependiendo de las condiciones.

Una vez que el valor de lectura en el pin T0 se vuelve más bajo que el valor umbral establecido, el ESP32 se despertará del sueño llamando llamar de vuelta() función.

La función de devolución de llamada () se ejecutará solo cuando ESP32 esté despierto. Si uno solo toca y libera el pin, no se ejecutará. Si queremos usar algún otro pin, entonces tenemos que usar interrupciones para ese pin.

A continuación usando el esp_sleep_enable_touchpad_wakeup () función establecemos el pin táctil como fuente de atención para la placa ESP32.

Hardware

Para probar el código, tome una placa y coloque una placa ESP32 por allí, conecte un cable de puente a GPIO 4 y tócalo usando tu dedo.

Esquemático

Conecte un cable de puente en D4 y toque el encabezado del cable de jersey con el dedo.

Producción

La salida muestra la lectura antes y después de tocar el pin 4 GPIO de ESP32. Aquí podemos ver que ESP32 se despierta después de tocar el pin e imprime el mensaje del número de pin lo que lo hace.

Conclusión

Este artículo lo guiará sobre el uso de los pines táctiles ESP32 para despertar su tabla de sueño profundo. ESP32 tiene 10 pines táctiles que se pueden llamar y establecer como fuente para los tableros ESP32 Awakening. Cuando se detecta el tacto en el pin táctil GPIO ESP32 se despertará y ejecutará la función de devolución de llamada () después de eso, vuelve a dormir.