Vous oubliez l'ESP32 les amis ! Avec son deep sleep, il consomme très peu et peut être réveillé par contact sur une des ses pins tactiles (à vérifier cependant, la mariée est peut-être trop belle...)
Edit : je confirme, l'ESP32 peut sortir du deep sleep par touche tactile, voir ici
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 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;
case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;
case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;
// ICI
case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;
//
case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;
default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;
}
}
Le site donne un exemple de lecture de touche tactile:*
// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.
void setup() {
Serial.begin(115200);
delay(1000); // give me time to bring up serial monitor
Serial.println("ESP32 Touch Test");
}
void loop() {
Serial.println(touchRead(4)); // get value of Touch 0 pin = GPIO 4
delay(1000);
}
Il présente aussi un carré tactile, à base d'une feuille d'alu :
merci @lesept cette solution me semble très intéressante!
Primo je réduit le nombre de batterie et donc le prix au final
deuzio il y a un sleep mode que je peux reveiller par touch donc tres en accord avec le besoin et surtout je recharge moins souvent les batterie .
il ne reste plus qu'a savoir si sur cette carte je peux comme le propose @hbachetti mettre un son en dur et brancher un HP ?
En fonction du niveau sonore attendu il sera peut être nécessaire d'ajouter un transistor entre sortie ESP32 et HP (comme cela l'aurait été pour une carte Nano)
Mieux : en ajoutant un petit ampli BF à liaison I2S (module avec un MAX98357) et la bonne librairie audio pour ESP32 /ESP8266 il serait possible de jouer un petit fichier mp3 stocké dans la mémoire flash de la carte.
alors je dis banco !
je vais commander tous ce petit monde et essayer de faire mon petit montage secret
je tenais a tous vous remercier pour la qualité de vos réponses et la gentillesse pour un bleu comme moi
merci
Dans le cas d'un réveil par touchpad il faut plutôt utiliser ceci :
touch_pad_t touchPin = esp_sleep_get_touchpad_wakeup_status();
switch(touchPin) {
case 0 : Serial.println("Touch detected on GPIO 4"); break;
case 1 : Serial.println("Touch detected on GPIO 0"); break;
case 2 : Serial.println("Touch detected on GPIO 2"); break;
case 3 : Serial.println("Touch detected on GPIO 15"); break;
case 4 : Serial.println("Touch detected on GPIO 13"); break;
case 5 : Serial.println("Touch detected on GPIO 12"); break;
case 6 : Serial.println("Touch detected on GPIO 14"); break;
case 7 : Serial.println("Touch detected on GPIO 27"); break;
case 8 : Serial.println("Touch detected on GPIO 33"); break;
case 9 : Serial.println("Touch detected on GPIO 32"); break;
default : Serial.println("Wakeup not by touchpad"); break;
}
Parce que le cause de réveil n'est pas forcément lisible après le démarrage.