Pi Zero + SIM7600 Anhänger-Tracker entleert eine 10-Ah-Powerbank in neun Stunden
Von English mit KI übersetzt ·
Das erste richtige Projekt außerhalb des Hauses, also erwartet bitte ein paar dumme Fehler.Ich baue einen Tracker für meinen Anhänger: Pi Zero W, ein SIM7600E HAT (LTE + GPS) und eine USB-Powerbank mit 10.000 mAh. Ein Python-Skript liest alle 30 Sekunden die GPS-Daten vom HAT aus und sendet sie über die HTTP-API des Geräts an Hermetry:
{"lat": 52.95231, "lon": -1.14972, "speed_kmh": 0.0, "sats": 9}
Die Kartenkachel zeigt den Anhänger, also funktioniert dieser Teil. Das Problem ist, dass der Akku nach etwa neun Stunden leer ist. Ich habe ein USB-Strommessgerät dazwischengeschaltet, und es zeigt durchgehend etwa 350 mA an, egal ob geparkt oder in Fahrt. Ich hatte auf eine Woche zwischen den Ladevorgängen gehofft. Ist das einfach der Verbrauch eines Pi, oder mache ich etwas Dummes?Das Skript verwendet requests mit dem Geräte-Token im Authorization-Header, sendet einen POST pro Fix und hält die HTTPS-Sitzung zwischen den Posts offen. Das HAT wird über die 5-V-Pins des Pi versorgt, und beide laufen über den einzigen 2,1-A-Port der Powerbank.
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.
Von English mit KI übersetzt ·
Was machen GPS und Modem zwischen den Positionsbestimmungen? Laufen beide die ganze Zeit?
What are the GPS and the modem doing between fixes? Both on all the time?
Von English mit KI übersetzt ·
Ja, beide sind an. Das Skript ist eine Schleife mit time.sleep(30), nichts Besonderes.
Yes, both on. The script is a loop with time.sleep(30), nothing clever.
Von English mit KI übersetzt ·
Und der Zero selbst zieht im Leerlauf bei eingeschaltetem Wi-Fi, BT und HDMI etwa 100 mA. Das ist ein Drittel Ihres Budgets, noch bevor das HAT irgendetwas tut.
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.
Von English mit KI übersetzt ·
Könntest du den Pi zwischen den Positionsabfragen wie beim ESP32 in den Tiefschlaf versetzen?
Could you put the Pi into deep sleep between fixes like an ESP32?
Von English mit KI übersetzt ·
Von der Datenseite: Brauchen Sie alle 30 s einen Punkt, während er in Ihrer Einfahrt steht? Bei unseren Transportern senden wir nur bei Bewegung.
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.
Von English mit KI übersetzt ·
Aoife, der Pi hat leider keinen Tiefschlafmodus. Es ist ein Linux-Rechner, er läuft entweder oder er ist aus. Also schaltest du alles ab, was du kannst, und lässt das Funkmodul weniger arbeiten.Das würde ich tun, nach dem Nutzen geordnet:
- Pi:
dtoverlay=disable-wifiunddtoverlay=disable-btin config.txt, HDMI aus (tvservice -obei älteren Images), Aktivitäts-LED aus. Auf einem Zero kommst du damit auf etwa 80 mA. - GPS: die GNSS-Engine zwischen den Fixes abschalten (
AT+CGPS=0, dann wiederAT+CGPS=1). Ein Warmstart am SIM7600 dauert wenige Sekunden. - Rate: 30 s während der Fahrt, 15 bis 60 min im Stand. Entscheide anhand der Geschwindigkeit oder der Distanz zum letzten Fix.
- Batch: Fixes puffern und alle paar Minuten eine Nachricht als Array mit ts senden. GPS liefert eine korrekte Uhrzeit, daher sind die Zeitstempel verlässlich. Ein HTTPS-Aufruf statt zehn bedeutet weniger Funkzeit und kostet eine Nachricht des Monatskontingents statt zehn.
[{"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}}]
Da das Gerät nur alle paar Minuten sendet, stelle die Online-Regel des Profils auf Recent message mit einem erwarteten Intervall, das zu deiner Standzeit-Rate passt. Sonst wird es die ganze Nacht als offline angezeigt.Wenn eine Woche eine harte Anforderung ist, lautet die ehrliche Antwort: ein Mikrocontroller (ESP32 oder nRF), der schläft und das Modem aufweckt, oder ein Timer-Chip wie ein TPL5110, der zwischen den Läufen die gesamte Stromversorgung des Pi abschaltet. Eine Linux-Platine, die mit 80 mA im Leerlauf läuft, schafft das mit 10 Ah nie.
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.
Von English mit KI übersetzt ·
Heute 1 bis 4 gemacht. Wi-Fi/BT/HDMI aus, GPS zwischen den Fixes aus, 30 s bei Bewegung, 30 min im Stand, Senden alle 5 min. Das Messgerät zeigt jetzt etwa 95 mA im Mittel. Sollten ungefähr vier Tage sein. Außerdem musste ich das Profil auf Recent message umstellen, es sprang jede Nacht auf offline, was ich für einen Bug hielt. TPL5110 für die nächste Version bestellt.
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.
Von English mit KI übersetzt ·
Wenn du dir später PSM oder eDRX am Modem ansiehst, prüfe vorher, ob dein Netzbetreiber das mit dieser SIM unterstützt. Unserer tat es nicht, und ich habe ein ganzes Wochenende verloren.
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.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

