Riduzione della potenza per il localizzatore GPS / GSM Raspberry Pi


10

Di recente ho costruito un tracker GPS / GSM IoT completamente funzionale con un Pi Zero per un progetto universitario e ora che è finito e fatto, vorrei minimizzare l'assorbimento di corrente dell'intero sistema poiché due batterie da 2500 mAh possono solo alimentarlo per uno o due giorni al massimo. Tuttavia, sono ancora nuovo su questi dispositivi e mi piacerebbe un po 'di aiuto per quanto riguarda le modifiche e le tecniche hardware.

Il mio obiettivo: un dispositivo in grado di eseguire script Python con un fattore di forma minimalista (in particolare l'altezza) con il minor consumo di energia possibile.

La mia configurazione attuale utilizza:


Conosco Arduinos e MSP430 che consumano energia, ma non so se sia possibile fare ciò di cui ho bisogno per farlo con questi microcontroller.

Le mie domande sono:

  1. Quanto è ripida una curva di apprendimento per passare da Raspberry Pi a più schede bare-bones?
  2. È possibile che queste altre schede eseguano contemporaneamente GSM / GPS / Accelerometro?
  3. Esistono altri moduli che offrono la stessa funzionalità ma consumano meno energia? (Non riesco a trovare numeri di alimentazione specifici per questi moduli)
  4. I miei moduli attuali funzioneranno ad esempio con un MSP430?
  5. Qualche consiglio / commento?

3
Queste sono alcune domande. Probabilmente otterrai risposte migliori se ti concentri un po 'di più.
Helmar

1
Questa domanda è un po 'troppo esplicativa per dare una risposta facile. Sarebbe meglio se fai riferimento al tuo progetto esistente, quindi definisci i requisiti funzionali e le interfacce. Stai lasciando un bel po 'di indagine architettonica a chiunque risponda al momento - e presumibilmente hai già ottenuto risposte a questi.
Sean Houlihane,

Risposte:


8

Presumo che i requisiti di elaborazione sul dispositivo siano abbastanza vicini allo zero. Sembra che tu stia utilizzando un input di accelerazione per determinare la frequenza con cui attivare il dispositivo GSM.

Idealmente, si desidera che un MCU che può essere attivato dall'accelerometro si riattivi dal sonno, quindi determinare quando inviare un ping di posizione. Qualsiasi dispositivo basato su micro-python dovrebbe essere un buon punto di partenza.

Come esempio del consumo di energia di una piccola scheda, il microbit della BBC sembra utilizzare un paio di milliampere quando il display è spento (funzionante a 16 MHz e con l'accelerometro / magentometro di bordo alimentato).

Micropython supporta il "sonno", ma dipenderà dalla piattaforma di destinazione quanta potenza ti consente di risparmiare. Realisticamente, per questo tipo di applicazione, un sistema operativo incorporato in C ++ non sarà più difficile da codificare e consente una maggiore flessibilità per risparmiare un po 'più di energia.

La prima fase del calcolo del consumo di energia è identificare le diverse modalità e assegnare un costo energetico a ciascuna attività. Ciò consente di confrontare il costo del messaggio GPS / GSM con la potenza inattiva giornaliera di base (senza eseguire operazioni). È quindi possibile vedere qual è il risparmio disponibile su ciascun componente. A condizione che il modulo GSM sia attivo solo per pochi minuti al giorno, il suo consumo energetico potrebbe essere abbastanza insignificante.


1
Il sonno è probabilmente la strada da percorrere, innescando il risveglio dall'accelerometro ma anche da un timer o qualsiasi altra cosa rilevante per i casi d'uso (mancanti nella domanda OP)
Rsf

5

Nella mia esperienza, i moduli GSM e GPS assorbono molta più potenza del processore. Ciò è prevedibile in quanto entrambi contengono molti circuiti RF e il modulo GSM deve trasmettere e ricevere.

Il primo passo sarebbe riconfigurare il prototipo in modo da poter monitorare la potenza consumata da ciascuna parte. Una volta che lo hai caratterizzato, probabilmente dovrai implementare i circuiti di controllo dell'alimentazione in modo da attivare i moduli GPS e GSM solo quando è necessario. Più a lungo puoi permetterti di tenerli lontani, migliore sarà la durata della batteria.

Uno dei problemi con i protocolli GSM e GPS è che se l'unità è spenta per un periodo di tempo considerevole, impiegherà più tempo a ristabilire le connessioni e ciò aumenterà il tempo necessario per la prima correzione del GPS e della disponibilità del circuito dati per il GSM.


5

Usando MicroPython potresti eventualmente passare dal consumante Pi Zero ad un'altra piattaforma. Il PyBoard ufficiale è un STM32F405RG che potrebbe essere abbastanza buono ma c'è anche il supporto per la serie STM32L4 a bassa potenza.

Attualmente stai eseguendo un Pi Zero a 1 GHz per utilizzare una UART e una periferica I2C per interfacciare il tuo SIM808 e LSM303. Il Pi consuma circa 80 mA in idle, senza parlare di quando non lo è.

Se si potesse ridurre la frequenza di clock della CPU, è possibile ridurre anche il consumo di energia. Per questo compito sarebbe sufficiente un paio di MHz.

Quindi potresti passare a un PyBoard che consuma solo un paio di mA sotto i 10 MHz in modalità di funzionamento con tutte le periferiche accese.

inserisci qui la descrizione dell'immagine

Molto meno 0,4 mA in stop e 2,4 uA in modalità standby.

Forse dovresti portare i tuoi script su MicroPython ma sarebbe più facile che portarli su C.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.