Leistungsreduzierung für Raspberry Pi GPS / GSM-Tracker


10

Ich habe kürzlich einen voll funktionsfähigen IoT-GPS / GSM-Tracker mit einem Pi Zero für ein College-Projekt gebaut. Jetzt, da er fertig ist, möchte ich die Stromaufnahme des gesamten Systems minimieren, da zwei 2500-mAh-Batterien es nur mit Strom versorgen können höchstens ein bis zwei Tage. Ich bin jedoch noch neu in diesen Geräten und würde mich über Hilfe bei Hardwareänderungen und -techniken freuen.

Mein Ziel: Ein Gerät, das Python-Skripte ausführen kann und einen minimalistischen Formfaktor (insbesondere Höhe) mit möglichst geringem Stromverbrauch aufweist.

Mein aktuelles Setup verwendet:


Ich kenne mich mit Arduinos und MSP430 aus, aber ich weiß nicht, ob es möglich ist, mit diesen Mikrocontrollern das zu tun, was ich brauche.

Meine Fragen sind:

  1. Wie steil ist die Lernkurve, um von Raspberry Pi zu mehr Bare-Bones-Boards zu gelangen?
  2. Können diese anderen Karten gleichzeitig GSM / GPS / Beschleunigungsmesser ausführen?
  3. Gibt es andere Module, die dieselbe Funktionalität bieten, aber weniger Strom verbrauchen? (Ich kann keine spezifischen Leistungsnummern für diese Module finden.)
  4. Funktionieren meine aktuellen Module beispielsweise mit einem MSP430?
  5. Irgendwelche Empfehlungen / Kommentare?

3
Das sind einige Fragen. Sie werden wahrscheinlich bessere Antworten erhalten, wenn Sie sich etwas mehr konzentrieren.
Helmar

1
Diese Frage ist etwas zu narativ, um eine einfache Antwort zu finden. Es ist besser, wenn Sie auf Ihr vorhandenes Design verweisen und dann die funktionalen Anforderungen und Schnittstellen definieren. Sie überlassen einen Großteil der Architekturuntersuchungen jedem, der im Moment antwortet - und vermutlich haben Sie bereits Antworten auf diese Fragen.
Sean Houlihane

Antworten:


8

Ich gehe davon aus, dass die Verarbeitungsanforderungen auf dem Gerät nahe genug Null sind. Es hört sich so an, als würden Sie eine Beschleunigungseingabe verwenden, um zu bestimmen, wie oft das GSM-Gerät aufgeweckt werden soll.

Idealerweise möchten Sie, dass eine MCU, die vom Beschleunigungsmesser aus ausgelöst werden kann, aus dem Ruhezustand aufwacht und dann festlegt, wann ein Standort-Ping gesendet werden soll. Jedes auf Mikropythons basierende Gerät sollte ein guter Ausgangspunkt sein.

Als Beispiel für den Stromverbrauch einer kleinen Platine scheint der BBC-Mikrobit bei ausgeschaltetem Display (Betrieb mit 16 MHz und mit eingeschaltetem Beschleunigungsmesser / Magentometer) einige Milliampere zu verwenden .

Micropython unterstützt "Sleep", hängt jedoch von der Zielplattform ab, wie viel Strom Sie dadurch sparen. Realistisch gesehen ist ein C ++ - Embedded-Betriebssystem für diese Art von Anwendung nicht schwieriger zu codieren und bietet mehr Flexibilität, um etwas mehr Strom zu sparen.

Der erste Schritt bei der Berechnung Ihres Stromverbrauchs besteht darin, die verschiedenen Modi zu identifizieren und jeder Aufgabe Energiekosten zuzuweisen. Auf diese Weise können Sie die Kosten für GPS / GSM-Nachrichten mit der täglichen Grundleerlaufleistung vergleichen (ohne Arbeit). Sie können dann sehen, wie hoch die verfügbaren Einsparungen für jede Komponente sind. Vorausgesetzt, Ihr GSM-Modul ist nur einige Minuten am Tag aktiv, ist der Stromverbrauch möglicherweise ziemlich unbedeutend.


1
Schlaf ist wahrscheinlich der
richtige

5

Nach meiner Erfahrung verbrauchen die GSM- und GPS-Module viel mehr Strom als der Prozessor. Dies ist zu erwarten, da beide viele HF-Schaltungen enthalten und das GSM-Modul sowohl senden als auch empfangen muss.

Der erste Schritt wäre die Neukonfiguration Ihres Prototyps, damit Sie den Stromverbrauch jedes Teils überwachen können. Sobald Sie dies charakterisiert haben, müssen Sie wahrscheinlich eine Leistungssteuerungsschaltung implementieren, damit Sie die GPS- und GSM-Module nur dann einschalten, wenn dies erforderlich ist. Je länger Sie es sich leisten können, sie fernzuhalten, desto besser ist die Akkulaufzeit.

Eines der Probleme sowohl mit GSM- als auch mit GPS-Protokollen besteht darin, dass das Wiederherstellen von Verbindungen länger dauert, wenn das Gerät längere Zeit ausgeschaltet ist. Dies verlängert die Zeit, um zuerst die Verfügbarkeit von GPS und Datenschaltung für zu beheben das GSM.


5

Mit MicroPython können Sie möglicherweise vom konsumierenden Pi Zero zu einer anderen Plattform wechseln. Das offizielle PyBoard ist ein STM32F405RG, der gut genug sein könnte, aber es gibt auch Unterstützung für die STM32L4-Serie mit geringem Stromverbrauch.

Derzeit verwenden Sie einen Pi Zero mit 1 GHz, um einen UART und ein I2C-Peripheriegerät für die Schnittstelle zwischen SIM808 und LSM303 zu verwenden. Der Pi verbraucht im Leerlauf etwa 80 mA und spricht nicht davon, wenn dies nicht der Fall ist.

Wenn Sie die CPU-Taktfrequenz senken könnten, könnten Sie auch den Stromverbrauch senken. Für diese Aufgabe würden ein paar MHz ausreichen.

Sie können also zu einem PyBoard wechseln, das im Run-Modus bei eingeschalteten Peripheriegeräten nur ein paar mA unter 10 MHz verbraucht.

Geben Sie hier die Bildbeschreibung ein

Viel weniger 0,4 mA im Stopp und 2,4 uA im Standby-Modus.

Möglicherweise müssten Sie Ihre Skripte nach MicroPython portieren, aber das wäre einfacher, als sie nach C zu portieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.