Redução de energia para Raspberry Pi GPS / GSM tracker


10

Recentemente, construí um rastreador IoT GPS / GSM totalmente funcional com um Pi Zero para um projeto de faculdade e agora que está concluído e concluído, gostaria de minimizar o consumo atual de todo o sistema, pois duas baterias de 2500mAh só podem alimentá-lo por um a dois dias no máximo. No entanto, ainda sou novo nesses dispositivos e gostaria de alguma ajuda com relação a alterações e técnicas de hardware.

Meu objetivo: um dispositivo capaz de executar scripts python com um fator de forma minimalista (especialmente altura) com o menor consumo de energia possível.

Minha configuração atual usa:


Conheço os Arduinos e os MSP430 de baixo consumo de energia, mas não sei se é possível fazer o que preciso com esses microcontroladores.

Minhas perguntas são:

  1. Quão acentuada é a curva de aprendizado para passar do Raspberry Pi para mais pranchas?
  2. É possível que essas outras placas executem GSM / GPS / Acelerômetro simultaneamente?
  3. Existem outros módulos que fornecem a mesma funcionalidade, mas consomem menos energia? (Não consigo encontrar números de potência específicos para esses módulos)
  4. Meus módulos atuais funcionarão com um MSP430, por exemplo?
  5. Alguma recomendação / comentário?

3
Essas são algumas perguntas. Você provavelmente obterá melhores respostas se se concentrar um pouco mais.
Helmar

11
Essa pergunta é um pouco narrativa demais para facilitar a resposta. Seria melhor se você referenciar seu design existente e definir os requisitos e interfaces funcionais. Você está deixando grande parte da investigação arquitetônica para quem responde no momento - e, presumivelmente, você já tem respostas para isso.
21717 Sean Houlihane

Respostas:


8

Assumirei que os requisitos de processamento no dispositivo estão próximos de zero o suficiente. Parece que você está usando alguma entrada de aceleração para determinar com que frequência ativar o dispositivo GSM.

Idealmente, você deseja que um MCU que possa ser acionado a partir do acelerômetro saia do modo de suspensão e determine quando enviar um ping de localização. Qualquer dispositivo baseado em micro-python deve ser um bom ponto de partida.

Como exemplo do consumo de energia de uma placa pequena, o microbit da BBC parece usar alguns miliamperes quando a tela está desligada (funcionando a 16 MHz e com o acelerômetro / magentômetro a bordo).

O Micropython suporta 'suspensão', mas depende da plataforma de destino quanta energia isso economiza. Realisticamente, para esse tipo de aplicativo, um sistema operacional incorporado em C ++ não será mais difícil de codificar e permite mais flexibilidade para economizar um pouco mais de energia.

O primeiro estágio no cálculo do consumo de energia é identificar os diferentes modos e alocar um custo de energia para cada tarefa. Isso permite comparar o custo da mensagem GPS / GSM com a energia inativa diária da linha de base (sem trabalho). Você pode ver qual é a economia disponível em cada componente. Desde que seu módulo GSM esteja ativo apenas por alguns minutos por dia, seu consumo de energia pode ser bastante insignificante.


11
O sono é provavelmente o caminho a percorrer, provocando acordar por acelerômetro, mas também por um temporizador ou qualquer outra coisa relevante para a (falta na questão OP) casos de uso
Rsf

5

Na minha experiência, os módulos GSM e GPS consomem muito mais energia que o processador. Isso é de se esperar, pois ambos contêm muitos circuitos de RF e o módulo GSM precisa transmitir e receber.

A primeira etapa seria reconfigurar seu protótipo para que você possa monitorar a energia consumida por cada parte. Uma vez que você tenha caracterizado isso, provavelmente precisará implementar um circuito de controle de energia para ligar os módulos GPS e GSM somente quando necessário. Quanto mais tempo você puder mantê-los afastados, melhor será a duração da bateria.

Um dos problemas com os protocolos GSM e GPS é que, se a unidade estiver desligada por um período considerável de tempo, levará mais tempo para restabelecer as conexões e isso aumentará o tempo para a primeira correção da disponibilidade do circuito GPS e de dados para o GSM.


5

Usando o MicroPython, você pode alternar do Pi Zero consumidor para outra plataforma. O PyBoard oficial é um STM32F405RG que pode ser bom o suficiente, mas também há suporte para a série STM32L4 de baixa potência.

Atualmente, você está executando um Pi Zero a 1 GHz para usar um UART e um periférico I2C para fazer interface com o SIM808 e LSM303. O Pi consome cerca de 80 mA em modo inativo, sem falar de quando não é.

Se você pudesse diminuir a freqüência do clock da CPU, também poderia diminuir o consumo de energia. Para esta tarefa, alguns MHz seriam suficientes.

Portanto, você pode mudar para um PyBoard que consome apenas alguns mA abaixo de 10 MHz no modo de operação com todos os periféricos LIGADOS.

insira a descrição da imagem aqui

Muito menos 0,4 mA no modo de parada e 2,4 uA no modo de espera.

Possivelmente você teria que portar seus scripts para o MicroPython, mas isso seria mais fácil do que portá-los para C.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.