Reducción de potencia para el rastreador GPS / GSM Raspberry Pi


10

Recientemente construí un rastreador GPS / GSM IoT completamente funcional con un Pi Zero para un proyecto universitario y ahora que está terminado y terminado, me gustaría minimizar el consumo actual de todo el sistema, ya que dos baterías de 2500 mAh solo pueden alimentarlo por uno o dos días como máximo. Sin embargo, todavía soy nuevo en estos dispositivos y me encantaría recibir ayuda con respecto a los cambios de hardware y las técnicas.

Mi objetivo: un dispositivo capaz de ejecutar scripts de Python que tenga un factor de forma minimalista (especialmente altura) con el menor consumo de energía posible.

Mi configuración actual usa:


Sé sobre el consumo de Arduinos y MSP430, pero no sé si es posible hacer lo que necesito hacer con estos microcontroladores.

Mis preguntas son:

  1. ¿Qué tan empinada curva de aprendizaje hay para pasar de Raspberry Pi a más tablas básicas?
  2. ¿Es posible que estas otras placas ejecuten GSM / GPS / Acelerómetro al mismo tiempo?
  3. ¿Hay otros módulos que brinden la misma funcionalidad pero consuman menos energía? (No puedo encontrar números de potencia específicos para estos módulos)
  4. ¿Mis módulos actuales funcionarán con un MSP430 por ejemplo?
  5. ¿Alguna recomendación / comentario?

3
Esas son bastantes preguntas. Probablemente obtendrá mejores respuestas si se concentra un poco más.
Helmar

1
Esta pregunta es demasiado ingenua para dar una respuesta fácil. Sería mejor si hace referencia a su diseño existente, luego define los requisitos funcionales y las interfaces. Estás dejando una gran parte de la investigación arquitectónica a cualquiera que responda en este momento, y presumiblemente ya tienes respuestas a estas.
Sean Houlihane

Respuestas:


8

Asumiré que los requisitos de procesamiento en el dispositivo están cerca de cero. Parece que está utilizando alguna entrada de aceleración para determinar con qué frecuencia reactivar el dispositivo GSM.

Idealmente, desea una MCU que pueda activarse desde el acelerómetro para despertarse del sueño y luego determinar cuándo enviar un ping de ubicación. Cualquier dispositivo basado en micro-pitón debería ser un buen punto de partida.

Como ejemplo del consumo de energía de una placa pequeña, el microbit de la BBC parece usar un par de miliamperios cuando la pantalla está apagada (funcionando a 16 MHz y con el acelerómetro / magentómetro incorporado activado).

Micropython admite 'suspensión', pero dependerá de la plataforma de destino cuánta energía le ahorre. Siendo realistas, para este tipo de aplicación, un sistema operativo integrado C ++ no será más difícil de codificar y permite una mayor flexibilidad para ahorrar un poco más de energía.

La primera etapa en el cálculo de su consumo de energía es identificar los diferentes modos y asignar un costo de energía a cada tarea. Esto le permite comparar el costo del mensaje GPS / GSM con la potencia inactiva diaria de referencia (sin trabajo). Luego puede ver cuál es el ahorro disponible en cada componente. Siempre que su módulo GSM solo esté activo durante unos minutos al día, su consumo de energía puede ser bastante insignificante.


1
El sueño es probablemente el camino a seguir, activando el despertador por acelerómetro, pero también por un temporizador o cualquier otra cosa relevante para los casos de uso (falta en la pregunta OP)
Rsf

5

En mi experiencia, los módulos GSM y GPS consumen mucha más energía que el procesador. Esto es de esperar ya que ambos contienen muchos circuitos de RF y el módulo GSM necesita transmitir y recibir.

El primer paso sería reconfigurar su prototipo para que pueda monitorear la energía consumida por cada parte. Una vez que lo haya caracterizado, probablemente necesitará implementar circuitos de control de potencia para que solo encienda los módulos GPS y GSM cuando sea necesario. Cuanto más tiempo pueda permitirse mantenerlos apagados, mejor será la duración de la batería.

Uno de los problemas con los protocolos GSM y GPS es que si la unidad está apagada por un período de tiempo considerable, entonces lleva más tiempo restablecer las conexiones y esto aumentará el tiempo para reparar primero el GPS y la disponibilidad del circuito de datos para El GSM.


5

Usando MicroPython , posiblemente podría cambiar del consumidor Pi Zero a otra plataforma. El PyBoard oficial es un STM32F405RG que podría ser lo suficientemente bueno, pero también es compatible con la serie STM32L4 de baja potencia.

Actualmente está ejecutando un Pi Zero a 1 GHz para usar un UART y un periférico I2C para conectar su SIM808 y LSM303. El Pi consume alrededor de 80 mA en inactivo, sin hablar de cuándo no lo está.

Si pudiera reducir la frecuencia de reloj de su CPU, también podría reducir su consumo de energía. Para esta tarea bastaría un par de MHz.

Por lo tanto, puede cambiar a un PyBoard que consume solo un par de mA por debajo de 10 MHz en modo de ejecución con todos los periféricos encendidos.

ingrese la descripción de la imagen aquí

Mucho menos 0.4 mA en parada y 2.4 uA en modo de espera.

Posiblemente tendría que portar sus scripts a MicroPython, pero eso sería más fácil que portarlos a C.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.