Esptop 10 Touch se réveille du sommeil profond

Esptop 10 Touch se réveille du sommeil profond
ESP32 est une carte de microcontrôleur basée sur l'IoT qui est livrée avec des fonctionnalités prédéfinies telles que les pilotes Bluetooth et WiFi. Cependant, ESP32 a plusieurs broches qui se connectent à l'effet de hall à bord et aux capteurs tactiles capacitifs. Aujourd'hui, nous discuterons des épingles tactiles capacitives ESP32 et comment elles peuvent être utilisées pour réveiller ESP32 à partir du sommeil profond.

Qu'est-ce que le sommeil profond ESP32

Le mode ESP32 Sleep est un mode d'économie d'énergie que l'ESP32 peut entrer lorsqu'il n'est pas utilisé, enregistrant toutes les données dans RAM. À l'heure.

Pinout de capteur tactile ESP32

La carte ESP32 est livrée avec 10 broches GPIO qui prennent en charge les capteurs tactiles capacitifs. Ces broches GPIO peuvent détecter les changements de charge électrique qui peuvent être causés par la peau humaine. Ainsi, ces épingles peuvent détecter les variations causées par les doigts humains et générer de la production en conséquence.

Ces broches peuvent facilement être intégrées aux tacles et peuvent remplacer les boutons mécaniques du projet ESP32. Ces épingles tactiles peuvent également se réveiller ESP32 par un sommeil profond.

Voici les épingles de capteur tactile mises en évidence de couleur verte:

Ici, la broche de capteur tactile 0 correspond à la broche GPIO 4 et le capteur tactile 2 est à la broche GPIO 2. Une broche qui est la broche 1 est manquante dans cette version particulière de la carte ESP32 (30 broches). Le capteur tactile 1 est à GPIO PIN 0 qui est disponible dans la version à 36 broches de la carte ESP32.

Activer le réveil Touch sur ESP32

Activer le réveil tactile pour ESP32 à partir du sommeil profond est simple. Nous avons juste besoin d'utiliser la fonction suivante dans le code ESP32:

esp_sleep_enable_touchpad_wakeup ()

ESP32 Touch Wake Up Deep Sleep Exemple

Nous allons maintenant prendre un exemple pour tester le capteur tactile capacitif ESP32 pour éveiller notre planche. Assurez-vous d'installer la carte ESP32 dans Arduino IDE. Pour voir un guide sur l'installation ESP32 avec Arduino IDE Cliquez ici.

Maintenant ouvert arduino ide aller à: Fichier> Exemples> ESP32> DeepSleep> TouchwakeUp

Le code suivant apparaîtra dans une nouvelle fenêtre:

#define threreshold 40 / * set de sensibilité * /
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)

case esp_sleep_wakeup_ext0: série.println ("Wakeup dû au signal en utilisant rtc_io"); casser;
case esp_sleep_wakeup_ext1: série.println ("Wakeup dû au signal en utilisant rtc_cntl"); casser;
Case ESP_SLEEP_WAKEUP_TIMER: série.println ("Timer a provoqué le réveil"); casser;
case esp_sleep_wakeup_touchpad: série.println ("pavé tactile a provoqué le réveil"); casser;
Case ESP_SLOEPL_WAKEUP_ULP: SERIE.println ("programme ULP a provoqué le réveil"); casser;
par défaut: série.printf ("Le réveil n'a pas été causé par un sommeil profond:% d \ n", wakeup_reason); casser;


void print_wakeup_touchpad ()
TouchPin = esp_sleep_get_touchpad_wakeup_status ();
commutateur (tactile)

Cas 0: série.println ("Touche sur GPIO 4"); casser;
Cas 1: série.println ("Touche sur gpio 0"); casser;
Cas 2: série.println ("Touche sur GPIO 2"); casser;
Cas 3: série.println ("Touche sur GPIO 15"); casser;
Cas 4: série.println ("Touche sur GPIO 13"); casser;
Cas 5: série.println ("Touche sur GPIO 12"); casser;
Cas 6: série.println ("Touche sur GPIO 14"); casser;
Cas 7: série.println ("Touche sur GPIO 27"); casser;
Cas 8: série.println ("Touche sur GPIO 33"); casser;
Cas 9: série.println ("Touche sur GPIO 32"); casser;
par défaut: série.println ("Wakeup Not by TouchPad"); casser;


void callback ()
// Fonction de rappel de place

void setup()
En série.commencer (115200);
retard (1000);
// augmenter le numéro de démarrage
++bootCount;
En série.println ("Boot Number:" + String (bootCount));
// imprime la raison du réveil et du numéro de broche
print_wakeup_reason ();
print_wakeup_touchpad ();
// Définir l'interruption à la broche tactile T0
TouchAttachInterrupt (T0, rappel, seuil);
// Configuration du pavé tactile
esp_sleep_enable_touchpad_wakeup ();
// Mode de sommeil actif
En série.println ("va dormir maintenant");
esp_deep_sleep_start ();
En série.println ("Ce ne sera jamais imprimé");

VOID LOOP ()

Ce code lit le punage tactile T0. Ici t0 correspond à GPIO 4 ou D4. La première chose que nous devons commencer est de définir une valeur de seuil après quoi ESP32 se réveillera du sommeil. Ici, dans l'exemple ci-dessus, le seuil est défini comme 40. La valeur seuil peut être modifiée en fonction des conditions.

Une fois que la valeur de lecture à la broche T0 devient inférieure à la valeur de seuil définie, l'ESP32 se réveillera du sommeil en appelant rappeler() fonction.

La fonction de rappel () ne s'exécutera que lorsque ESP32 est éveillé. Si l'on touche et libère la broche, il ne sera pas exécuté. Si nous voulons utiliser une autre broche, alors nous devons utiliser des interruptions pour cette broche.

Ensuite en utilisant le esp_sleep_enable_touchpad_wakeup () Fonction Nous définissons le pin tactile comme source de réveil pour la carte ESP32.

Matériel

Pour tester le code, prenez une planche à pain et placez une carte ESP32 là-bas, connectez un fil de cavalier à GPIO 4 Et touchez-le en utilisant votre doigt.

Schématique

Fixez un fil de cavalier à D4 et touchez l'en-tête du fil de cavalier à l'aide de votre doigt.

Sortir

La sortie affiche la lecture avant et après avoir touché la broche GPIO 4 de ESP32. Ici, nous pouvons voir les scédements ESP32 après avoir touché la broche et imprime le message du numéro de broche le provoquant.

Conclusion

Cet article vous guidera sur l'utilisation des épingles ESP32 Touch pour réveiller votre planche de sommeil profond. ESP32 a 10 broches tactiles qui peuvent être appelées et définies comme source d'éveil ESP32. Lorsque le toucher est détecté sur GPIO Touch Pin ESP32 se réveillera et exécutera la fonction de rappel () après cela, il revient pour dormir.