Rastreador de remolque con Pi Zero + SIM7600 agota una power bank de 10 Ah en nueve horas
Traducido del English por IA ·
Es mi primer proyecto real fuera de casa, así que espero cometer errores tontos.Estoy construyendo un rastreador para mi remolque: una Pi Zero W, un HAT SIM7600E (LTE + GPS) y una power bank USB de 10.000 mAh. Un script de Python lee el GPS del HAT cada 30 segundos y lo envía a Hermetry con la API HTTP del dispositivo:
{"lat": 52.95231, "lon": -1.14972, "speed_kmh": 0.0, "sats": 9}
La tarjeta del mapa muestra el remolque, así que esa parte funciona. El problema es que la batería se queda sin carga después de unas nueve horas. Puse un medidor de corriente USB en línea y marca unos 350 mA todo el tiempo, estacionado o en movimiento. Esperaba una semana entre cargas. ¿Es simplemente lo que consume una Pi o estoy haciendo algo mal?El script usa requests con el token del dispositivo en la cabecera Authorization, un POST por cada posición, y mantiene abierta la sesión HTTPS entre envíos. El HAT se alimenta desde los pines de 5 V de la Pi, y ambos funcionan con el único puerto de 2,1 A de la power bank.
First real project outside the house, so expect silly mistakes.
I’m building a tracker for my trailer: Pi Zero W, a SIM7600E HAT (LTE + GPS), and a 10,000 mAh USB power bank. A Python script reads GPS from the HAT every 30 seconds and posts it to Hermetry with the device HTTP API:
{"lat": 52.95231, "lon": -1.14972, "speed_kmh": 0.0, "sats": 9}
The map card shows the trailer, so that part works. Problem is the battery is flat after about nine hours. I put a USB power meter in line and it reads around 350 mA the whole time, parked or moving. I was hoping for a week between charges. Is this just what a Pi costs, or am I doing something dumb?
The script uses requests with the device token in the Authorization header, one POST per fix, and keeps the HTTPS session open between posts. The HAT is powered from the Pi 5 V pins, and both run off the single 2.1 A port of the power bank.
Traducido del English por IA ·
¿Qué hacen el GPS y el módem entre una posición y otra? ¿Ambos están encendidos todo el tiempo?
What are the GPS and the modem doing between fixes? Both on all the time?
Traducido del English por IA ·
Sí, los dos están encendidos. El script es un bucle con time.sleep(30), nada rebuscado.
Yes, both on. The script is a loop with time.sleep(30), nothing clever.
Traducido del English por IA ·
Y la Zero en sí consume unos 100 mA en reposo con Wi-Fi, BT y HDMI activados. Eso es un tercio de tu presupuesto antes de que la HAT haga nada.
And the Zero itself idles around 100 mA with Wi-Fi, BT and HDMI on. That’s a third of your budget before the HAT does anything.
Traducido del English por IA ·
¿Podrías poner la Pi en modo de suspensión profunda entre cada localización, como con el ESP32?
Could you put the Pi into deep sleep between fixes like an ESP32?
Traducido del English por IA ·
Desde el lado de los datos: ¿necesitas un punto cada 30 s mientras está aparcado en tu entrada? Nosotros solo enviamos datos cuando hay movimiento en nuestras furgonetas.
From the data side: do you need a point every 30 s while it’s parked in your drive? We only send on movement for our vans.
Traducido del English por IA ·
Aoife, por desgracia la Pi no tiene modo de suspensión profunda. Es una caja Linux: o está funcionando o está apagada. Así que corta todo lo que puedas y haz que la radio trabaje menos.Lo que haría, por orden de beneficio:
- Pi:
dtoverlay=disable-wifiydtoverlay=disable-bten config.txt, HDMI apagado (tvservice -oen imágenes antiguas), LED de actividad apagado. En una Zero eso te deja en unos 80 mA. - GPS: apaga el motor GNSS entre fijaciones (
AT+CGPS=0, y luegoAT+CGPS=1otra vez). Un arranque en caliente del SIM7600 tarda unos pocos segundos. - Frecuencia: 30 s en movimiento, de 15 a 60 min aparcado. Decide según la velocidad o la distancia desde la última fijación.
- Lotes: almacena las fijaciones y envía un mensaje cada pocos minutos como un array con ts. El GPS da un reloj correcto, así que las marcas de tiempo son fiables. Una llamada HTTPS en lugar de diez supone menos tiempo de radio y consume un mensaje de la cuota mensual en vez de diez.
[{"ts": 1757683200000, "values": {"lat": 52.95231, "lon": -1.14972, "speed_kmh": 31.5}},
{"ts": 1757683230000, "values": {"lat": 52.95410, "lon": -1.14701, "speed_kmh": 33.0}}]
Como el dispositivo solo se comunica cada pocos minutos, pon la regla de en línea de su perfil en Recent message con un intervalo esperado que coincida con tu frecuencia aparcado; si no, aparecerá como desconectado toda la noche.Si una semana es un requisito estricto, la respuesta honesta es un microcontrolador (ESP32 o nRF) que duerma y despierte el módem, o un chip temporizador como el TPL5110 que corta la alimentación de toda la Pi entre ciclos. Una placa Linux en reposo a 80 mA nunca llegará a eso con 10 Ah.
Aoife, the Pi has no deep sleep, sadly. It’s a Linux box, it’s either running or off. So you cut everything you can and make the radio work less.
What I’d do, in order of payoff:
- Pi:
dtoverlay=disable-wifianddtoverlay=disable-btin config.txt, HDMI off (tvservice -oon older images), activity LED off. On a Zero that gets you to roughly 80 mA. - GPS: switch the GNSS engine off between fixes (
AT+CGPS=0, thenAT+CGPS=1again). A warm start on the SIM7600 is a few seconds. - Rate: 30 s while moving, 15 to 60 min while parked. Use speed or the distance from the last fix to decide.
- Batch: buffer fixes and send one message every few minutes as an array with ts. GPS gives you a correct clock, so the timestamps are trustworthy. One HTTPS call instead of ten is less radio time, and it costs one message out of the monthly quota instead of ten.
[{"ts": 1757683200000, "values": {"lat": 52.95231, "lon": -1.14972, "speed_kmh": 31.5}},
{"ts": 1757683230000, "values": {"lat": 52.95410, "lon": -1.14701, "speed_kmh": 33.0}}]
Because the device only talks every few minutes, set its profile’s online rule to Recent message with an expected interval that matches your parked rate, otherwise it shows offline all night.
If a week is a hard requirement, the honest answer is a microcontroller (ESP32 or nRF) that sleeps and wakes the modem, or a timer chip like a TPL5110 that cuts power to the whole Pi between runs. A Linux board idling at 80 mA will never get there on 10 Ah.
Traducido del English por IA ·
Hoy hice de 1 a 4. Wi-Fi/BT/HDMI desactivados, GPS apagado entre fijaciones, 30 s en movimiento, 30 min aparcado, envío cada 5 min. El medidor marca ahora unos 95 mA de media. Debería durar unos cuatro días. También tuve que cambiar el perfil a Recent message, porque se ponía en offline cada noche, cosa que pensé que era un error. TPL5110 pedido para la próxima versión.
Did 1 to 4 today. Wi-Fi/BT/HDMI off, GPS off between fixes, 30 s when moving, 30 min when parked, sending every 5 min. Meter now reads about 95 mA average. Should be roughly four days. Also had to switch the profile to Recent message, it was flipping to offline every night, which I thought was a bug. TPL5110 ordered for the next version.
Traducido del English por IA ·
Si más adelante miras PSM o eDRX en el módem, comprueba primero que tu operador lo admite con esa SIM. El nuestro no lo admitía y perdí un fin de semana.
If you look at PSM or eDRX on the modem later, check your operator supports it on that SIM first. Ours didn’t and I lost a weekend.
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

