HM 11, interruption externe et watchdog timer

Bonjour,

Je travaille sur un projet avec un arduino pro mini 3,3V et mon but maintenant est l'économie d'énergie.
Ce que je voudrais que le programme fasse :

Il doit lire un capteur (par NFC, module BM 019) toutes les 5 minutes et enclencher une alarme (simple buzzer) si la valeur n'est pas dans une plage de valeurs.
L'arduino doit donc être mis en veille durant ces 5 minutes (powerDOWN) et réveillé par le watchdog timer.

Entre temps, l'utilisateur peut venir faire un pull, à partir de son smartphone, des dernières valeurs enregistrées par bluetooth (HM 11). Il faudrait donc réveiller l'arduino par une interruption pour qu'il puisse envoyer les datas. L'idéal serait ensuite de le rendormir. Mais une interruption devant être courte et l'envoi des données étant longue (il doit lire les données sur le capteur puis les envoyer), l'idée est juste de mettre un flag... voir code en bas.

1/
J'aimerais savoir si c'est faisable, d'abord :slight_smile:
J'ai vu deux types de librairies utilisées : LowPower de rocketscream ou {avr/sleep avr/power avr/wdt}
J'ai l'impression que c'est faisable, plusieurs topics en parlent.

2/
Comment provoquer l'interruption externe, sachant que le module est en mode sleep? Lorsque le pin RX du Bluetooth change ? Ca voudrait dire que l'utilisateur a fait une demande de pull.
La datasheet dit que l'on peut réveiller le module en envoyant une chaîne de plus de 80 caractères. Ca implique que la connexion a déjà été faite et qu'elle est conservée en permanence, non ?
Et ça, c'est problématique.

Si vous avez des infos, même des idées...

L'idée de code serait celui-là :

loop() {
lecture();
sleep();
}

wake(){
detach();
interruptedFlag=1;
}

sleep {
interruptedFlag=0;
attach();
}

lecture(){
if(interruptedFlag==1) {
envoiDernieresValeurs();
}
lecture_5_Minutes();

}

Si vous voulez d'autres précisions ...

Merci !