| 14 | == Poste de consommation == |
| 15 | |
| 16 | Dans un capteur sans fil, qu'est-ce qui consomme de l'énergie ? |
| 17 | * le capteur[[BR]] |
| 18 | Pour économiser, il faut avoir un capteur qui consomme peu et il faut pouvoir l'éteindre si c'est possible |
| 19 | |
| 20 | * le micro-contrôleur[[BR]] |
| 21 | Un micro-contrôleur consomme pratiquement la même énergie quelque-soit les programmes utilisés. |
| 22 | Pour économiser, il faut pouvoir : |
| 23 | - réduire la fréquence de fonctionnement, lorsque c'est possible, car la consommation est proportionnelle à la fréquence. |
| 24 | - baisser la tension, car la consommation est quadratiquement proportionnelle à la tension, c'est parfois possible. |
| 25 | - éteindre ou mettre en veille le micro-contrôleur quand il n'y a rien à faire. Ce dernier point est le plus simple |
| 26 | et c'est plutôt adapté au rôle du module capteur qui doit faire des mesures périodiques et les transmettre mais qui n'a rien à faire |
| 27 | entre les mesures. L'Arduino offre cette possibilité. |
| 28 | |
| 29 | * L'afficheur[[BR]] |
| 30 | Il n'y a pas toujours un afficheur, mais il peut y avoir une led. Pour économiser, on peut faire un affichage intermittent |
| 31 | ou déclenché par l'appui d'un bouton ou un un mouvement. |
| 32 | |
| 33 | * l'émetteur[[BR]] |
| 34 | L'émission coûte cher, la réception aussi. Pour économiser, il faut choisir une technologie adaptée comme le NRF24L01 ou le |
| 35 | Bluetooth Low Energie (BLE). Ces deux protocoles sont caractérisés par des trames courtes et l'absence de protocole de connexion, |
| 36 | comme c'est le cas dans le wifi. Il est donc possible d'éteindre l'émetteur lorsque le module n'émet pas. |
| 37 | |
| 38 | S'il faut aussi recevoir des ordres, c'est plus complexe car le module doit écouter et a priori en permanence. |
| 39 | Le protocole BLE résout ce problème en synchronisant la réception. Le module capteur commence par émettre et il se met en écoute |
| 40 | d'un ordre pendant une fenêtre temporelle juste après. L'inconvénient est qu'il ne peut accepter les ordres à tout moment mais |
| 41 | l'intérêt est qu'il n'écoute pas en permanence. |
| 42 | |
| 43 | == Le mode ''sleep'' de l'Arduino == |
| 44 | |
| 45 | L'Arduino dispose d'un mode ''sleep'' qui lui permet de mettre en veille de micro-contrôleur. La sortie de ce mode est effectuée, soit par une interruption externe, soit par le **watchdog**. |
| 46 | |
| 47 | Le **watchdog** est un compteur autonome configurable. C'est un mécanisme qui permet deux choses. |
| 48 | * Il permet se premunir contre les bugs intermittent. En effet le compteur du watchdog s'incrémente en permanence et s'il arrive à sa valeur maximale, il provoque un reset. Pour éviter ce reset, il faut régulièrement remettre le compteur à 0. Si le programme bug, on suppose que le compteur ne sera pas remis à 0 et le programme redémarrera depuis le début. |
| 49 | * se réveiller d'un mise en veille (mode ''sleep''). Si on a mise en veille le micro-contrôleur et que le **watchdog** est configuré alors l'arrivée à la valeur maximale provoque le redémarrage du micro-contrôleur. |
| 50 | |
| 51 | |