Réduction de puissance pour le tracker GPS / GSM Raspberry Pi

10

J'ai récemment construit un tracker IoT GPS / GSM entièrement fonctionnel avec un Pi Zero pour un projet de collège et maintenant qu'il est terminé et terminé, je voudrais minimiser la consommation actuelle de tout le système, car deux batteries de 2500mAh ne peuvent que l'alimenter. pendant un à deux jours au maximum. Cependant, je suis encore nouveau sur ces appareils et j'aimerais de l'aide concernant les changements et les techniques du matériel.

Mon objectif: un appareil capable d'exécuter des scripts python qui a un facteur de forme minimaliste (en particulier la hauteur) avec la plus faible consommation d'énergie possible.

Ma configuration actuelle utilise:


Je connais les Arduinos et les MSP430 qui consomment de l'énergie, mais je ne sais pas s'il est possible de faire ce dont j'ai besoin avec ces micro-contrôleurs.

Mes questions sont:

  1. À quel point la courbe d'apprentissage est-elle abrupte pour passer du Raspberry Pi à des cartes plus nues?
  2. Est-il possible pour ces autres cartes d'exécuter simultanément GSM / GPS / accéléromètre?
  3. Existe-t-il d'autres modules qui offrent les mêmes fonctionnalités mais consomment moins d'énergie? (Je ne trouve pas de numéros de puissance spécifiques pour ces modules)
  4. Mes modules actuels fonctionneront-ils par exemple avec un MSP430?
  5. Des recommandations / commentaires?
J'étais drôle
la source
3
Ce sont pas mal de questions. Vous obtiendrez probablement de meilleures réponses si vous vous concentrez un peu plus.
Helmar
1
Cette question est un peu trop narrative pour permettre une réponse facile. Il serait préférable de référencer votre conception existante, puis de définir les exigences fonctionnelles et les interfaces. Vous laissez une grande partie de l'enquête architecturale à quiconque répond en ce moment - et vous avez probablement déjà des réponses à ces questions.
Sean Houlihane

Réponses:

8

Je suppose que les exigences de traitement sur l'appareil sont proches de zéro. Il semble que vous utilisiez une entrée d'accélération pour déterminer la fréquence de réveil du périphérique GSM.

Idéalement, vous voulez qu'un MCU qui puisse être déclenché par l'accéléromètre se réveille du sommeil, puis déterminer quand envoyer un ping d'emplacement. Tout périphérique basé sur micro-python devrait être un bon point de départ.

Comme exemple de la consommation d'énergie d'une petite carte, le microbit BBC semble utiliser quelques milliampères lorsque l'écran est éteint (fonctionnant à 16 MHz et avec l'accéléromètre / magentomètre embarqué alimenté).

Micropython prend en charge le «sommeil», mais cela dépendra de la plate-forme cible de la quantité d'énergie que cela vous économisera. De manière réaliste, pour ce type d'application, un système d'exploitation intégré C ++ ne sera pas plus difficile à coder et permet plus de flexibilité pour économiser un peu plus d'énergie.

La première étape du calcul de votre consommation d'énergie consiste à identifier les différents modes et à allouer un coût énergétique à chaque tâche. Cela vous permet de comparer le coût des messages GPS / GSM avec la puissance de veille quotidienne de base (sans travail). Vous pouvez alors voir quelle est l’économie disponible sur chaque composant. À condition que votre module GSM ne soit actif que quelques minutes par jour, sa consommation électrique peut être assez insignifiante.

Sean Houlihane
la source
1
Le sommeil est probablement le chemin à parcourir, déclenchant le réveil par accéléromètre mais aussi par une minuterie ou tout autre élément pertinent pour les cas d'utilisation (manquant dans la question OP)
Rsf
5

D'après mon expérience, les modules GSM et GPS consomment beaucoup plus d'énergie que le processeur. Il faut s'y attendre car les deux contiennent beaucoup de circuits RF et le module GSM doit transmettre ainsi que recevoir.

La première étape serait de reconfigurer votre prototype afin que vous puissiez surveiller la puissance consommée par chaque pièce. Une fois que vous avez cette caractéristique, vous devrez probablement implémenter des circuits de contrôle de puissance afin de n'activer les modules GPS et GSM que lorsque cela est nécessaire. Plus vous pouvez vous permettre de les garder éloignés, meilleure est l'autonomie de la batterie.

L'un des problèmes avec les protocoles GSM et GPS est que si l'unité est éteinte pendant une période de temps considérable, il faut plus de temps pour rétablir les connexions, ce qui augmentera le temps de correction pour la disponibilité du GPS et du circuit de données pour le GSM.

CyberFonic
la source
5

En utilisant MicroPython, vous pourriez éventuellement passer du Pi Zero consommateur à une autre plate-forme. Le PyBoard officiel est un STM32F405RG qui pourrait être assez bon, mais la série STM32L4 basse consommation est également prise en charge.

Actuellement, vous utilisez un Pi Zero à 1 GHz pour utiliser un périphérique UART et I2C pour interfacer votre SIM808 et LSM303. Le Pi consomme environ 80 mA au repos, sans parler du moment où il ne l'est pas.

Si vous pouviez réduire la fréquence d'horloge de votre CPU, vous pourriez également réduire votre consommation d'énergie. Pour cette tâche, quelques MHz suffiraient.

Vous pouvez donc passer à un PyBoard qui ne consomme que quelques mA sous 10 MHz en mode de fonctionnement avec tous les périphériques allumés.

entrez la description de l'image ici

Beaucoup moins de 0,4 mA à l'arrêt et de 2,4 uA en mode veille.

Vous devrez peut-être porter vos scripts sur MicroPython mais ce serait plus facile que de les porter sur C.

Bence Kaulics
la source